[
  {
    "canonicalId": "GET /api/v1/health",
    "method": "GET",
    "path": "/api/v1/health",
    "controller": "apiController",
    "handler": "handler",
    "module": "core",
    "guards": "None",
    "authRequired": false,
    "sourceFile": "NestJS backend/src/health.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/health/language",
    "method": "GET",
    "path": "/api/v1/health/language",
    "controller": "apiController",
    "handler": "handler",
    "module": "core",
    "guards": "None",
    "authRequired": false,
    "sourceFile": "NestJS backend/src/health.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/health/health",
    "method": "GET",
    "path": "/api/v1/health/health",
    "controller": "apiController",
    "handler": "handler",
    "module": "core",
    "guards": "None",
    "authRequired": false,
    "sourceFile": "NestJS backend/src/health.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/health/live",
    "method": "GET",
    "path": "/api/v1/health/live",
    "controller": "apiController",
    "handler": "handler",
    "module": "core",
    "guards": "None",
    "authRequired": false,
    "sourceFile": "NestJS backend/src/health.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/health/ready",
    "method": "GET",
    "path": "/api/v1/health/ready",
    "controller": "apiController",
    "handler": "handler",
    "module": "core",
    "guards": "None",
    "authRequired": false,
    "sourceFile": "NestJS backend/src/health.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/language",
    "method": "GET",
    "path": "/api/v1/language",
    "controller": "apiController",
    "handler": "handler",
    "module": "core",
    "guards": "None",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/language.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/auth",
    "method": "GET",
    "path": "/api/v1/auth",
    "controller": "apiController",
    "handler": "handler",
    "module": "auth",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/auth/controllers/auth.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/auth/login",
    "method": "POST",
    "path": "/api/v1/auth/login",
    "controller": "apiController",
    "handler": "handler",
    "module": "auth",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/auth/controllers/auth.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/auth/refresh",
    "method": "POST",
    "path": "/api/v1/auth/refresh",
    "controller": "apiController",
    "handler": "handler",
    "module": "auth",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/auth/controllers/auth.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/auth/logout",
    "method": "POST",
    "path": "/api/v1/auth/logout",
    "controller": "apiController",
    "handler": "handler",
    "module": "auth",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/auth/controllers/auth.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/auth/logout-all",
    "method": "POST",
    "path": "/api/v1/auth/logout-all",
    "controller": "apiController",
    "handler": "handler",
    "module": "auth",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/auth/controllers/auth.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/auth/me",
    "method": "GET",
    "path": "/api/v1/auth/me",
    "controller": "apiController",
    "handler": "handler",
    "module": "auth",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/auth/controllers/auth.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/auth/change-password",
    "method": "POST",
    "path": "/api/v1/auth/change-password",
    "controller": "apiController",
    "handler": "handler",
    "module": "auth",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/auth/controllers/auth.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/auth/forgot-password",
    "method": "POST",
    "path": "/api/v1/auth/forgot-password",
    "controller": "apiController",
    "handler": "handler",
    "module": "auth",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/auth/controllers/auth.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/auth/reset-password",
    "method": "POST",
    "path": "/api/v1/auth/reset-password",
    "controller": "apiController",
    "handler": "handler",
    "module": "auth",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/auth/controllers/auth.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/auth/sessions",
    "method": "GET",
    "path": "/api/v1/auth/sessions",
    "controller": "apiController",
    "handler": "handler",
    "module": "auth",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/auth/controllers/auth.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/auth/sessions/:id",
    "method": "DELETE",
    "path": "/api/v1/auth/sessions/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "auth",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/auth/controllers/auth.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/auth/login-history",
    "method": "GET",
    "path": "/api/v1/auth/login-history",
    "controller": "apiController",
    "handler": "handler",
    "module": "auth",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/auth/controllers/auth.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/backup/status",
    "method": "GET",
    "path": "/api/v1/backup/status",
    "controller": "apiController",
    "handler": "handler",
    "module": "backup",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/backup/controllers/backup.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/backup/create",
    "method": "POST",
    "path": "/api/v1/backup/create",
    "controller": "apiController",
    "handler": "handler",
    "module": "backup",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/backup/controllers/backup.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/backup/verify",
    "method": "POST",
    "path": "/api/v1/backup/verify",
    "controller": "apiController",
    "handler": "handler",
    "module": "backup",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/backup/controllers/backup.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/customers",
    "method": "POST",
    "path": "/api/v1/customers",
    "controller": "apiController",
    "handler": "handler",
    "module": "customers",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/customers/controllers/customer.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/customers",
    "method": "GET",
    "path": "/api/v1/customers",
    "controller": "apiController",
    "handler": "handler",
    "module": "customers",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/customers/controllers/customer.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/customers/:id",
    "method": "GET",
    "path": "/api/v1/customers/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "customers",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/customers/controllers/customer.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/customers/:id",
    "method": "PUT",
    "path": "/api/v1/customers/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "customers",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/customers/controllers/customer.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/customers/:id",
    "method": "DELETE",
    "path": "/api/v1/customers/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "customers",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/customers/controllers/customer.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/customers/:id/addresses",
    "method": "POST",
    "path": "/api/v1/customers/:id/addresses",
    "controller": "apiController",
    "handler": "handler",
    "module": "customers",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/customers/controllers/customer.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/customers/:id/addresses",
    "method": "GET",
    "path": "/api/v1/customers/:id/addresses",
    "controller": "apiController",
    "handler": "handler",
    "module": "customers",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/customers/controllers/customer.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/customers/addresses/:addressId",
    "method": "DELETE",
    "path": "/api/v1/customers/addresses/:addressId",
    "controller": "apiController",
    "handler": "handler",
    "module": "customers",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/customers/controllers/customer.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/customers/:id/contacts",
    "method": "POST",
    "path": "/api/v1/customers/:id/contacts",
    "controller": "apiController",
    "handler": "handler",
    "module": "customers",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/customers/controllers/customer.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/customers/:id/contacts",
    "method": "GET",
    "path": "/api/v1/customers/:id/contacts",
    "controller": "apiController",
    "handler": "handler",
    "module": "customers",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/customers/controllers/customer.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/customers/:id/documents",
    "method": "POST",
    "path": "/api/v1/customers/:id/documents",
    "controller": "apiController",
    "handler": "handler",
    "module": "customers",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/customers/controllers/customer.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/customers/:id/activities",
    "method": "GET",
    "path": "/api/v1/customers/:id/activities",
    "controller": "apiController",
    "handler": "handler",
    "module": "customers",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/customers/controllers/customer.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/estimates",
    "method": "POST",
    "path": "/api/v1/estimates",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/controllers/estimate.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/estimates",
    "method": "GET",
    "path": "/api/v1/estimates",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/controllers/estimate.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/estimates/:id",
    "method": "GET",
    "path": "/api/v1/estimates/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/controllers/estimate.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/estimates/:id",
    "method": "PUT",
    "path": "/api/v1/estimates/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/controllers/estimate.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/estimates/:id",
    "method": "DELETE",
    "path": "/api/v1/estimates/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/controllers/estimate.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/estimates/:id/items",
    "method": "POST",
    "path": "/api/v1/estimates/:id/items",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/controllers/estimate.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/estimates/items/:itemId",
    "method": "DELETE",
    "path": "/api/v1/estimates/items/:itemId",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/controllers/estimate.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/estimates/:id/approve",
    "method": "POST",
    "path": "/api/v1/estimates/:id/approve",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/controllers/estimate.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/estimates/:id/reject",
    "method": "POST",
    "path": "/api/v1/estimates/:id/reject",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/controllers/estimate.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/estimates/:id/send",
    "method": "POST",
    "path": "/api/v1/estimates/:id/send",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/controllers/estimate.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/estimates/:id/accept",
    "method": "POST",
    "path": "/api/v1/estimates/:id/accept",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/controllers/estimate.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/estimates/:id/revise",
    "method": "POST",
    "path": "/api/v1/estimates/:id/revise",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/controllers/estimate.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/pricing/brands",
    "method": "GET",
    "path": "/api/v1/pricing/brands",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "None",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/pricing.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/pricing/catalog",
    "method": "GET",
    "path": "/api/v1/pricing/catalog",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "None",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/pricing.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/pricing/catalog/:id",
    "method": "GET",
    "path": "/api/v1/pricing/catalog/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "estimates",
    "guards": "None",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/estimates/pricing.controller.ts"
  },
  {
    "canonicalId": "GET /metrics",
    "method": "GET",
    "path": "/metrics",
    "controller": "metricsController",
    "handler": "handler",
    "module": "health",
    "guards": "None",
    "authRequired": false,
    "sourceFile": "NestJS backend/src/modules/health/metrics.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/leads",
    "method": "POST",
    "path": "/api/v1/leads",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/leads",
    "method": "GET",
    "path": "/api/v1/leads",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/leads/:id",
    "method": "GET",
    "path": "/api/v1/leads/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/leads/:id",
    "method": "PUT",
    "path": "/api/v1/leads/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "PATCH /api/v1/leads/:id",
    "method": "PATCH",
    "path": "/api/v1/leads/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "PATCH /api/v1/leads/:id/status",
    "method": "PATCH",
    "path": "/api/v1/leads/:id/status",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/leads/:id",
    "method": "DELETE",
    "path": "/api/v1/leads/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/leads/:id/assign",
    "method": "POST",
    "path": "/api/v1/leads/:id/assign",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/leads/:id/transfer",
    "method": "POST",
    "path": "/api/v1/leads/:id/transfer",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/leads/:id/followups",
    "method": "POST",
    "path": "/api/v1/leads/:id/followups",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/leads/:id/followups",
    "method": "GET",
    "path": "/api/v1/leads/:id/followups",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/leads/:id/call-logs",
    "method": "POST",
    "path": "/api/v1/leads/:id/call-logs",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/leads/:id/call-logs",
    "method": "GET",
    "path": "/api/v1/leads/:id/call-logs",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/leads/:id/convert",
    "method": "POST",
    "path": "/api/v1/leads/:id/convert",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/leads/:id/measurements",
    "method": "POST",
    "path": "/api/v1/leads/:id/measurements",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/leads/:id/measurements",
    "method": "GET",
    "path": "/api/v1/leads/:id/measurements",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/leads/:id/payments",
    "method": "POST",
    "path": "/api/v1/leads/:id/payments",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/leads/:id/payments",
    "method": "GET",
    "path": "/api/v1/leads/:id/payments",
    "controller": "apiController",
    "handler": "handler",
    "module": "leads",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/leads/controllers/lead.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/media/upload",
    "method": "POST",
    "path": "/api/v1/media/upload",
    "controller": "apiController",
    "handler": "handler",
    "module": "media",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/media/controllers/media.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/media/lead/:leadId",
    "method": "GET",
    "path": "/api/v1/media/lead/:leadId",
    "controller": "apiController",
    "handler": "handler",
    "module": "media",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/media/controllers/media.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/media/observability/dashboard",
    "method": "GET",
    "path": "/api/v1/media/observability/dashboard",
    "controller": "apiController",
    "handler": "handler",
    "module": "media",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/media/controllers/media.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/media/reconcile",
    "method": "GET",
    "path": "/api/v1/media/reconcile",
    "controller": "apiController",
    "handler": "handler",
    "module": "media",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/media/controllers/media.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/media/migrate/dry-run",
    "method": "GET",
    "path": "/api/v1/media/migrate/dry-run",
    "controller": "apiController",
    "handler": "handler",
    "module": "media",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/media/controllers/media.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/media/migrate/execute",
    "method": "POST",
    "path": "/api/v1/media/migrate/execute",
    "controller": "apiController",
    "handler": "handler",
    "module": "media",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/media/controllers/media.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/media/file/:filename",
    "method": "GET",
    "path": "/api/v1/media/file/:filename",
    "controller": "apiController",
    "handler": "handler",
    "module": "media",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/media/controllers/media.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/media/:id",
    "method": "DELETE",
    "path": "/api/v1/media/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "media",
    "guards": "JwtAuthGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/media/controllers/media.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/orders",
    "method": "POST",
    "path": "/api/v1/orders",
    "controller": "apiController",
    "handler": "handler",
    "module": "orders",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/orders/controllers/sales-order.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/orders/convert-from-estimate/:estimateId",
    "method": "POST",
    "path": "/api/v1/orders/convert-from-estimate/:estimateId",
    "controller": "apiController",
    "handler": "handler",
    "module": "orders",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/orders/controllers/sales-order.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/orders",
    "method": "GET",
    "path": "/api/v1/orders",
    "controller": "apiController",
    "handler": "handler",
    "module": "orders",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/orders/controllers/sales-order.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/orders/:id",
    "method": "GET",
    "path": "/api/v1/orders/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "orders",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/orders/controllers/sales-order.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/orders/:id",
    "method": "PUT",
    "path": "/api/v1/orders/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "orders",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/orders/controllers/sales-order.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/orders/:id",
    "method": "DELETE",
    "path": "/api/v1/orders/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "orders",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/orders/controllers/sales-order.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/orders/:id/confirm",
    "method": "POST",
    "path": "/api/v1/orders/:id/confirm",
    "controller": "apiController",
    "handler": "handler",
    "module": "orders",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/orders/controllers/sales-order.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/orders/:id/cancel",
    "method": "POST",
    "path": "/api/v1/orders/:id/cancel",
    "controller": "apiController",
    "handler": "handler",
    "module": "orders",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/orders/controllers/sales-order.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/orders/:id/payment-schedule",
    "method": "POST",
    "path": "/api/v1/orders/:id/payment-schedule",
    "controller": "apiController",
    "handler": "handler",
    "module": "orders",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/orders/controllers/sales-order.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/orders/:id/payment-schedule",
    "method": "GET",
    "path": "/api/v1/orders/:id/payment-schedule",
    "controller": "apiController",
    "handler": "handler",
    "module": "orders",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/orders/controllers/sales-order.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/projects",
    "method": "POST",
    "path": "/api/v1/projects",
    "controller": "apiController",
    "handler": "handler",
    "module": "projects",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/projects/controllers/project.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/projects/create-from-order/:orderId",
    "method": "POST",
    "path": "/api/v1/projects/create-from-order/:orderId",
    "controller": "apiController",
    "handler": "handler",
    "module": "projects",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/projects/controllers/project.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/projects",
    "method": "GET",
    "path": "/api/v1/projects",
    "controller": "apiController",
    "handler": "handler",
    "module": "projects",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/projects/controllers/project.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/projects/:id",
    "method": "GET",
    "path": "/api/v1/projects/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "projects",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/projects/controllers/project.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/projects/:id",
    "method": "PUT",
    "path": "/api/v1/projects/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "projects",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/projects/controllers/project.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/projects/:id",
    "method": "DELETE",
    "path": "/api/v1/projects/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "projects",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/projects/controllers/project.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/projects/:id/assign",
    "method": "POST",
    "path": "/api/v1/projects/:id/assign",
    "controller": "apiController",
    "handler": "handler",
    "module": "projects",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/projects/controllers/project.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/projects/:id/tasks",
    "method": "POST",
    "path": "/api/v1/projects/:id/tasks",
    "controller": "apiController",
    "handler": "handler",
    "module": "projects",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/projects/controllers/project.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/projects/tasks/:taskId",
    "method": "PUT",
    "path": "/api/v1/projects/tasks/:taskId",
    "controller": "apiController",
    "handler": "handler",
    "module": "projects",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/projects/controllers/project.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/projects/:id/signoff",
    "method": "POST",
    "path": "/api/v1/projects/:id/signoff",
    "controller": "apiController",
    "handler": "handler",
    "module": "projects",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/projects/controllers/project.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/branches",
    "method": "POST",
    "path": "/api/v1/branches",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/branch.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/branches",
    "method": "GET",
    "path": "/api/v1/branches",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/branch.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/branches/:id",
    "method": "PUT",
    "path": "/api/v1/branches/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/branch.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/branches/:id",
    "method": "DELETE",
    "path": "/api/v1/branches/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/branch.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/departments",
    "method": "POST",
    "path": "/api/v1/departments",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/department.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/departments",
    "method": "GET",
    "path": "/api/v1/departments",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/department.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/departments/:id",
    "method": "PUT",
    "path": "/api/v1/departments/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/department.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/departments/:id",
    "method": "DELETE",
    "path": "/api/v1/departments/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/department.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/organizations",
    "method": "POST",
    "path": "/api/v1/organizations",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/organization.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/organizations",
    "method": "GET",
    "path": "/api/v1/organizations",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/organization.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/organizations/:id",
    "method": "GET",
    "path": "/api/v1/organizations/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/organization.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/organizations/:id",
    "method": "PUT",
    "path": "/api/v1/organizations/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/organization.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/organizations/:id",
    "method": "DELETE",
    "path": "/api/v1/organizations/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/organization.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/rbac/roles",
    "method": "GET",
    "path": "/api/v1/rbac/roles",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/rbac.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/rbac/roles/:id",
    "method": "GET",
    "path": "/api/v1/rbac/roles/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/rbac.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/rbac/roles",
    "method": "POST",
    "path": "/api/v1/rbac/roles",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/rbac.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/rbac/roles/:id/clone",
    "method": "POST",
    "path": "/api/v1/rbac/roles/:id/clone",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/rbac.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/rbac/roles/:id",
    "method": "PUT",
    "path": "/api/v1/rbac/roles/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/rbac.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/rbac/roles/:id",
    "method": "DELETE",
    "path": "/api/v1/rbac/roles/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/rbac.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/rbac/assign",
    "method": "POST",
    "path": "/api/v1/rbac/assign",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/rbac.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/rbac/users/:id/roles",
    "method": "POST",
    "path": "/api/v1/rbac/users/:id/roles",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/rbac.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/rbac/users/:id/roles/:roleId",
    "method": "DELETE",
    "path": "/api/v1/rbac/users/:id/roles/:roleId",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/rbac.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/rbac/users/:id/roles",
    "method": "GET",
    "path": "/api/v1/rbac/users/:id/roles",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/rbac.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/rbac/users/:id/permissions",
    "method": "GET",
    "path": "/api/v1/rbac/users/:id/permissions",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/rbac.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/rbac/permissions",
    "method": "GET",
    "path": "/api/v1/rbac/permissions",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/rbac.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/rbac/permissions",
    "method": "POST",
    "path": "/api/v1/rbac/permissions",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/rbac.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/teams",
    "method": "POST",
    "path": "/api/v1/teams",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/team.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/teams",
    "method": "GET",
    "path": "/api/v1/teams",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/team.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/teams/:id",
    "method": "PUT",
    "path": "/api/v1/teams/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/team.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/teams/:id",
    "method": "DELETE",
    "path": "/api/v1/teams/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "rbac",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/rbac/controllers/team.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/tickets",
    "method": "POST",
    "path": "/api/v1/tickets",
    "controller": "apiController",
    "handler": "handler",
    "module": "tickets",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/tickets/controllers/service-ticket.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/tickets",
    "method": "GET",
    "path": "/api/v1/tickets",
    "controller": "apiController",
    "handler": "handler",
    "module": "tickets",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/tickets/controllers/service-ticket.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/tickets/:id",
    "method": "GET",
    "path": "/api/v1/tickets/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "tickets",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/tickets/controllers/service-ticket.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/tickets/:id",
    "method": "PUT",
    "path": "/api/v1/tickets/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "tickets",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/tickets/controllers/service-ticket.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/tickets/:id",
    "method": "DELETE",
    "path": "/api/v1/tickets/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "tickets",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/tickets/controllers/service-ticket.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/tickets/:id/assign",
    "method": "POST",
    "path": "/api/v1/tickets/:id/assign",
    "controller": "apiController",
    "handler": "handler",
    "module": "tickets",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/tickets/controllers/service-ticket.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/tickets/:id/logs",
    "method": "POST",
    "path": "/api/v1/tickets/:id/logs",
    "controller": "apiController",
    "handler": "handler",
    "module": "tickets",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/tickets/controllers/service-ticket.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/tickets/:id/resolve",
    "method": "POST",
    "path": "/api/v1/tickets/:id/resolve",
    "controller": "apiController",
    "handler": "handler",
    "module": "tickets",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/tickets/controllers/service-ticket.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/users",
    "method": "POST",
    "path": "/api/v1/users",
    "controller": "apiController",
    "handler": "handler",
    "module": "users",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/users/controllers/user.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/users",
    "method": "GET",
    "path": "/api/v1/users",
    "controller": "apiController",
    "handler": "handler",
    "module": "users",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/users/controllers/user.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/users/me/profile",
    "method": "GET",
    "path": "/api/v1/users/me/profile",
    "controller": "apiController",
    "handler": "handler",
    "module": "users",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/users/controllers/user.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/users/me/profile",
    "method": "PUT",
    "path": "/api/v1/users/me/profile",
    "controller": "apiController",
    "handler": "handler",
    "module": "users",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/users/controllers/user.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/users/:id",
    "method": "GET",
    "path": "/api/v1/users/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "users",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/users/controllers/user.controller.ts"
  },
  {
    "canonicalId": "PUT /api/v1/users/:id",
    "method": "PUT",
    "path": "/api/v1/users/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "users",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/users/controllers/user.controller.ts"
  },
  {
    "canonicalId": "DELETE /api/v1/users/:id",
    "method": "DELETE",
    "path": "/api/v1/users/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "users",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/users/controllers/user.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/users/:id/hierarchy",
    "method": "GET",
    "path": "/api/v1/users/:id/hierarchy",
    "controller": "apiController",
    "handler": "handler",
    "module": "users",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/users/controllers/user.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/users/:id/avatar",
    "method": "POST",
    "path": "/api/v1/users/:id/avatar",
    "controller": "apiController",
    "handler": "handler",
    "module": "users",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/users/controllers/user.controller.ts"
  },
  {
    "canonicalId": "POST /api/v1/warranties",
    "method": "POST",
    "path": "/api/v1/warranties",
    "controller": "apiController",
    "handler": "handler",
    "module": "warranties",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/warranties/controllers/warranty.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/warranties",
    "method": "GET",
    "path": "/api/v1/warranties",
    "controller": "apiController",
    "handler": "handler",
    "module": "warranties",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/warranties/controllers/warranty.controller.ts"
  },
  {
    "canonicalId": "GET /api/v1/warranties/:id",
    "method": "GET",
    "path": "/api/v1/warranties/:id",
    "controller": "apiController",
    "handler": "handler",
    "module": "warranties",
    "guards": "JwtAuthGuard,PermissionsGuard",
    "authRequired": true,
    "sourceFile": "NestJS backend/src/modules/warranties/controllers/warranty.controller.ts"
  }
]