{"openapi":"3.1.0","info":{"title":"Carbob API","version":"1.0.0","description":"# \ud83d\udcda Documenta\u00e7\u00e3o Completa da API Carbob\n\nA API utiliza **Laravel Passport** para autentica\u00e7\u00e3o OAuth2 com suporte a multi-tenancy. Todas as rotas protegidas requerem os headers `Authorization` (Bearer token) e `X-TENANT-ID`.\n\n---\n\n## \ud83d\udd10 Autentica\u00e7\u00e3o\n\nA API suporta autentica\u00e7\u00e3o via **OAuth2 Bearer Token**. Para obter um token:\n\n1. **Registar Tenant**: Use `POST \/v1\/auth\/register` para criar uma nova conta\n2. **Obter Token**: Use `POST \/v1\/oauth\/token` para autenticar e obter um access token\n3. **Usar Token**: Adicione o header `Authorization: Bearer <token>` em todas as requisi\u00e7\u00f5es protegidas\n4. **Identificar Tenant**: Adicione o header `X-TENANT-ID: <tenant_id>` para identificar o tenant\n\n---\n\n## \ud83d\udce6 Versionamento da API\n\nA API suporta acesso aos endpoints de duas formas:\n\n### \u2705 Rotas Versionadas\n`\/v1\/{resource}` - Sempre funcionam, garantem compatibilidade total\n\n### \u26a1 Rotas sem Vers\u00e3o\n`\/{resource}` - Apontam para a vers\u00e3o padr\u00e3o configurada (atualmente **v1**)\n\n### Exemplos\n- `POST \/v1\/auth\/register` ou `POST \/auth\/register` - Ambas funcionam\n- `GET \/v1\/clients` ou `GET \/clients` - Ambas funcionam\n\n> **Nota:** Rotas OAuth (`\/oauth\/*`) n\u00e3o t\u00eam vers\u00e3o.\n\n---\n\n## \ud83c\udfaf Funcionalidades Principais\n\n- \ud83d\udd11 **Autentica\u00e7\u00e3o e Gest\u00e3o de Utilizadores** - Registro, login, perfis e permiss\u00f5es\n- \ud83d\udccb **Gest\u00e3o de Planos e Contratos** - Subscri\u00e7\u00f5es, upgrades e downgrades\n- \ud83c\udfe2 **Sistema Multi-Tenancy** - Isolamento completo de dados por tenant\n- \ud83d\ude97 **Gest\u00e3o de Clientes e Frotas** - Clientes, ve\u00edculos e atribui\u00e7\u00f5es\n- \ud83d\udcca **Hist\u00f3rico de Altera\u00e7\u00f5es** - Auditoria completa de todas as opera\u00e7\u00f5es\n- \ud83d\udcf1 **Cat\u00e1logo de Ve\u00edculos** - Base de dados de marcas, modelos e vers\u00f5es\n\n---\n\n## \ud83d\udca1 Como Usar Esta Documenta\u00e7\u00e3o\n\n1. **\ud83d\udcdd Explorar Endpoints**: Navegue pelos grupos de tags \u00e0 esquerda\n2. **\ud83d\udd13 Autorizar**: Clique no bot\u00e3o **\"Authorize\"** no topo e insira seu Bearer token\n3. **\ud83e\uddea Testar**: Use \"Try it out\" em qualquer endpoint para testar diretamente\n4. **\ud83d\udccb Headers Obrigat\u00f3rios**:\n   - `Authorization: Bearer <token>`\n   - `X-TENANT-ID: <tenant_id>`\n\n---\n\n## \ud83d\ude80 Come\u00e7ar Rapidamente\n\n```bash\n# 1. Registar nova conta\nPOST \/v1\/auth\/register\n{\n  \"name\": \"Empresa Exemplo\",\n  \"email\": \"admin@exemplo.pt\",\n  \"password\": \"senha-segura\"\n}\n\n# 2. Obter token de acesso\nPOST \/v1\/oauth\/token\ngrant_type=password&client_id=1&client_secret=secret&username=admin@exemplo.pt&password=senha-segura\n\n# 3. Usar o token nas requisi\u00e7\u00f5es\nGET \/v1\/clients\nHeaders:\n  Authorization: Bearer <access_token>\n  X-TENANT-ID: <tenant_id>\n```\n\n---\n\n**Licen\u00e7a:** MIT | **Suporte:** [Contactar Carbob API Support](mailto:support@carbob.com)"},"servers":[{"url":"https:\/\/apidev.carbob.pt\/v1"}],"tags":[{"name":"Authentication","description":"User registration, password reset, and authentication"},{"name":"Change History","description":"View audit logs and change history for records"},{"name":"Clients","description":"Manage client information, contacts, and relationships"},{"name":"Contracts","description":"Manage subscription contracts, upgrades, downgrades, and cancellations"},{"name":"Dashboard","description":"Workshop operational dashboard metrics"},{"name":"Tags","description":"Attach\/detach tags to taggable entities"},{"name":"Estimates","description":"Manage estimates, drafts, and versions"},{"name":"System","description":"System health check and status monitoring"},{"name":"Inspection Categories","description":"Manage inspection categories (settings)"},{"name":"Inspection","description":"Inspection categories and items tree"},{"name":"Inspection Items","description":"Manage inspection items (settings)"},{"name":"Integrations","description":"Manage integrations (billing, payments)"},{"name":"Item Categories","description":"Manage item categories"},{"name":"Items","description":"Manage catalog items (services and products)"},{"name":"Job Board","description":"Kanban view of estimates and service orders"},{"name":"OAuth2","description":"OAuth2 token issuance and refresh endpoints"},{"name":"Payment Types","description":"Manage payment types (work order payments)"},{"name":"System","description":"System health check and status monitoring"},{"name":"Plans","description":"Browse available subscription plans, features, and pricing"},{"name":"Services","description":"Manage catalog services (reusable item bundles)"},{"name":"Suppliers","description":"Manage suppliers (part orders)"},{"name":"Support","description":"Support request submission"},{"name":"Tags","description":"Reusable tags scoped by entity type"},{"name":"Tenant","description":"Manage tenant settings and subscription status"},{"name":"Tenant Labor Prices","description":"Manage tenant labor prices"},{"name":"User Profile","description":"Manage authenticated user profile and settings"},{"name":"User Management","description":"Administrative user management, roles, and invitations"},{"name":"User Roles","description":"Manage user roles and permissions"},{"name":"Vehicle Catalog","description":"Browse vehicle brands, models, and version specifications"},{"name":"Vehicles"},{"name":"Vehicles","description":"Vehicle repair graphics and service information"},{"name":"Work Orders","description":"Manage work orders, content and services"},{"name":"Workshops","description":"Manage workshops for multi-location operations"}],"paths":{"\/auth\/register":{"post":{"operationId":"auth.register","summary":"Register a new tenant and user","tags":["Authentication"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RegisterRequest"}}}},"responses":{"200":{"description":"`RegisterResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/RegisterResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"},{"type":"object"}]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"}}}},"\/auth\/forgot-password":{"post":{"operationId":"auth.forgotPassword","summary":"Send password reset link","tags":["Authentication"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ForgotPasswordRequest"}}}},"responses":{"200":{"description":"`ForgotPasswordResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ForgotPasswordResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"},{"type":"object"}]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"}}}},"\/auth\/accept-invite":{"post":{"operationId":"auth.acceptInvite","summary":"Accept user invite via token","tags":["Authentication"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AcceptInviteRequest"}}}},"responses":{"200":{"description":"`AcceptInviteResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/AcceptInviteResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"}}}},"\/auth\/reset-password":{"post":{"operationId":"auth.resetPassword","summary":"Reset user password","tags":["Authentication"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ResetPasswordRequest"}}}},"responses":{"200":{"description":"`ResetPasswordResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ResetPasswordResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"},{"type":"object"}]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"}}}},"\/auth\/google\/redirect":{"get":{"operationId":"auth.googleRedirect","summary":"Get Google OAuth authorization URL","tags":["Authentication"],"parameters":[{"name":"redirect_uri","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]}}}}}}},"\/auth\/google\/callback":{"post":{"operationId":"auth.googleCallback","summary":"Handle Google OAuth callback (SPA flow)","tags":["Authentication"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/GoogleCallbackRequest"}}}},"responses":{"200":{"description":"`GoogleAuthResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/GoogleAuthResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"}}}},"\/change-history\/{source}\/{sourceId}":{"get":{"operationId":"changeHistory.show","summary":"Get change history for a specific source record","tags":["Change History"],"parameters":[{"name":"source","in":"path","required":true,"description":"The source type (e.g., 'client', 'clients_fleet')","schema":{"type":"string"}},{"name":"sourceId","in":"path","required":true,"description":"The ID of the source record","schema":{"type":"integer"}}],"responses":{"200":{"description":"ResponseData j\u00e1 implementa Responsable, status 200 \u00e9 default\n\n\n\n`ChangeHistoryListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChangeHistoryListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/clients":{"get":{"operationId":"client.index","summary":"Display a listing of clients","tags":["Clients"],"parameters":[{"name":"search","in":"query","schema":{"type":"string","maxLength":255}},{"name":"email","in":"query","schema":{"type":"string","maxLength":255}},{"name":"fiscal_id","in":"query","schema":{"type":"string","maxLength":50}},{"name":"name","in":"query","schema":{"type":"string","maxLength":255}},{"name":"type","in":"query","schema":{"type":"string","enum":["individual","business"]}},{"name":"preferred_contact_method","in":"query","schema":{"type":"string","enum":["email","sms","both"]}},{"name":"sort_by","in":"query","schema":{"type":"string","enum":["id","name","email","type","created_at"]}},{"name":"sort_dir","in":"query","schema":{"type":"string","enum":["asc","desc"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"`ClientListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ClientListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"client.store","summary":"Store a newly created client","tags":["Clients"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreClientRequest"}}}},"responses":{"200":{"description":"`ClientResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ClientResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/clients\/{client}\/payments":{"get":{"operationId":"client.payments","summary":"List payments recorded on this client's repair orders","tags":["Clients"],"parameters":[{"name":"client","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`ClientPaymentListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ClientPaymentListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/clients\/{client}":{"get":{"operationId":"client.show","summary":"Display the specified client","tags":["Clients"],"parameters":[{"name":"client","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`ClientResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ClientResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"client.update","summary":"Update the specified client","tags":["Clients"],"parameters":[{"name":"client","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateClientRequest"}}}},"responses":{"200":{"description":"`ClientResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ClientResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"patch":{"operationId":"client.patch","summary":"Partially update a client (notes only)","tags":["Clients"],"parameters":[{"name":"client","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PatchClientRequest"}}}},"responses":{"200":{"description":"`ClientResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ClientResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"client.destroy","summary":"Remove the specified client","tags":["Clients"],"parameters":[{"name":"client","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/clients\/nif\/{nif}":{"get":{"operationId":"client.lookupNif","summary":"Lookup NIF information from external service","tags":["Clients"],"parameters":[{"name":"nif","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`NifLookupResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/NifLookupResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/contracts":{"get":{"operationId":"contract.index","summary":"Get all contracts for a tenant","tags":["Contracts"],"responses":{"200":{"description":"DataCollection<ContractListItemData>\n\n\n\n`ContractListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ContractListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"contract.store","summary":"Create a new contract","tags":["Contracts"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateContractRequest"}}}},"responses":{"200":{"description":"`ContractResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ContractResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/contracts\/current":{"get":{"operationId":"contract.current","summary":"Get the current active contract","tags":["Contracts"],"responses":{"200":{"description":"`ContractResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ContractResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"contract.cancelCurrent","summary":"Cancel the current active contract","tags":["Contracts"],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/contracts\/upgrade":{"post":{"operationId":"contract.upgrade","summary":"Upgrade tenant to a new plan","tags":["Contracts"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpgradePlanRequest"}}}},"responses":{"200":{"description":"`ContractResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ContractResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/contracts\/downgrade":{"post":{"operationId":"contract.downgrade","summary":"Downgrade tenant to a new plan","tags":["Contracts"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/DowngradePlanRequest"}}}},"responses":{"200":{"description":"`ContractResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ContractResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/contracts\/request-renewal":{"post":{"operationId":"contract.requestRenewal","summary":"Request contract renewal \/ activation","tags":["Contracts"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RequestRenewalRequest"}}}},"responses":{"200":{"description":"`RequestRenewalResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/RequestRenewalResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/contracts\/{contract}":{"delete":{"operationId":"contract.cancel","summary":"Cancel a contract","tags":["Contracts"],"parameters":[{"name":"contract","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/dashboard\/summary":{"get":{"operationId":"dashboard.summary","summary":"Dashboard summary","tags":["Dashboard"],"parameters":[{"name":"month","in":"query","schema":{"type":"integer","minimum":1,"maximum":12}},{"name":"year","in":"query","schema":{"type":"integer","minimum":2020,"maximum":2100}},{"name":"workshop_id","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"`DashboardSummaryResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/DashboardSummaryResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/dashboard\/financial":{"get":{"operationId":"dashboard.financial","summary":"Financial metrics","tags":["Dashboard"],"parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["today","this_week","this_month","this_year"]}},{"name":"workshop_id","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"`FinancialMetricsResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/FinancialMetricsResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/dashboard\/work-orders":{"get":{"operationId":"dashboard.workOrders","summary":"Work order pipeline metrics","tags":["Dashboard"],"parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["today","this_week","this_month","this_year"]}},{"name":"workshop_id","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"`WorkOrderMetricsResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderMetricsResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/dashboard\/estimates":{"get":{"operationId":"dashboard.estimates","summary":"Estimate pipeline metrics","tags":["Dashboard"],"parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["today","this_week","this_month","this_year"]}},{"name":"workshop_id","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateMetricsResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateMetricsResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/dashboard\/clients":{"get":{"operationId":"dashboard.clients","summary":"Client metrics","tags":["Dashboard"],"parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["today","this_week","this_month","this_year"]}},{"name":"workshop_id","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"`ClientMetricsResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ClientMetricsResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/dashboard\/vehicles":{"get":{"operationId":"dashboard.vehicles","summary":"Vehicle metrics","tags":["Dashboard"],"parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["today","this_week","this_month","this_year"]}},{"name":"workshop_id","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"`VehicleMetricsResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/VehicleMetricsResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/dashboard\/trends":{"get":{"operationId":"dashboard.trends","summary":"Operational funnel trends","tags":["Dashboard"],"parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["today","this_week","this_month","this_year"]}},{"name":"workshop_id","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"`TrendsResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TrendsResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/dashboard\/recent-estimates":{"get":{"operationId":"dashboard.recentEstimates","summary":"Recent estimates","tags":["Dashboard"],"parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["today","this_week","this_month","this_year"]}},{"name":"workshop_id","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"`RecentEstimatesResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RecentEstimatesResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/dashboard\/recent-work-orders":{"get":{"operationId":"dashboard.recentWorkOrders","summary":"Recent work orders","tags":["Dashboard"],"parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["today","this_week","this_month","this_year"]}},{"name":"workshop_id","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"`RecentWorkOrdersResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RecentWorkOrdersResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/dev\/email":{"post":{"operationId":"dev.sendEmail","summary":"Test email sending via configured mail provider","tags":["Development"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SendEmailRequest"}}}},"responses":{"200":{"description":"`EmailTestResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EmailTestResponseData"}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"}}}},"\/dev\/sms":{"post":{"operationId":"dev.sendSms","summary":"Test SMS sending via SmsService","tags":["Development"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SendSmsRequest"}}}},"responses":{"200":{"description":"`SmsTestResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SmsTestResponseData"}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"}}}},"\/dev\/whatsapp":{"post":{"operationId":"dev.sendWhatsApp","summary":"Test WhatsApp sending via WhatsAppService","tags":["Development"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SendWhatsAppRequest"}}}},"responses":{"200":{"description":"`WhatsAppTestResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WhatsAppTestResponseData"}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"}}}},"\/dev\/email-template":{"post":{"operationId":"dev.previewEmailTemplate","summary":"Preview email template and optionally send it","tags":["Development"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PreviewEmailTemplateRequest"}}}},"responses":{"200":{"description":"Otherwise return JSON response\n\n\n\n`EmailTemplatePreviewResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/EmailTemplatePreviewResponseData"},{"type":"string"}]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"}}}},"\/estimates":{"post":{"operationId":"estimate.store","summary":"Create a new estimate in draft status","tags":["Estimates"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreEstimateRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"get":{"operationId":"estimate.index","summary":"List all estimates for current tenant","tags":["Estimates"],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0}},{"name":"search","in":"query","schema":{"type":"string","maxLength":255}},{"name":"sort_by","in":"query","schema":{"type":"string","enum":["document_number","client_name","vehicle_plate","total","status","created_at","updated_at"]}},{"name":"sort_dir","in":"query","schema":{"type":"string","enum":["asc","desc"]}},{"name":"is_archived","in":"query","schema":{"type":"string","enum":["true","false","all"]}},{"name":"status","in":"query","schema":{"type":"string","enum":["draft","ready","sent","accepted","rejected","expired","cancelled"]}},{"name":"client_id","in":"query","schema":{"type":"integer","minimum":1}},{"name":"vehicle_id","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"`EstimateListResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateListResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/draft":{"put":{"operationId":"estimate.saveDraft","summary":"Save\/update draft content (full or partial)","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"description":"Draft content to save. For full updates (update_type=\"full\"), only client, vehicle, and items are accepted. Immutable sections (schema_version, estimate, pricing, summary) are preserved from the current draft.","required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"update_type":{"type":"string","description":"Update type: \"partial\" (default) or \"full\"","enum":["partial","full"],"default":"partial"},"content":{"type":"object","description":"Draft content. For full updates, only client, vehicle, and items are accepted. Immutable sections (schema_version, estimate, pricing, summary) are preserved from current draft.","properties":{"client":{"type":"object","properties":{"id":{"type":"integer","description":"Client ID (must exist)"},"name":{"type":"string","description":"Client name"},"lastname":{"type":"string","description":"Client lastname"},"email":{"type":"string","description":"Client email"},"phone":{"type":"string","description":"Client phone"},"fiscal_id":{"type":"string","description":"Client fiscal ID"}}},"vehicle":{"type":"object","properties":{"id":{"type":"integer","description":"Vehicle ID (must exist)"},"plate":{"type":"string","description":"Vehicle plate number"},"vin":{"type":"string","description":"Vehicle VIN (17 characters)"},"brand":{"type":"string","description":"Vehicle brand"},"model":{"type":"string","description":"Vehicle model"},"version":{"type":"string","description":"Vehicle version"},"color":{"type":"string","description":"Vehicle color"},"year":{"type":"integer","description":"Vehicle year"}}},"items":{"type":"array","description":"Estimate items array","items":{"type":"string"}}}}},"required":["content"]}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"estimate.discardDraft","summary":"Discard draft and return to ready status","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/client\/draft":{"patch":{"operationId":"estimate.updateDraftClient","summary":"Update draft client section","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateDraftClientRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/client":{"get":{"operationId":"estimate.getClient","summary":"Get client from estimate draft or version","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"status","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"`EstimateClientResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateClientResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/vehicle\/draft":{"patch":{"operationId":"estimate.updateDraftVehicle","summary":"Update draft vehicle section","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateDraftVehicleRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/vehicle":{"get":{"operationId":"estimate.getVehicle","summary":"Get vehicle from estimate draft or version","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"status","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"`EstimateVehicleResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateVehicleResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/finalize":{"post":{"operationId":"estimate.finalize","summary":"Finalize estimate (create version from draft)","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/save":{"post":{"operationId":"estimate.saveVersion","summary":"Save a new version of a finalized estimate","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SaveEstimateVersionRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/reopen":{"post":{"operationId":"estimate.reopen","summary":"Reopen estimate (create draft from current version)","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}":{"delete":{"operationId":"estimate.destroy","summary":"Permanently delete an estimate","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"patch":{"operationId":"estimate.update","summary":"Update estimate notes and comments","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateEstimateRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"get":{"operationId":"estimate.show","summary":"Display the specified estimate","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/send":{"post":{"operationId":"estimate.send","summary":"Send estimate to client","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SendEstimateRequest"}}}},"responses":{"200":{"description":"Convert to response DTO\n\n\n\n`EstimateSendResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateSendResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/share-url":{"get":{"operationId":"estimate.shareUrl","summary":"Get or generate share URL for estimate","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateShareLinkResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateShareLinkResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/send-history":{"get":{"operationId":"estimate.sendHistory","summary":"Get send history for estimate","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateSendHistoryListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateSendHistoryListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/pdf":{"get":{"operationId":"estimate.downloadPdf","summary":"Download estimate PDF","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"show_client_notes","in":"query","schema":{"type":"string"}},{"name":"show_detailed_prices","in":"query","schema":{"type":"string"}},{"name":"show_part_reference","in":"query","schema":{"type":"string"}},{"name":"show_quantities","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application\/pdf":{"schema":{"type":"string"}}},"headers":{"Content-Disposition":{"schema":{"type":"string"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/dev\/pdf":{"get":{"operationId":"estimate.devPdf","summary":"Preview estimate PDF with mock data (development\/testing)","tags":["Estimates"],"parameters":[{"name":"template","in":"query","description":"Get query parameters","schema":{"type":"string"}},{"name":"version","in":"query","schema":{"type":"string"}},{"name":"data","in":"query","schema":{"type":"string","default":"normal"}},{"name":"client","in":"query","schema":{"type":"string"}},{"name":"vehicle","in":"query","schema":{"type":"string"}},{"name":"services","in":"query","schema":{"type":"string"}},{"name":"estimate","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application\/pdf":{"schema":{"type":"string"}}},"headers":{"Content-Disposition":{"schema":{"type":"string","enum":["inline; filename=\"orcamento-preview.pdf\""]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/accept":{"post":{"operationId":"estimate.accept","summary":"Accept estimate","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/reject":{"post":{"operationId":"estimate.reject","summary":"Reject estimate","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/archive":{"post":{"operationId":"estimate.archive","summary":"Archive an estimate","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/unarchive":{"post":{"operationId":"estimate.unarchive","summary":"Unarchive an estimate","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/history":{"get":{"operationId":"estimate.history","summary":"Get estimate history timeline","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateHistoryListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateHistoryListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/versions":{"get":{"operationId":"estimate.listVersions","summary":"List all versions for an estimate","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateVersionListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateVersionListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/versions\/{version}":{"get":{"operationId":"estimate.showVersion","summary":"Display a specific version","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateVersionResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateVersionResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/validation":{"get":{"operationId":"estimate.validation","summary":"Validate estimate for finalization","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateValidationResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateValidationResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/services\/draft":{"post":{"operationId":"estimate.createService","summary":"Create a new item in estimate draft","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateEstimateServiceRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/services\/draft\/{serviceId}":{"put":{"operationId":"estimate.updateService","summary":"Update an existing item in estimate draft","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateEstimateServiceRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"estimate.deleteService","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/services\/draft\/{serviceId}\/parts":{"post":{"operationId":"estimate.addPartManual","summary":"Add a manual (non-catalog) part to an estimate service group","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AddPartManualRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/services\/draft\/{serviceId}\/labor":{"post":{"operationId":"estimate.addLaborManual","summary":"Add a manual (non-catalog) labor line to an estimate service group","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AddLaborManualRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/services\/draft\/{serviceId}\/parts\/from-catalog":{"post":{"operationId":"estimate.addPartFromCatalog","summary":"Add a catalog part to an estimate service group (CAR-324)","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AddPartFromCatalogRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/services\/draft\/{serviceId}\/labor\/from-catalog":{"post":{"operationId":"estimate.addLaborFromCatalog","summary":"Add a catalog labor entry to an estimate service group (CAR-324)","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AddLaborFromCatalogRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/services\/draft\/{serviceId}\/parts\/{partId}\/pricing":{"patch":{"operationId":"estimate.updatePartPricing","summary":"Update pricing of a part line within an estimate service group (CAR-327)","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"partId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdatePartPricingRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/services\/draft\/{serviceId}\/labor\/{laborId}\/pricing":{"patch":{"operationId":"estimate.updateLaborPricing","summary":"Update pricing of a labor line within an estimate service group (CAR-327)","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"laborId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateLaborPricingRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/services":{"get":{"operationId":"estimate.getServices","summary":"Get items from estimate draft or version","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"status","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"`EstimateServicesResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateServicesResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/services\/approve":{"post":{"operationId":"estimate.approveServices","summary":"Approve items in the current version","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ApproveServicesRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/services\/reject":{"post":{"operationId":"estimate.rejectServices","summary":"Reject items in the current version","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RejectServicesRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/services\/reset-approval":{"post":{"operationId":"estimate.resetServicesApproval","summary":"Reset item approvals in the current version","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ResetServicesApprovalRequest"}}}},"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{id}\/draft\/recalculate":{"post":{"operationId":"estimate.recalculate","summary":"Manually recalculate estimate draft totals","tags":["Estimates"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/vehicle\/{vehicleId}\/deferred-items":{"get":{"operationId":"estimate.deferredItems","summary":"Get deferred (rejected) items for a vehicle","tags":["Estimates"],"parameters":[{"name":"vehicleId","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`DeferredItemsResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/DeferredItemsResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/inspection\/tree":{"get":{"operationId":"inspection.tree","summary":"Get full tree of inspection categories and their items","tags":["Inspection"],"responses":{"200":{"description":"`InspectionTreeResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/InspectionTreeResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/inspection\/categories":{"get":{"operationId":"inspectionCategory.index","tags":["Inspection Categories"],"responses":{"200":{"description":"`InspectionCategoryListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/InspectionCategoryListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"inspectionCategory.store","tags":["Inspection Categories"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreInspectionCategoryRequest"}}}},"responses":{"200":{"description":"`InspectionCategoryResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/InspectionCategoryResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/inspection\/categories\/{id}":{"get":{"operationId":"inspectionCategory.show","tags":["Inspection Categories"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`InspectionCategoryResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/InspectionCategoryResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"inspectionCategory.update","tags":["Inspection Categories"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateInspectionCategoryRequest"}}}},"responses":{"200":{"description":"`InspectionCategoryResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/InspectionCategoryResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"inspectionCategory.destroy","tags":["Inspection Categories"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/inspection\/items":{"get":{"operationId":"inspectionItem.index","tags":["Inspection Items"],"parameters":[{"name":"category_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"`InspectionItemListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/InspectionItemListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"inspectionItem.store","tags":["Inspection Items"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreInspectionItemRequest"}}}},"responses":{"200":{"description":"`InspectionItemResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/InspectionItemResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/inspection\/items\/{id}":{"get":{"operationId":"inspectionItem.show","tags":["Inspection Items"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`InspectionItemResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/InspectionItemResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"inspectionItem.update","tags":["Inspection Items"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateInspectionItemRequest"}}}},"responses":{"200":{"description":"`InspectionItemResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/InspectionItemResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"inspectionItem.destroy","tags":["Inspection Items"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/integrations":{"get":{"operationId":"integration.index","tags":["Integrations"],"parameters":[{"name":"service_type","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"`IntegrationListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/IntegrationListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"integration.store","tags":["Integrations"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpsertIntegrationRequest"}}}},"responses":{"200":{"description":"`IntegrationResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/IntegrationResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/integrations\/{id}":{"get":{"operationId":"integration.show","tags":["Integrations"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`IntegrationResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/IntegrationResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/item-categories":{"get":{"operationId":"itemCategory.index","tags":["Item Categories"],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0}},{"name":"search","in":"query","schema":{"type":["string","null"],"maxLength":255}},{"name":"is_active","in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"`ItemCategoryListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ItemCategoryListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"itemCategory.store","tags":["Item Categories"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreItemCategoryRequest"}}}},"responses":{"200":{"description":"`ItemCategoryResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ItemCategoryResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/item-categories\/{id}":{"get":{"operationId":"itemCategory.show","tags":["Item Categories"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`ItemCategoryResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ItemCategoryResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"itemCategory.update","tags":["Item Categories"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateItemCategoryRequest"}}}},"responses":{"200":{"description":"`ItemCategoryResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ItemCategoryResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"itemCategory.destroy","tags":["Item Categories"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/item-categories\/{id}\/active":{"patch":{"operationId":"itemCategory.setActive","tags":["Item Categories"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SetItemCategoryActiveRequest"}}}},"responses":{"200":{"description":"`ItemCategoryResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ItemCategoryResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/items":{"get":{"operationId":"item.index","summary":"List items","tags":["Items"],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0}},{"name":"search","in":"query","schema":{"type":["string","null"],"maxLength":255}},{"name":"type","in":"query","schema":{"$ref":"#\/components\/schemas\/ItemType"}},{"name":"category_id","in":"query","schema":{"type":"integer"}},{"name":"category_ids[]","in":"query","schema":{"type":"array","items":{"type":"integer"}}},{"name":"is_active","in":"query","schema":{"type":"boolean"}},{"name":"workshop_ids[]","in":"query","schema":{"type":"array","items":{"type":"integer"}}},{"name":"code","in":"query","schema":{"type":"string","maxLength":64}},{"name":"barcode","in":"query","schema":{"type":"string","maxLength":64}},{"name":"product_type","in":"query","schema":{"$ref":"#\/components\/schemas\/ItemProductType"}},{"name":"kind","in":"query","schema":{"$ref":"#\/components\/schemas\/ItemCodeKind"}},{"name":"sort_by","in":"query","schema":{"type":"string"}},{"name":"sort_dir","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"`ItemListResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ItemListResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"item.store","summary":"Create item","tags":["Items"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreItemRequest"}}}},"responses":{"200":{"description":"`ItemResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ItemResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/items\/workshop\/{workshop_id}":{"get":{"operationId":"item.listForWorkshop","summary":"List items available for a specific workshop","tags":["Items"],"parameters":[{"name":"workshop_id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0}},{"name":"search","in":"query","schema":{"type":["string","null"],"maxLength":255}},{"name":"type","in":"query","schema":{"$ref":"#\/components\/schemas\/ItemType"}},{"name":"category_id","in":"query","schema":{"type":"integer"}},{"name":"category_ids[]","in":"query","schema":{"type":"array","items":{"type":"integer"}}},{"name":"is_active","in":"query","schema":{"type":"boolean"}},{"name":"workshop_ids[]","in":"query","schema":{"type":"array","items":{"type":"integer"}}},{"name":"code","in":"query","schema":{"type":"string","maxLength":64}},{"name":"barcode","in":"query","schema":{"type":"string","maxLength":64}},{"name":"product_type","in":"query","schema":{"$ref":"#\/components\/schemas\/ItemProductType"}},{"name":"kind","in":"query","schema":{"$ref":"#\/components\/schemas\/ItemCodeKind"}},{"name":"sort_by","in":"query","schema":{"type":"string"}},{"name":"sort_dir","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"`ItemListResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ItemListResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/items\/{item_id}":{"get":{"operationId":"item.show","summary":"Get item details","tags":["Items"],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`ItemResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ItemResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"item.update","summary":"Update item","tags":["Items"],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateItemRequest"}}}},"responses":{"200":{"description":"`ItemResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ItemResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"item.destroy","summary":"Delete item","tags":["Items"],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/items\/{item_id}\/customizations":{"get":{"operationId":"item.customizations","summary":"List customizations of an item across services (children\/pricing overrides)","tags":["Items"],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`ItemCustomizationsResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ItemCustomizationsResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/items\/{item_id}\/restrict":{"post":{"operationId":"item.restrictToWorkshops","summary":"Restrict item to specific workshops","tags":["Items"],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RestrictItemRequest"}}}},"responses":{"200":{"description":"`ItemResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ItemResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/job-board":{"get":{"operationId":"jobBoard.index","summary":"Get the job board snapshot: columns + cards grouped by column + user preferences","tags":["Job Board"],"parameters":[{"name":"estimate_sort_by","in":"query","schema":{"$ref":"#\/components\/schemas\/EstimateSortField"}},{"name":"estimate_sort_direction","in":"query","schema":{"$ref":"#\/components\/schemas\/SortDirection"}},{"name":"filter_assigned_user_ids[]","in":"query","schema":{"type":"array","items":{"type":"integer"}}},{"name":"filter_approval_statuses[]","in":"query","schema":{"type":"array","items":{"$ref":"#\/components\/schemas\/EstimateApprovalStatus"}}},{"name":"filter_tag_ids[]","in":"query","schema":{"type":"array","items":{"type":"integer"}}},{"name":"filter_tag_colors[]","in":"query","schema":{"type":"array","items":{"$ref":"#\/components\/schemas\/TagColor"}}}],"responses":{"200":{"description":"`JobBoardSnapshotResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/JobBoardSnapshotResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/job-board\/columns":{"get":{"operationId":"jobBoard.listColumns","summary":"List workflow columns (without cards)","tags":["Job Board"],"responses":{"200":{"description":"`WorkflowColumnListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkflowColumnListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"jobBoard.storeColumn","summary":"Create a new work-orders workflow column","tags":["Job Board"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreWorkflowColumnRequest"}}}},"responses":{"200":{"description":"`WorkflowColumnResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkflowColumnResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/job-board\/columns\/{id}":{"patch":{"operationId":"jobBoard.updateColumn","summary":"Rename a workflow column","tags":["Job Board"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateWorkflowColumnRequest"}}}},"responses":{"200":{"description":"`WorkflowColumnResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkflowColumnResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"jobBoard.destroyColumn","summary":"Delete a workflow column. If it has linked ORs, target_column_id is required","tags":["Job Board"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"target_column_id","in":"query","schema":{"type":["integer","null"]}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/job-board\/preferences":{"get":{"operationId":"jobBoard.showPreferences","summary":"Get the authenticated user's job board preferences","tags":["Job Board"],"responses":{"200":{"description":"`UserJobBoardPreferenceResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserJobBoardPreferenceResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"jobBoard.updatePreferences","summary":"Update the authenticated user's job board preferences.\nPartial update \u2014 only fields present in the body are changed","tags":["Job Board"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateUserPreferencesRequest"}}}},"responses":{"200":{"description":"`UserJobBoardPreferenceResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserJobBoardPreferenceResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/oauth\/token":{"post":{"operationId":"oAuth.issueToken","summary":"Issue access token with tenant_id","tags":["OAuth2"],"requestBody":{"description":"OAuth token request parameters. Use application\/x-www-form-urlencoded content type.","required":true,"content":{"application\/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"grant_type":{"type":"string","description":"Grant type, must be \"password\"","default":"password"},"client_id":{"type":"string","description":"OAuth client ID","default":"1"},"client_secret":{"type":"string","description":"OAuth client secret","default":"secret"},"username":{"type":"string","description":"User email address","default":"usuario@exemplo.com"},"password":{"type":"string","description":"User password","default":"senha123456"}},"required":["grant_type","client_id","client_secret","username","password"]}}}},"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"anyOf":[{"type":"object"},{"type":"string"}]}}}}}}},"\/oauth\/token\/refresh":{"post":{"operationId":"oAuth.refresh","summary":"Refresh access token with tenant_id","tags":["OAuth2"],"requestBody":{"description":"OAuth refresh token request parameters. Use application\/x-www-form-urlencoded content type.","required":true,"content":{"application\/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"grant_type":{"type":"string","description":"Grant type, must be \"refresh_token\"","default":"refresh_token"},"client_id":{"type":"string","description":"OAuth client ID","default":"1"},"client_secret":{"type":"string","description":"OAuth client secret","default":"secret"},"refresh_token":{"type":"string","description":"The refresh token","default":""}},"required":["grant_type","client_id","client_secret","refresh_token"]}}}},"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"anyOf":[{"type":"object"},{"type":"string"}]}}}}}}},"\/payment-types":{"get":{"operationId":"paymentType.index","tags":["Payment Types"],"responses":{"200":{"description":"`PaymentTypeListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PaymentTypeListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/payment-types\/{id}\/toggle":{"put":{"operationId":"paymentType.toggle","tags":["Payment Types"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"is_active":{"type":"boolean"}},"required":["is_active"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/plans":{"get":{"operationId":"plan.index","summary":"List all available subscription plans","tags":["Plans"],"responses":{"200":{"description":"`PlanListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PlanListResponseData"}}}}}}},"\/plans\/compare":{"get":{"operationId":"plan.compare","summary":"Compare plans side by side","tags":["Plans"],"responses":{"200":{"description":"`PlanCompareResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PlanCompareResponseData"}}}}}}},"\/plans\/{type}":{"get":{"operationId":"plan.show","summary":"Get details of a specific plan","tags":["Plans"],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`PlanDetailResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/PlanDetailResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}}}}},"\/public\/estimates\/{token}":{"get":{"operationId":"estimatePublic.show","summary":"View public estimate (current version)","tags":["Public Estimates"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","description":"Check if version is provided via query string","schema":{"type":"string"}}],"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}}}}},"\/public\/estimates\/{token}\/{version}":{"get":{"operationId":"estimatePublic.showVersion","summary":"View public estimate (specific version)","tags":["Public Estimates"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`EstimateResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EstimateResponseData"}}}}}}},"\/public\/estimates\/{token}\/pdf":{"get":{"operationId":"estimatePublic.downloadPdf","summary":"Download public estimate PDF","tags":["Public Estimates"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","description":"Check if version is provided via query string","schema":{"type":"string"}}],"responses":{"200":{"description":"`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"type":"object"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}}}}},"\/services":{"get":{"operationId":"service.index","summary":"List services","tags":["Services"],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0}},{"name":"search","in":"query","schema":{"type":["string","null"],"maxLength":255}},{"name":"category_id","in":"query","schema":{"type":"integer"}},{"name":"category_ids[]","in":"query","schema":{"type":"array","items":{"type":"integer"}}},{"name":"is_active","in":"query","schema":{"type":"boolean"}},{"name":"workshop_ids[]","in":"query","schema":{"type":"array","items":{"type":"integer"}}},{"name":"sort_by","in":"query","schema":{"type":"string"}},{"name":"sort_dir","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"`ServiceListResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceListResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"service.store","summary":"Create service","tags":["Services"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreServiceRequest"}}}},"responses":{"200":{"description":"`ServiceResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/services\/{service_id}":{"get":{"operationId":"service.show","summary":"Get service details","tags":["Services"],"parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`ServiceResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"service.update","summary":"Update service","tags":["Services"],"parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateServiceRequest"}}}},"responses":{"200":{"description":"`ServiceResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"service.destroy","summary":"Delete service","tags":["Services"],"parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/services\/{service_id}\/restrict":{"post":{"operationId":"service.restrictToWorkshops","summary":"Restrict service to specific workshops","tags":["Services"],"parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RestrictServiceRequest"}}}},"responses":{"200":{"description":"`ServiceResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/services\/{service_id}\/items":{"post":{"operationId":"service.addItem","summary":"Add item to service","tags":["Services"],"parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AddServiceItemRequest"}}}},"responses":{"200":{"description":"`ServiceResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/services\/{service_id}\/items\/{item_id}":{"put":{"operationId":"service.updateItem","summary":"Update item within service","tags":["Services"],"parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateServiceItemRequest"}}}},"responses":{"200":{"description":"`ServiceResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"service.removeItem","summary":"Remove item from service","tags":["Services"],"parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`ServiceResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/services\/{service_id}\/items\/{service_item_id}\/pricing":{"delete":{"operationId":"service.resetItemPricing","summary":"Reset pricing customizations on a service line item back to catalog defaults","tags":["Services"],"parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"service_item_id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`ServiceResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/services\/{service_id}\/active":{"patch":{"operationId":"service.setActive","summary":"Activate or deactivate a service","tags":["Services"],"parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SetServiceActiveRequest"}}}},"responses":{"200":{"description":"`ServiceResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/services\/{service_id}\/duplicate":{"post":{"operationId":"service.duplicate","summary":"Duplicate a service (clones service + line items, name prefixed \"C\u00f3pia de \")","tags":["Services"],"parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`ServiceResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/suppliers":{"get":{"operationId":"supplier.index","tags":["Suppliers"],"responses":{"200":{"description":"`SupplierListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SupplierListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"supplier.store","tags":["Suppliers"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreSupplierRequest"}}}},"responses":{"200":{"description":"`SupplierResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SupplierResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/suppliers\/{id}":{"get":{"operationId":"supplier.show","tags":["Suppliers"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`SupplierResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SupplierResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"supplier.update","tags":["Suppliers"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateSupplierRequest"}}}},"responses":{"200":{"description":"`SupplierResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SupplierResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"supplier.destroy","tags":["Suppliers"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/support\/request":{"post":{"operationId":"support.request","tags":["Support"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SupportRequestFormRequest"}}}},"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/support\/account-manager":{"get":{"operationId":"support.accountManager","summary":"Get account manager contact details","tags":["Support"],"responses":{"200":{"description":"`AccountManagerContactResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AccountManagerContactResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/health":{"get":{"operationId":"health.health","summary":"Health check endpoint","tags":["System"],"responses":{"200":{"description":"`HealthResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/HealthResponseData"}}}}}}},"\/ping":{"get":{"operationId":"ping.index","summary":"Ping endpoint","tags":["System"],"responses":{"200":{"description":"`PingResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PingResponseData"}}}}}}},"\/system\/announcements":{"get":{"operationId":"systemAnnouncements.index","tags":["SystemAnnouncements"],"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"message":{"type":["string","null"]},"severity":{"type":"string"},"service_name":{"type":["string","null"]},"link":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["key","message","severity","service_name","link","updated_at"]}}},"required":["items"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{workOrder}\/tags":{"post":{"operationId":"entityTags.syncWorkOrder","tags":["Tags"],"parameters":[{"name":"workOrder","in":"path","required":true,"description":"The work order ID","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SyncEntityTagsRequest"}}}},"responses":{"200":{"description":"`TagListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TagListResponseData"}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/estimates\/{estimate}\/tags":{"post":{"operationId":"entityTags.syncEstimate","tags":["Tags"],"parameters":[{"name":"estimate","in":"path","required":true,"description":"The estimate ID","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SyncEntityTagsRequest"}}}},"responses":{"200":{"description":"`TagListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TagListResponseData"}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/tags":{"get":{"operationId":"tag.index","tags":["Tags"],"parameters":[{"name":"entity_type","in":"query","required":true,"schema":{"$ref":"#\/components\/schemas\/TagEntityType"}},{"name":"include_archived","in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"`TagListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TagListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"tag.store","tags":["Tags"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreTagRequest"}}}},"responses":{"200":{"description":"`TagResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TagResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/tags\/{id}":{"patch":{"operationId":"tag.update","tags":["Tags"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateTagRequest"}}}},"responses":{"200":{"description":"`TagResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TagResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"tag.destroy","tags":["Tags"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/tags\/{id}\/archive":{"post":{"operationId":"tag.archive","tags":["Tags"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`TagResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TagResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/tags\/{id}\/unarchive":{"post":{"operationId":"tag.unarchive","tags":["Tags"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`TagResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TagResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/tenant\/status":{"get":{"operationId":"tenant.status","summary":"Get tenant subscription status","tags":["Tenant"],"responses":{"200":{"description":"`TenantSubscriptionStatusResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/TenantSubscriptionStatusResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/tenant\/subscription":{"put":{"operationId":"tenant.updateSubscription","summary":"Update tenant subscription","tags":["Tenant"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateTenantSubscriptionRequest"}}}},"responses":{"200":{"description":"`TenantSubscriptionStatusResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/TenantSubscriptionStatusResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/tenant\/settings":{"get":{"operationId":"tenant.getSettings","summary":"Get tenant settings","tags":["Tenant"],"responses":{"200":{"description":"`TenantSettingsResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/TenantSettingsResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"tenant.updateSettings","summary":"Update tenant settings","tags":["Tenant"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateTenantSettingsRequest"}}}},"responses":{"200":{"description":"`TenantSettingsResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/TenantSettingsResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/tenant\/settings\/logo":{"post":{"operationId":"tenant.uploadLogo","summary":"Upload tenant logo","tags":["Tenant"],"requestBody":{"required":true,"content":{"multipart\/form-data":{"schema":{"$ref":"#\/components\/schemas\/UploadTenantLogoRequest"}}}},"responses":{"200":{"description":"`TenantSettingsResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/TenantSettingsResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"tenant.deleteLogo","summary":"Delete tenant logo","tags":["Tenant"],"responses":{"200":{"description":"`TenantSettingsResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/TenantSettingsResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/tenant-labor-prices":{"get":{"operationId":"tenantLaborPrice.index","summary":"Display a listing of labor prices","tags":["Tenant Labor Prices"],"responses":{"200":{"description":"`TenantLaborPriceListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TenantLaborPriceListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"tenantLaborPrice.store","summary":"Store a newly created labor price","tags":["Tenant Labor Prices"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreTenantLaborPriceRequest"}}}},"responses":{"200":{"description":"`TenantLaborPriceResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TenantLaborPriceResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/tenant-labor-prices\/{id}":{"get":{"operationId":"tenantLaborPrice.show","summary":"Display the specified labor price","tags":["Tenant Labor Prices"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`TenantLaborPriceResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TenantLaborPriceResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"tenantLaborPrice.update","summary":"Update the specified labor price","tags":["Tenant Labor Prices"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateTenantLaborPriceRequest"}}}},"responses":{"200":{"description":"`TenantLaborPriceResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TenantLaborPriceResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"tenantLaborPrice.destroy","summary":"Remove the specified labor price","tags":["Tenant Labor Prices"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/tenant-labor-prices\/{id}\/set-default":{"post":{"operationId":"tenantLaborPrice.setDefault","summary":"Set a labor price as default","tags":["Tenant Labor Prices"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`TenantLaborPriceResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TenantLaborPriceResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/users":{"get":{"operationId":"usersManagement.index","summary":"List users","tags":["User Management"],"responses":{"200":{"description":"`UserListResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserListResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"usersManagement.store","summary":"Create a new user in the tenant","tags":["User Management"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreUserRequest"}}}},"responses":{"200":{"description":"`UserCreateResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserCreateResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/users\/invitations":{"post":{"operationId":"usersManagement.invite","summary":"Invite user","tags":["User Management"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/InviteUserRequest"}}}},"responses":{"200":{"description":"`UserInvitationResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserInvitationResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/users\/{user}\/roles":{"put":{"operationId":"usersManagement.updateRoles","summary":"Update user roles","tags":["User Management"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateUserRolesRequest"}}}},"responses":{"200":{"description":"`UserUpdateRolesResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserUpdateRolesResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/users\/{user}":{"delete":{"operationId":"usersManagement.destroy","summary":"Delete a pending user","tags":["User Management"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"get":{"operationId":"usersManagement.show","summary":"Show the specified user","tags":["User Management"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`UserDetailResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserDetailResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/users\/{user}\/resend-invite":{"post":{"operationId":"usersManagement.resendInvite","summary":"Resend invite email","tags":["User Management"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`UserDetailResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserDetailResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/users\/{user}\/deactivate":{"patch":{"operationId":"usersManagement.deactivate","summary":"Deactivate user","tags":["User Management"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`UserDeactivateResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserDeactivateResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/users\/{user}\/workshop-access":{"put":{"operationId":"usersManagement.updateWorkshopAccess","summary":"Update user workshop access","tags":["User Management"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateUserWorkshopAccessRequest"}}}},"responses":{"200":{"description":"`UserWorkshopAccessResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserWorkshopAccessResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/user":{"get":{"operationId":"user.show","summary":"Get current user information","tags":["User Profile"],"responses":{"200":{"description":"`UserDetailResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserDetailResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"user.update","summary":"Update user information","tags":["User Profile"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateUserRequest"}}}},"responses":{"200":{"description":"`UserUpdateResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserUpdateResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/user\/permissions":{"get":{"operationId":"user.permissions","summary":"Get effective permissions for the current user","tags":["User Profile"],"responses":{"200":{"description":"`UserPermissionsResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserPermissionsResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/user\/change-password":{"post":{"operationId":"user.changePassword","summary":"Change user password","tags":["User Profile"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChangePasswordRequest"}}}},"responses":{"200":{"description":"`UserChangePasswordResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserChangePasswordResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/user\/force-change-password":{"post":{"operationId":"user.forceChangePassword","summary":"Force change password (first login)","tags":["User Profile"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ForceChangePasswordRequest"}}}},"responses":{"200":{"description":"`UserChangePasswordResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserChangePasswordResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/user\/debug-permissions":{"get":{"operationId":"user.debugPermissions","description":"Uses the group+level permission system: PermissionGroup (e.g. clients, users) and\nPermissionLevel (Read=2, AddEdit=4, Delete=8). Query param check_permission accepts\n\"group\" or \"group:level\" (e.g. \"clients\" or \"clients:read\").","summary":"Debug endpoint to validate permissions and token access","tags":["User Profile"],"parameters":[{"name":"check_permission","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"tenant_id":{"type":"string"},"is_owner":{"type":"boolean"},"is_active":{"type":"boolean"},"last_login_at":{"type":"string"}},"required":["id","name","email","tenant_id","is_owner","is_active","last_login_at"]},"authentication":{"type":"object","properties":{"authenticated":{"type":"string"},"guard":{"type":"string"},"has_bearer_token":{"type":"boolean"},"token_preview":{"type":["string","null"]}},"required":["authenticated","guard","has_bearer_token","token_preview"]},"roles":{"type":"object","properties":{"count":{"type":"string"},"loaded":{"type":"string"},"details":{"type":"string"}},"required":["count","loaded","details"]},"permissions":{"type":"object","properties":{"permission_system":{"type":"string","enum":["group+level (PermissionGroup + PermissionLevel bitmask)"]},"all_permissions_by_group":{"type":"string"},"check_result":{"type":"object","properties":{"input":{"anyOf":[{"type":"string"},{"type":"array","items":{}},{"type":"null"}]},"group":{"type":"string"},"user_level_bitmask":{"type":"string"},"user_levels":{"type":"array","items":{}},"found_in_roles":{"type":"string"}},"required":["input","group","user_level_bitmask","user_levels","found_in_roles"]}},"required":["permission_system","all_permissions_by_group","check_result"]},"tenant":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"account_status":{"type":"string"},"lifecycle_state":{"type":"string"},"subscription_status":{"type":"string"},"has_valid_contract":{"type":"string"}},"required":["id","name","email","account_status","lifecycle_state","subscription_status","has_valid_contract"]},"token_info":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]},"database_check":{"type":"object","properties":{"roles_in_db":{"type":"string"},"roles_count_in_db":{"type":"integer"},"matches_loaded_roles":{"type":"boolean"}},"required":["roles_in_db","roles_count_in_db","matches_loaded_roles"]},"debug_info":{"type":"object","properties":{"environment":{"type":"string"},"timestamp":{"type":["string","null"]},"request_id":{"anyOf":[{"type":"string"},{"type":"array","items":{}},{"type":"null"}]}},"required":["environment","timestamp","request_id"]},"common_permissions_check":{"type":"string"}},"required":["user","authentication","roles","permissions","tenant","token_info","database_check","debug_info","common_permissions_check"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/users\/roles":{"get":{"operationId":"usersRole.index","summary":"List available roles","tags":["User Roles"],"responses":{"200":{"description":"`UserRoleListResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserRoleListResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"usersRole.store","description":"Creates a new custom role for the current tenant.\nSystem roles cannot be created via API.","summary":"Create a custom role","tags":["User Roles"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreUsersRoleRequest"}}}},"responses":{"200":{"description":"`UserRoleResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserRoleResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/users\/roles\/system":{"get":{"operationId":"usersRole.systemRoles","summary":"List system roles","tags":["User Roles"],"responses":{"200":{"description":"`UserRoleSystemListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserRoleSystemListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/users\/roles\/permissions":{"get":{"operationId":"usersRole.permissions","description":"Returns all permission groups with their available levels (Read, AddEdit, Delete).\nUse this to display permission options when creating\/editing custom roles.","summary":"List available permissions","tags":["User Roles"],"responses":{"200":{"description":"`PermissionListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PermissionListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/users\/roles\/{roleId}":{"get":{"operationId":"usersRole.show","summary":"Get a specific role","tags":["User Roles"],"parameters":[{"name":"roleId","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`UserRoleResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserRoleResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"usersRole.update","description":"Updates an existing custom role.\nSystem roles cannot be modified via API.","summary":"Update a custom role","tags":["User Roles"],"parameters":[{"name":"roleId","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateUsersRoleRequest"}}}},"responses":{"200":{"description":"`UserRoleResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/UserRoleResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"usersRole.destroy","description":"Deletes a custom role. System roles cannot be deleted.\nUse ?force=true to delete even if users are assigned to this role.","summary":"Delete a custom role","tags":["User Roles"],"parameters":[{"name":"roleId","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicle-catalog\/brands":{"get":{"operationId":"vehicleCatalog.brands","summary":"List all active vehicle brands","tags":["Vehicle Catalog"],"responses":{"200":{"description":"`VehicleBrandListResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleBrandListResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}}}}},"\/vehicle-catalog\/brands\/{brand}":{"get":{"operationId":"vehicleCatalog.brand","summary":"Get a specific brand with its models","tags":["Vehicle Catalog"],"parameters":[{"name":"brand","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`VehicleBrandResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleBrandResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}}}}},"\/vehicle-catalog\/brands\/{brand}\/models":{"get":{"operationId":"vehicleCatalog.models","summary":"List all models for a specific brand","tags":["Vehicle Catalog"],"parameters":[{"name":"brand","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`VehicleModelListResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleModelListResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}}}}},"\/vehicle-catalog\/models\/{model}":{"get":{"operationId":"vehicleCatalog.model","summary":"Get a specific model with its versions","tags":["Vehicle Catalog"],"parameters":[{"name":"model","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`VehicleModelResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleModelResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}}}}},"\/vehicle-catalog\/models\/{model}\/variants":{"get":{"operationId":"vehicleCatalog.variants","summary":"List distinct variants for a specific model","tags":["Vehicle Catalog"],"parameters":[{"name":"model","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`VehicleVariantListResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleVariantListResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}}}}},"\/vehicle-catalog\/models\/{model}\/versions":{"get":{"operationId":"vehicleCatalog.versions","summary":"List all versions for a specific model","tags":["Vehicle Catalog"],"parameters":[{"name":"model","in":"path","required":true,"schema":{"type":"integer"}},{"name":"variant","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"`VehicleVersionListResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleVersionListResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}}}}},"\/vehicle-catalog\/versions\/{version}":{"get":{"operationId":"vehicleCatalog.version","summary":"Get a specific version with full details","tags":["Vehicle Catalog"],"parameters":[{"name":"version","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`VehicleVersionResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleVersionResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}}}}},"\/vehicle-catalog\/search\/{query}":{"get":{"operationId":"vehicleCatalog.search","summary":"Search vehicles by brand, model, or version name","tags":["Vehicle Catalog"],"parameters":[{"name":"query","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`VehicleCatalogSearchResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleCatalogSearchResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}}}}},"\/vehicles\/resolve-by-plate":{"post":{"operationId":"vehicle.resolveByPlate","description":"Resolves vehicle data from the estimation provider. Returns a vehicle token\nfor use with estimate endpoints (e.g. POST \/v1\/estimates\/times-list).","summary":"Resolve vehicle information by license plate","tags":["Vehicles"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ResolveByPlateRequest"}}}},"responses":{"200":{"description":"`VehicleResolutionResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleResolutionResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/resolve-by-vin":{"post":{"operationId":"vehicle.resolveByVin","description":"Resolves vehicle data from the estimation provider. Returns a vehicle token\nfor use with estimate endpoints (e.g. POST \/v1\/estimates\/times-list).","summary":"Resolve vehicle information by VIN","tags":["Vehicles"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ResolveByVinRequest"}}}},"responses":{"200":{"description":"`VehicleResolutionResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleResolutionResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles":{"get":{"operationId":"vehicle.index","summary":"List vehicles","tags":["Vehicles"],"parameters":[{"name":"client_id","in":"query","schema":{"type":"integer"}},{"name":"brand_id","in":"query","schema":{"type":"integer"}},{"name":"model_id","in":"query","schema":{"type":"integer"}},{"name":"status[]","in":"query","schema":{"type":"array","enum":["active","inactive","sold","scrapped"],"items":{"type":"string","enum":["active","inactive","sold","scrapped"]}}},{"name":"search","in":"query","schema":{"type":"string","maxLength":255}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0}},{"name":"sort_by","in":"query","schema":{"type":"string","enum":["id","plate_number","type","status","year","created_at","updated_at"]}},{"name":"sort_dir","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"`VehicleListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/VehicleListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"vehicle.store","summary":"Create vehicle","tags":["Vehicles"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreVehicleRequest"}}}},"responses":{"200":{"description":"`VehicleResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}":{"get":{"operationId":"vehicle.show","summary":"Get vehicle details","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`VehicleResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"vehicle.update","summary":"Update vehicle","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateVehicleRequest"}}}},"responses":{"200":{"description":"`VehicleResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"patch":{"operationId":"vehicle.patch","summary":"Partial update of a vehicle (e.g. only client_id).\nOnly sent fields are updated","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PatchVehicleRequest"}}}},"responses":{"200":{"description":"`VehicleResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"vehicle.destroy","summary":"Delete vehicle","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/transfer":{"patch":{"operationId":"vehicle.transfer","summary":"Transfer vehicle to a new owner","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/TransferVehicleRequest"}}}},"responses":{"200":{"description":"`VehicleResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/maintenance\/gearbox-types":{"get":{"operationId":"vehicleTips.getGearboxTypes","description":"Returns available gearbox types for the vehicle.","summary":"Get possible gearbox types","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`GearboxTypesResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/GearboxTypesResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/maintenance\/variables":{"post":{"operationId":"vehicleTips.getMaintenanceVariables","description":"Returns maintenance variables for selected gearbox.","summary":"Get maintenance variables","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/GetMaintenanceVariablesRequest"}}}},"responses":{"200":{"description":"`MaintenanceVariablesResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/MaintenanceVariablesResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/maintenance\/service-proposal":{"get":{"operationId":"vehicleTips.getServiceProposal","description":"Returns consolidated maintenance view (previous\/next maintenance).","summary":"Get service proposal","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"kilometers","in":"query","required":true,"schema":{"type":"integer","minimum":0}},{"name":"qual_col_id","in":"query","required":true,"schema":{"type":"integer"}},{"name":"plate_registration_date","in":"query","required":true,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"`ServiceProposalResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceProposalResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/maintenance\/services":{"get":{"operationId":"vehicleTips.getMaintenanceServices","description":"Returns all maintenance services for given KM and qualColId.","summary":"Get maintenance services","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"kilometers","in":"query","required":true,"schema":{"type":"integer","minimum":0}},{"name":"qual_col_id","in":"query","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`MaintenanceServicesResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/MaintenanceServicesResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/maintenance\/operations":{"post":{"operationId":"vehicleTips.getMaintenanceOperations","description":"Returns operations for selected work IDs.","summary":"Get maintenance operations","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/GetMaintenanceOperationsRequest"}}}},"responses":{"200":{"description":"`MaintenanceOperationsResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/MaintenanceOperationsResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/maintenance\/parts":{"post":{"operationId":"vehicleTips.getMaintenanceParts","description":"Returns parts for selected work IDs.","summary":"Get maintenance parts","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/GetMaintenancePartsRequest"}}}},"responses":{"200":{"description":"`MaintenancePartsResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/MaintenancePartsResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/service-tree":{"get":{"operationId":"vehicleTips.getServiceTree","description":"Returns service tree (times list) for service search.","summary":"Get service tree","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"search_text","in":"query","schema":{"type":["string","null"],"maxLength":255}}],"responses":{"200":{"description":"`ServiceTreeResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceTreeResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/service-tree\/work-steps-for-sub-group":{"get":{"operationId":"vehicleTips.getServiceTreeWorkStepsForSubGroup","description":"Returns work steps for a specific service-tree sub-group.","summary":"Get service tree work steps by sub-group","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"sub_group_id","in":"query","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"`ServiceTreeWorkStepsResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceTreeWorkStepsResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/service-tree\/work-steps":{"get":{"operationId":"vehicleTips.getServiceTreeWorkSteps","description":"Returns work steps for a specific item and operation (kor).","summary":"Get service tree work steps by item\/operation","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"item_mp_id","in":"query","required":true,"schema":{"type":"integer","minimum":1}},{"name":"kor_id","in":"query","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"`ServiceTreeWorkStepsResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceTreeWorkStepsResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/repair-diagram":{"get":{"operationId":"vehicleTips.getRepairGraphicList","description":"Returns the main groups tree structure for repair graphics.\nEach main group contains sub-groups with components.","summary":"Get repair graphic list (main groups tree)","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"search_text","in":"query","schema":{"type":["string","null"],"maxLength":255}}],"responses":{"200":{"description":"`RepairGraphicListResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/RepairGraphicListResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/repair-diagram\/vehicle-image":{"get":{"operationId":"vehicleTips.getRepairGraphicVehicleImage","description":"Returns HTML (typically containing an SVG tag) for the vehicle overview diagram.","summary":"Get repair graphic vehicle image","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"","content":{"text\/html; charset=UTF-8":{"schema":{"type":"string"}}}},"404":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["No vehicle image available"]}},"required":["error"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/repair-diagram\/main-group-image":{"get":{"operationId":"vehicleTips.getRepairGraphicMainGroupImage","description":"Returns HTML (typically containing an SVG tag) for a specific main group diagram.","summary":"Get repair graphic main group image","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"main_group_id","in":"query","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"","content":{"text\/html; charset=UTF-8":{"schema":{"type":"string"}}}},"404":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["No main group image available"]}},"required":["error"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/repair-diagram\/sub-group-image":{"get":{"operationId":"vehicleTips.getRepairGraphicSubGroupImage","description":"Returns HTML (typically containing an SVG tag) for a specific sub-group diagram.","summary":"Get repair graphic sub-group image","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"main_group_id","in":"query","required":true,"schema":{"type":"integer","minimum":1}},{"name":"sub_group_id","in":"query","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"","content":{"text\/html; charset=UTF-8":{"schema":{"type":"string"}}}},"404":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["No sub group image available"]}},"required":["error"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/vehicles\/{vehicle_id}\/repair-diagram\/work-steps":{"get":{"operationId":"vehicleTips.getRepairGraphicWorkSteps","description":"Returns the detailed work steps for a specific repair item.","summary":"Get repair graphic work steps","tags":["Vehicles"],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"item_mp_id","in":"query","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"`RepairGraphicWorkStepsResponseData`\n\n`ErrorResponseData`","content":{"application\/json":{"schema":{"anyOf":[{"$ref":"#\/components\/schemas\/RepairGraphicWorkStepsResponseData"},{"$ref":"#\/components\/schemas\/ErrorResponseData"}]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders":{"get":{"operationId":"workOrder.index","summary":"List work orders for the current tenant","tags":["Work Orders"],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0}},{"name":"search","in":"query","schema":{"type":"string","maxLength":255}},{"name":"sort_by","in":"query","schema":{"type":"string","enum":["document_number","client_name","vehicle_plate","title","total","status","scheduled_at","received_at","completed_at","created_at","updated_at"]}},{"name":"sort_dir","in":"query","schema":{"type":"string","enum":["asc","desc"]}},{"name":"is_archived","in":"query","schema":{"type":"string","enum":["true","false","all"]}},{"name":"status","in":"query","schema":{"type":"string","enum":["pending","in_progress","completed","cancelled"]}},{"name":"client_id","in":"query","schema":{"type":"integer","minimum":1}},{"name":"vehicle_id","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"`WorkOrderListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"workOrder.store","summary":"Create a work order manually (all fields optional)","tags":["Work Orders"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateWorkOrderRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/from-estimate":{"post":{"operationId":"workOrder.createFromEstimate","summary":"Create a work order from an estimate (copies content and links estimate)","tags":["Work Orders"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateWorkOrderFromEstimateRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}":{"get":{"operationId":"workOrder.show","summary":"Get a work order by ID with content","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"patch":{"operationId":"workOrder.update","summary":"Update work order (client and\/or vehicle)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateWorkOrderRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"workOrder.destroy","summary":"Permanently delete a work order.\nBlocked if there are recorded payments or attached invoices","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/title":{"patch":{"operationId":"workOrder.updateTitle","summary":"Update work order title","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateWorkOrderTitleRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/history":{"get":{"operationId":"workOrder.history","summary":"Get work order history (events log)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`WorkOrderHistoryListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderHistoryListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/payments":{"get":{"operationId":"workOrder.listPayments","summary":"List payments for a work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`WorkOrderPaymentListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderPaymentListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"workOrder.recordPayment","summary":"Record a payment for a work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RecordWorkOrderPaymentRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/complete-repair":{"post":{"operationId":"workOrder.completeRepair","summary":"Mark work order as completed (complete repair)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/schedule":{"patch":{"operationId":"workOrder.schedule","summary":"Schedule or reschedule a work order appointment date","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ScheduleWorkOrderRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/deadline":{"patch":{"operationId":"workOrder.setDeadline","summary":"Set or update a work order delivery deadline","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SetWorkOrderDeadlineRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/receive-vehicle":{"post":{"operationId":"workOrder.receiveVehicle","summary":"Register vehicle reception for a work order.\nTransitions status to InProgress","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ReceiveVehicleRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/deliver-vehicle":{"post":{"operationId":"workOrder.deliverVehicle","summary":"Register vehicle delivery, completing and archiving the work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/cancel":{"post":{"operationId":"workOrder.cancelWorkOrder","summary":"Cancel a work order and auto-archive it","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CancelWorkOrderRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/archive":{"post":{"operationId":"workOrder.archive","summary":"Archive a work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/unarchive":{"post":{"operationId":"workOrder.unarchive","summary":"Unarchive a work order. Reverts status to Pending","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/reopen":{"post":{"operationId":"workOrder.reopen","summary":"Reopen a completed or cancelled work order, resetting it to Pending","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/workflow-column":{"patch":{"operationId":"workOrder.moveToColumn","summary":"Move a work order to a job board workflow column (visual placement only).\nPass workflow_column_id = null to detach the OR from the board","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/MoveWorkOrderToColumnRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/estimates":{"get":{"operationId":"workOrder.listEstimates","summary":"List estimates linked to a work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["data"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"workOrder.createEstimateFromWorkOrder","summary":"Create an estimate from a work order (blank or based on previous)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateEstimateFromWorkOrderRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/users":{"put":{"operationId":"workOrder.assignUsers","summary":"Assign responsible users to a work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AssignWorkOrderUsersRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/invoices":{"get":{"operationId":"workOrder.listInvoices","summary":"List invoices for a work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`WorkOrderInvoiceListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderInvoiceListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"workOrder.attachInvoice","summary":"Attach an invoice to a work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AttachWorkOrderInvoiceRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/payments\/{paymentId}\/cancel":{"post":{"operationId":"workOrder.cancelPayment","summary":"Cancel a payment (soft cancel, not delete)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"paymentId","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/link-estimate":{"put":{"operationId":"workOrder.linkEstimate","summary":"Link an estimate to the work order and copy content (client, vehicle, services)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/LinkEstimateToWorkOrderRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/pdf":{"get":{"operationId":"workOrder.downloadPdf","summary":"Download work order as PDF","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"","content":{"application\/pdf":{"schema":{"type":"string"}}},"headers":{"Content-Disposition":{"schema":{"type":"string"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/share-url":{"get":{"operationId":"workOrder.shareUrl","summary":"Get or generate share URL for work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`WorkOrderShareLinkResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderShareLinkResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/send":{"post":{"operationId":"workOrder.send","summary":"Send work order to client via email or SMS","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SendWorkOrderRequest"}}}},"responses":{"200":{"description":"`WorkOrderSendResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderSendResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/content":{"put":{"operationId":"workOrder.saveContent","summary":"Save\/update work order content (full content payload)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SaveWorkOrderContentRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/inspections":{"put":{"operationId":"workOrder.saveInspections","summary":"Save\/update work order inspections","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SaveWorkOrderInspectionsRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/services":{"get":{"operationId":"workOrder.listServices","summary":"List services from work order content.\nSupports ?include=all|labor|parts to filter response","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"include","in":"query","schema":{"type":"string","default":"all"}}],"responses":{"200":{"description":"`WorkOrderServicesResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderServicesResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"workOrder.addService","summary":"Add a service to the work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateWorkOrderServiceRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/services\/{serviceId}":{"patch":{"operationId":"workOrder.updateService","summary":"Update a service in the work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateWorkOrderServiceRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"workOrder.deleteService","summary":"Delete a service from the work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/services\/{serviceId}\/parts":{"post":{"operationId":"workOrder.addPartManual","summary":"Add a manual (non-catalog) part to a WorkOrder service group","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AddPartManualToWorkOrderRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/services\/{serviceId}\/labor":{"post":{"operationId":"workOrder.addLaborManual","summary":"Add a manual (non-catalog) labor line to a WorkOrder service group","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AddLaborManualToWorkOrderRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/services\/{serviceId}\/parts\/from-catalog":{"post":{"operationId":"workOrder.addPartFromCatalog","summary":"Add a catalog part to a WorkOrder service group (CAR-324)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AddPartFromCatalogToWorkOrderRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/services\/{serviceId}\/labor\/from-catalog":{"post":{"operationId":"workOrder.addLaborFromCatalog","summary":"Add a catalog labor entry to a WorkOrder service group (CAR-324)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AddLaborFromCatalogToWorkOrderRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/services\/{serviceId}\/parts\/{partId}\/pricing":{"patch":{"operationId":"workOrder.updatePartPricing","summary":"Update pricing of a part line in a WorkOrder service group (CAR-327)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"partId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateWorkOrderPartPricingRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/services\/{serviceId}\/labor\/{laborId}\/pricing":{"patch":{"operationId":"workOrder.updateLaborPricing","summary":"Update pricing of a labor line in a WorkOrder service group (CAR-327)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"laborId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateWorkOrderLaborPricingRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/services\/{serviceId}\/status":{"patch":{"operationId":"workOrder.updateServiceStatus","summary":"Update a service status (Pending\/InProgress\/Completed).\nCompleting a service cascades to all labor items","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateServiceStatusRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/services\/{serviceId}\/assign-technician":{"post":{"operationId":"workOrder.assignTechnicianToService","summary":"Assign a technician to a service (and optionally all labor items)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AssignTechnicianToServiceRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/services\/{serviceId}\/labor\/{laborId}\/assign-technician":{"post":{"operationId":"workOrder.assignTechnicianToLabor","summary":"Assign a technician to a specific labor item","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"laborId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AssignTechnicianToLaborRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/services\/{serviceId}\/labor\/{laborId}\/status":{"patch":{"operationId":"workOrder.updateLaborStatus","summary":"Update a labor item status (Pending\/Completed).\nRecomputes parent service status automatically","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"laborId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateLaborStatusRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/services\/{serviceId}\/parts\/{partId}":{"patch":{"operationId":"workOrder.updateServicePart","summary":"Update part tracking fields (received, stock, used)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"serviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"partId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateServicePartRequest"}}}},"responses":{"200":{"description":"`WorkOrderResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkOrderResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/part-orders":{"get":{"operationId":"workOrder.listPartOrders","summary":"List part orders for a work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`PartOrderListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PartOrderListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"workOrder.createPartOrder","summary":"Create a part order for a work order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreatePartOrderRequest"}}}},"responses":{"200":{"description":"`PartOrderDetailResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PartOrderDetailResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/part-orders\/{partOrderId}":{"get":{"operationId":"workOrder.showPartOrder","summary":"Get a part order by ID with lines","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"partOrderId","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`PartOrderDetailResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PartOrderDetailResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"patch":{"operationId":"workOrder.updatePartOrderStatus","summary":"Update part order status (e.g. Cancelled, Delivered, Late)","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"partOrderId","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdatePartOrderStatusRequest"}}}},"responses":{"200":{"description":"`PartOrderDetailResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PartOrderDetailResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/part-orders\/{partOrderId}\/copy-parts":{"post":{"operationId":"workOrder.copyPartsToPartOrder","summary":"Copy parts from work order content to a part order","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"partOrderId","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CopyPartsToPartOrderRequest"}}}},"responses":{"200":{"description":"`PartOrderDetailResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PartOrderDetailResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/unordered-parts":{"get":{"operationId":"workOrder.listUnorderedParts","summary":"List parts from work order content that are not yet fully ordered","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`UnorderedPartsListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UnorderedPartsListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}},"\/work-orders\/{id}\/part-orders\/{partOrderId}\/receive":{"post":{"operationId":"workOrder.receivePartOrder","summary":"Receive part order lines (update received_qty). Use receive_all or per-line","tags":["Work Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"partOrderId","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ReceivePartOrderRequest"}}}},"responses":{"200":{"description":"`PartOrderDetailResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PartOrderDetailResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/workshops":{"get":{"operationId":"workshop.index","summary":"Display a listing of workshops","tags":["Workshops"],"responses":{"200":{"description":"`WorkshopListResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkshopListResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"post":{"operationId":"workshop.store","summary":"Store a newly created workshop","tags":["Workshops"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StoreWorkshopRequest"}}}},"responses":{"200":{"description":"`WorkshopResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkshopResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]}},"\/workshops\/{workshop}":{"get":{"operationId":"workshop.show","summary":"Display the specified workshop","tags":["Workshops"],"parameters":[{"name":"workshop","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"`WorkshopResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkshopResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]},"put":{"operationId":"workshop.update","summary":"Update the specified workshop","tags":["Workshops"],"parameters":[{"name":"workshop","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateWorkshopRequest"}}}},"responses":{"200":{"description":"`WorkshopResponseData`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WorkshopResponseData"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"}},"security":[{"BearerAuth":[]}]},"delete":{"operationId":"workshop.destroy","summary":"Remove the specified workshop","tags":["Workshops"],"parameters":[{"name":"workshop","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}},"security":[{"BearerAuth":[]}]}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"AcceptInviteRequest":{"type":"object","description":"Request for accepting a user invite via token.","properties":{"token":{"type":"string"}},"required":["token"],"title":"AcceptInviteRequest"},"AcceptInviteResponseData":{"type":"object","properties":{"access_token":{"type":"string"},"token_type":{"type":"string"},"tenant_id":{"type":"integer"},"must_change_password":{"type":"boolean"}},"required":["access_token","token_type","tenant_id","must_change_password"],"title":"AcceptInviteResponseData"},"AccountManagerContactResponseData":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":["string","null"]},"phone_raw":{"type":["string","null"]}},"required":["name","email"],"title":"AccountManagerContactResponseData"},"AddLaborFromCatalogRequest":{"type":"object","properties":{"item_id":{"type":"integer"},"hours":{"type":["number","null"],"minimum":0},"index":{"type":["integer","null"],"minimum":0}},"required":["item_id"],"title":"AddLaborFromCatalogRequest"},"AddLaborFromCatalogToWorkOrderRequest":{"type":"object","properties":{"item_id":{"type":"integer"},"hours":{"type":["number","null"],"minimum":0},"index":{"type":["integer","null"],"minimum":0}},"required":["item_id"],"title":"AddLaborFromCatalogToWorkOrderRequest"},"AddLaborManualRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"type":{"type":"string","enum":["hourly","fixed"]},"hours":{"type":["number","null"],"minimum":0},"rate_per_hour":{"type":["number","null"],"minimum":0},"fixed_amount":{"type":["number","null"],"minimum":0},"description":{"type":["string","null"]},"code":{"type":["string","null"],"maxLength":255},"category_name":{"type":["string","null"],"maxLength":255},"vat_rate":{"type":["number","null"],"minimum":0,"maximum":100},"index":{"type":["integer","null"],"minimum":0}},"required":["name","type"],"title":"AddLaborManualRequest"},"AddLaborManualToWorkOrderRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"type":{"type":"string","enum":["hourly","fixed"]},"hours":{"type":["number","null"],"minimum":0},"rate_per_hour":{"type":["number","null"],"minimum":0},"fixed_amount":{"type":["number","null"],"minimum":0},"description":{"type":["string","null"]},"code":{"type":["string","null"],"maxLength":255},"category_name":{"type":["string","null"],"maxLength":255},"vat_rate":{"type":["number","null"],"minimum":0,"maximum":100},"index":{"type":["integer","null"],"minimum":0}},"required":["name","type"],"title":"AddLaborManualToWorkOrderRequest"},"AddPartFromCatalogRequest":{"type":"object","properties":{"item_id":{"type":"integer"},"quantity":{"type":["number","null"],"minimum":0.0001},"index":{"type":["integer","null"],"minimum":0}},"required":["item_id"],"title":"AddPartFromCatalogRequest"},"AddPartFromCatalogToWorkOrderRequest":{"type":"object","properties":{"item_id":{"type":"integer"},"quantity":{"type":["number","null"],"minimum":0.0001},"index":{"type":["integer","null"],"minimum":0}},"required":["item_id"],"title":"AddPartFromCatalogToWorkOrderRequest"},"AddPartManualRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"qty":{"type":["number","null"],"minimum":0.0001},"kind":{"type":["string","null"],"enum":["IAM","OEM","INTERNAL"]},"reference":{"type":["string","null"],"maxLength":255},"part_type":{"type":["string","null"],"maxLength":255},"barcode":{"type":["string","null"],"maxLength":255},"description":{"type":["string","null"]},"category_name":{"type":["string","null"],"maxLength":255},"unit_label":{"type":["string","null"],"maxLength":50},"unit_cost":{"type":["number","null"],"minimum":0},"unit_price":{"type":["number","null"],"minimum":0},"retail_price":{"type":["number","null"],"minimum":0},"markup_percent":{"type":["number","null"],"minimum":0},"discount_percent":{"type":["number","null"],"minimum":0,"maximum":100},"vat_rate":{"type":["number","null"],"minimum":0,"maximum":100},"index":{"type":["integer","null"],"minimum":0}},"required":["name"],"title":"AddPartManualRequest"},"AddPartManualToWorkOrderRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"qty":{"type":["number","null"],"minimum":0.0001},"kind":{"type":["string","null"],"enum":["IAM","OEM","INTERNAL"]},"reference":{"type":["string","null"],"maxLength":255},"part_type":{"type":["string","null"],"maxLength":255},"barcode":{"type":["string","null"],"maxLength":255},"description":{"type":["string","null"]},"category_name":{"type":["string","null"],"maxLength":255},"unit_label":{"type":["string","null"],"maxLength":50},"unit_cost":{"type":["number","null"],"minimum":0},"unit_price":{"type":["number","null"],"minimum":0},"retail_price":{"type":["number","null"],"minimum":0},"markup_percent":{"type":["number","null"],"minimum":0},"discount_percent":{"type":["number","null"],"minimum":0,"maximum":100},"vat_rate":{"type":["number","null"],"minimum":0,"maximum":100},"index":{"type":["integer","null"],"minimum":0}},"required":["name"],"title":"AddPartManualToWorkOrderRequest"},"AddServiceItemRequest":{"type":"object","properties":{"item_id":{"type":"integer"},"quantity":{"type":["number","null"],"minimum":0.01},"sort_order":{"type":["integer","null"],"minimum":0},"default_qty":{"type":["number","null"],"minimum":0},"hourly_rate":{"type":["number","null"],"minimum":0},"fixed_price":{"type":["number","null"],"minimum":0},"unit_price":{"type":["number","null"],"minimum":0},"default_hours":{"type":["number","null"],"minimum":0},"labor_price_id":{"type":["integer","null"]},"cost_price":{"type":["number","null"],"minimum":0},"markup_percent":{"type":["number","null"],"minimum":0}},"required":["item_id"],"title":"AddServiceItemRequest"},"ApproveServicesRequest":{"type":"object","properties":{"mode":{"$ref":"#\/components\/schemas\/ItemApprovalMode"},"notes":{"type":["string","null"],"maxLength":1000},"service_ids":{"type":"array","items":{"type":"string"},"minItems":1}},"required":["mode"],"title":"ApproveServicesRequest"},"AssignTechnicianToLaborRequest":{"type":"object","properties":{"user_id":{"type":["integer","null"]}},"title":"AssignTechnicianToLaborRequest"},"AssignTechnicianToServiceRequest":{"type":"object","properties":{"user_id":{"type":["integer","null"]},"apply_to_labor":{"type":"boolean"}},"title":"AssignTechnicianToServiceRequest"},"AssignWorkOrderUsersRequest":{"type":"object","properties":{"user_ids":{"type":"array","items":{"type":"integer"}}},"required":["user_ids"],"title":"AssignWorkOrderUsersRequest"},"AttachWorkOrderInvoiceRequest":{"type":"object","properties":{"invoice_number":{"type":["string","null"],"maxLength":255},"document_url":{"type":["string","null"],"maxLength":2048},"invoiced_at":{"type":["string","null"],"format":"date-time"},"metadata":{"type":["array","null"],"items":{"type":"string"}}},"title":"AttachWorkOrderInvoiceRequest"},"CancelWorkOrderRequest":{"type":"object","properties":{"reason":{"type":"string","enum":["client_no_show","client_cancelled","estimate_not_approved","creation_error","other"]}},"required":["reason"],"title":"CancelWorkOrderRequest"},"CardDisplayMode":{"type":"string","enum":["normal","condensed"],"title":"CardDisplayMode"},"ChangeHistoryListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"ChangeHistoryData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"source":{"type":"string"},"source_id":{"type":"integer"},"tenant_id":{"type":"integer"},"user_id":{"type":["integer","null"]},"date":{"type":"string","format":"date-time"},"data":{"type":["array","null"],"items":{}}},"required":["id","source","source_id","tenant_id","date"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"ChangeHistoryListResponseData"},"ChangePasswordRequest":{"type":"object","properties":{"current_password":{"type":"string"},"password":{"type":"string","minLength":8},"password_confirmation":{"type":"string","minLength":8}},"required":["current_password","password","password_confirmation"],"title":"ChangePasswordRequest"},"ClientListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"ClientListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"last_name":{"type":["string","null"]},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"fiscal_id":{"type":["string","null"]},"type":{"type":"string"},"preferred_contact_method":{"$ref":"#\/components\/schemas\/PreferredContactMethod"},"full_name":{"type":["string","null"]},"vehicles_count":{"type":"integer"}},"required":["id","name","type","preferred_contact_method"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"ClientListResponseData"},"ClientMetricsResponseData":{"type":"object","properties":{"total_clients":{"type":"integer"},"new_clients_in_period":{"type":"integer"},"top_clients":{"type":"array","description":"TopClientData[]","items":{"type":"object","properties":{"client_id":{"type":"integer"},"name":{"type":"string"},"total_work_orders_value":{"type":"string"},"work_orders_count":{"type":"integer"}},"required":["client_id","name","total_work_orders_value","work_orders_count"]}}},"required":["total_clients","new_clients_in_period","top_clients"],"title":"ClientMetricsResponseData"},"ClientPaymentListResponseData":{"type":"object","properties":{"items":{"type":"array","items":{}}},"required":["items"],"title":"ClientPaymentListResponseData"},"ClientResponseData":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"name":{"type":"string"},"last_name":{"type":["string","null"]},"phone":{"type":["string","null"]},"email":{"type":["string","null"]},"address":{"type":["string","null"]},"postal_code":{"type":["string","null"]},"local":{"type":["string","null"]},"country":{"type":["string","null"]},"fiscal_id":{"type":["string","null"]},"type":{"type":"string"},"preferred_contact_method":{"$ref":"#\/components\/schemas\/PreferredContactMethod"},"notes":{"type":["string","null"]},"full_name":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","tenant_id","name","type","preferred_contact_method"],"title":"ClientResponseData"},"ContactMethod":{"type":"string","enum":["sms","email"],"title":"ContactMethod"},"ContractListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"ContractListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"plan_type":{"type":"string"},"plan_name":{"type":"string"},"status":{"type":"string"},"status_raw":{"type":"string"},"is_active":{"type":"boolean"},"is_valid":{"type":"boolean"},"is_trial":{"type":"boolean"},"start_date":{"type":["string","null"],"format":"date-time"},"end_date":{"type":["string","null"],"format":"date-time"},"billing_cycle":{"type":"string"},"price_paid":{"type":["number","null"]}},"required":["id","tenant_id","plan_type","plan_name","status","status_raw","is_active","is_valid","is_trial","billing_cycle"]}}},"required":["items"],"title":"ContractListResponseData"},"ContractResponseData":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"plan_type":{"type":"string"},"plan_name":{"type":"string"},"status":{"type":"string"},"status_raw":{"type":"string"},"is_active":{"type":"boolean"},"is_valid":{"type":"boolean"},"is_trial":{"type":"boolean"},"start_date":{"type":["string","null"],"format":"date-time"},"end_date":{"type":["string","null"],"format":"date-time"},"billing_cycle":{"type":"string"},"price_paid":{"type":["number","null"]},"next_billing_date":{"type":["string","null"],"format":"date-time"},"days_remaining":{"type":["integer","null"]},"add_ons":{"type":"array","items":{}},"features":{"type":"array","items":{}},"limits":{"type":"array","items":{}}},"required":["id","tenant_id","plan_type","plan_name","status","status_raw","is_active","is_valid","is_trial","billing_cycle"],"title":"ContractResponseData"},"CopyPartsToPartOrderRequest":{"type":"object","properties":{"part_refs":{"type":["array","null"],"items":{"type":"string","pattern":"^\\d+_\\d+$"}}},"title":"CopyPartsToPartOrderRequest"},"CreateContractRequest":{"type":"object","properties":{"plan_type":{"type":"string","enum":["ignition","cruise","turbo"]},"billing_cycle":{"type":"string","enum":["monthly","quarterly","annual"]},"is_trial":{"type":"boolean"},"notes":{"type":"string","maxLength":1000},"add_ons":{"type":"array","items":{"type":"string","maxLength":255}}},"required":["plan_type","billing_cycle"],"title":"CreateContractRequest"},"CreateEstimateFromWorkOrderRequest":{"type":"object","properties":{"based_on_estimate_id":{"type":["integer","null"]}},"title":"CreateEstimateFromWorkOrderRequest"},"CreateEstimateServiceRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"category":{"type":["string","null"],"maxLength":64},"description":{"type":["string","null"],"maxLength":1000},"index":{"type":["integer","null"],"minimum":0},"discount":{"type":"object","properties":{"type":{"type":"string","enum":["percent","fixed"]},"value":{"type":"number","minimum":0}}},"labor_items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","maxLength":255},"type":{"type":"string","enum":["hourly","fixed"]},"hours":{"type":["number","null"],"minimum":0},"rate_per_hour":{"type":["number","null"],"minimum":0},"fixed_amount":{"type":["number","null"],"minimum":0},"discount":{"type":["object","null"],"properties":{"type":{"type":"string","enum":["percent","fixed"]},"value":{"type":"number","minimum":0}}},"tax_rate":{"type":["number","null"],"minimum":0,"maximum":100},"tax_id":{"type":["string","null"],"maxLength":50},"index":{"type":["integer","null"],"minimum":0},"item_id":{"type":["integer","null"]},"catalog_pricing_model":{"type":["string","null"],"enum":["hourly","fixed"]},"catalog_hourly_rate":{"type":["number","null"],"minimum":0},"catalog_fixed_price":{"type":["number","null"],"minimum":0},"catalog_default_hours":{"type":["number","null"],"minimum":0}},"required":["id","name","type"]}},"parts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["IAM","OEM","INTERNAL","iam","oem","internal"]},"name":{"type":"string","maxLength":255},"brand":{"type":["string","null"],"maxLength":100},"code":{"type":["string","null"],"maxLength":64},"qty":{"type":"number","minimum":0.01},"unit_price":{"type":"number","minimum":0},"supplier_cost":{"type":"number","minimum":0},"retail_price":{"type":["number","null"],"minimum":0},"retail_discount":{"type":["number","null"],"minimum":0,"maximum":100},"discount":{"type":["object","null"],"properties":{"type":{"type":"string","enum":["percent","fixed"]},"value":{"type":"number","minimum":0}}},"tax_rate":{"type":["number","null"],"minimum":0,"maximum":100},"tax_id":{"type":["string","null"],"maxLength":50},"index":{"type":["integer","null"],"minimum":0},"part_candidates":{"type":["array","null"],"items":{"type":"object","properties":{"id":{"type":"string"},"designation":{"type":"string","maxLength":255},"reference":{"type":["string","null"],"maxLength":255}},"required":["id","designation"]}},"part_resolved":{"type":["boolean","null"]},"item_id":{"type":["integer","null"]},"catalog_cost_price":{"type":["number","null"],"minimum":0},"catalog_markup_percent":{"type":["number","null"],"minimum":0},"catalog_sale_price":{"type":["number","null"],"minimum":0}},"required":["id","kind","name","qty","unit_price","supplier_cost"]}}},"required":["name"],"title":"CreateEstimateServiceRequest"},"CreatePartOrderRequest":{"type":"object","properties":{"supplier_id":{"type":["integer","null"]},"order_reference":{"type":["string","null"],"maxLength":255},"notes":{"type":["string","null"],"maxLength":65535}},"title":"CreatePartOrderRequest"},"CreateWorkOrderFromEstimateRequest":{"type":"object","properties":{"estimate_id":{"type":"integer"},"workshop_id":{"type":["integer","null"]}},"required":["estimate_id"],"title":"CreateWorkOrderFromEstimateRequest"},"CreateWorkOrderRequest":{"type":"object","properties":{"workshop_id":{"type":["integer","null"]},"client_id":{"type":["integer","null"]},"vehicle_id":{"type":["integer","null"]},"title":{"type":["string","null"],"maxLength":255},"scheduled_at":{"type":["string","null"],"format":"date-time"},"notes":{"type":["string","null"]},"comments":{"type":["string","null"]}},"title":"CreateWorkOrderRequest"},"CreateWorkOrderServiceRequest":{"type":"object","properties":{"service_id":{"type":"integer"},"service":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"category":{"type":["string","null"],"maxLength":64},"description":{"type":["string","null"],"maxLength":1000},"discount":{"type":["object","null"],"properties":{"type":{"type":"string","enum":["percent","fixed"]},"value":{"type":"number","minimum":0}}},"index":{"type":["integer","null"],"minimum":0},"labor_items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","maxLength":255},"type":{"type":"string","enum":["hourly","fixed"]},"hours":{"type":["number","null"],"minimum":0},"rate_per_hour":{"type":["number","null"],"minimum":0},"fixed_amount":{"type":["number","null"],"minimum":0},"discount":{"type":["object","null"],"properties":{"type":{"type":"string","enum":["percent","fixed"]},"value":{"type":"number","minimum":0}}},"tax_rate":{"type":["number","null"],"minimum":0,"maximum":100},"tax_id":{"type":["string","null"],"maxLength":50},"index":{"type":["integer","null"],"minimum":0},"original_item_id":{"type":["integer","null"]},"description":{"type":["string","null"]},"code":{"type":["string","null"],"maxLength":64},"category_name":{"type":["string","null"],"maxLength":255},"pricing_model":{"type":["string","null"],"enum":["hourly","fixed"]},"hourly_rate":{"type":["number","null"],"minimum":0},"default_hours":{"type":["number","null"],"minimum":0},"fixed_price":{"type":["number","null"],"minimum":0},"default_qty":{"type":["number","null"],"minimum":0},"labor_price_name":{"type":["string","null"],"maxLength":255},"labor_price_amount":{"type":["number","null"],"minimum":0},"vat_rate":{"type":["number","null"],"minimum":0,"maximum":100},"tax_name":{"type":["string","null"],"maxLength":255},"is_customized":{"type":["boolean","null"]}},"required":["id","name","type"]}},"parts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["IAM","OEM","INTERNAL","iam","oem","internal"]},"name":{"type":"string","maxLength":255},"brand":{"type":["string","null"],"maxLength":64},"code":{"type":["string","null"],"maxLength":64},"qty":{"type":"number","minimum":0.01},"unit_price":{"type":"number","minimum":0},"supplier_cost":{"type":"number","minimum":0},"retail_price":{"type":["number","null"],"minimum":0},"retail_discount":{"type":["number","null"],"minimum":0,"maximum":100},"discount":{"type":["object","null"],"properties":{"type":{"type":"string","enum":["percent","fixed"]},"value":{"type":"number","minimum":0}}},"tax_rate":{"type":["number","null"],"minimum":0,"maximum":100},"tax_id":{"type":["string","null"],"maxLength":50},"index":{"type":["integer","null"],"minimum":0},"original_item_id":{"type":["integer","null"]},"description":{"type":["string","null"]},"reference":{"type":["string","null"],"maxLength":64},"part_type":{"type":["string","null"],"maxLength":64},"barcode":{"type":["string","null"],"maxLength":64},"category_name":{"type":["string","null"],"maxLength":255},"unit_label":{"type":["string","null"],"maxLength":64},"quantity":{"type":["number","null"],"minimum":0},"unit_cost":{"type":["number","null"],"minimum":0},"markup_percent":{"type":["number","null"],"minimum":0},"discount_percent":{"type":["number","null"],"minimum":0,"maximum":100},"vat_rate":{"type":["number","null"],"minimum":0,"maximum":100},"tax_name":{"type":["string","null"],"maxLength":255},"is_customized":{"type":["boolean","null"]}},"required":["id","kind","name","qty","unit_price","supplier_cost"]}}}}},"required":["service"],"title":"CreateWorkOrderServiceRequest"},"DashboardSummaryEstimatesData":{"type":"object","properties":{"total":{"type":"integer"},"pending":{"type":"integer"},"approved":{"type":"integer"}},"required":["total","pending","approved"],"title":"DashboardSummaryEstimatesData"},"DashboardSummaryFinancialData":{"type":"object","properties":{"total_repairs_value":{"type":"string"},"total_payments":{"type":"string"},"total_outstanding":{"type":"string"}},"required":["total_repairs_value","total_payments","total_outstanding"],"title":"DashboardSummaryFinancialData"},"DashboardSummaryRepairsData":{"type":"object","properties":{"total":{"type":"integer"},"pending":{"type":"integer"},"scheduled":{"type":"integer"},"completed":{"type":"integer"}},"required":["total","pending","scheduled","completed"],"title":"DashboardSummaryRepairsData"},"DashboardSummaryResponseData":{"type":"object","properties":{"month":{"type":"integer"},"year":{"type":"integer"},"estimates":{"$ref":"#\/components\/schemas\/DashboardSummaryEstimatesData"},"repairs":{"$ref":"#\/components\/schemas\/DashboardSummaryRepairsData"},"financial":{"$ref":"#\/components\/schemas\/DashboardSummaryFinancialData"}},"required":["month","year","estimates","repairs","financial"],"title":"DashboardSummaryResponseData"},"DataCollection":{"type":"object","additionalProperties":{},"title":"DataCollection"},"DeferredItemsResponseData":{"type":"object","properties":{"estimates":{"type":"array","description":"DeferredEstimateData[]","items":{"type":"object","properties":{"estimate_id":{"type":"integer"},"document_number":{"type":"string"},"status":{"type":"string"},"created_at":{"type":["string","null"]},"services":{"type":"array","items":{}}},"required":["estimate_id","document_number","status"]}},"total_items":{"type":"integer"}},"title":"DeferredItemsResponseData"},"DowngradePlanRequest":{"type":"object","properties":{"plan_type":{"type":"string","enum":["ignition","cruise","turbo"]},"billing_cycle":{"type":"string","enum":["monthly","quarterly","annual"]},"notes":{"type":"string","maxLength":1000},"add_ons":{"type":"array","items":{"type":"string","maxLength":255}}},"required":["plan_type","billing_cycle"],"title":"DowngradePlanRequest"},"EmailTemplatePreviewResponseData":{"type":"object","properties":{"html":{"type":"string"},"subject":{"type":"string"},"from":{"type":"array","items":{}},"sent":{"type":"boolean"},"template":{"type":"string"}},"required":["html","subject","from","sent","template"],"title":"EmailTemplatePreviewResponseData"},"EmailTestResponseData":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"email_id":{"type":["string","null"]},"error":{"type":["string","null"]}},"required":["success","message"],"title":"EmailTestResponseData"},"ErrorResponseData":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"array","items":{}},"requestId":{"type":["string","null"]}},"required":["code","message"],"title":"ErrorResponseData"},"EstimateApprovalStatus":{"type":"string","enum":["pending_approval","partially_approved","fully_approved","rejected"],"title":"EstimateApprovalStatus"},"EstimateApprovedSummaryData":{"type":"object","properties":{"subtotal":{"type":"number"},"discount_total":{"type":"number"},"tax_total":{"type":"number"},"total":{"type":"number"},"tax_breakdown":{"type":"array","items":{}},"margin_total":{"type":["number","null"]},"margin_percentage":{"type":["number","null"]},"parts":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateSummarySubtotalData"},{"type":"null"}]},"services":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateSummarySubtotalData"},{"type":"null"}]}},"title":"EstimateApprovedSummaryData"},"EstimateCardField":{"type":"string","description":"Toggleable fields on the estimate card. Document number, vehicle plate, and total are always visible (the card's identity) \u2014 not represented here.\n","enum":["vehicle_image","vehicle_make_model","client_name","client_phone","tags","linked_work_order","date"],"title":"EstimateCardField"},"EstimateClientContentData":{"type":"object","properties":{"id":{"type":["integer","null"]},"name":{"type":["string","null"]},"last_name":{"type":["string","null"]},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"fiscal_id":{"type":["string","null"]},"address":{"type":["string","null"]},"postal_code":{"type":["string","null"]},"local":{"type":["string","null"]},"country":{"type":["string","null"]},"type":{"type":["string","null"]},"preferred_contact_method":{"type":["string","null"]},"full_name":{"type":["string","null"]}},"title":"EstimateClientContentData"},"EstimateClientResponseData":{"type":"object","properties":{"client":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateClientContentData"},{"type":"null"}]}},"title":"EstimateClientResponseData"},"EstimateDiscountData":{"type":"object","properties":{"type":{"type":"string"},"value":{"type":"number"}},"required":["type","value"],"title":"EstimateDiscountData"},"EstimateHistoryEventType":{"type":"string","enum":["status_changed","email_sent","sms_sent","shared","viewed","downloaded","printed","commented","reminder_sent","item_approved","item_rejected","item_approval_reset","items_approved_bulk","items_rejected_bulk","archived","unarchived"],"title":"EstimateHistoryEventType"},"EstimateHistoryListResponseData":{"type":"object","properties":{"items":{"type":"array","items":{}}},"required":["items"],"title":"EstimateHistoryListResponseData"},"EstimateItemSubtotalData":{"type":"object","properties":{"subtotal":{"type":"number"},"discount_total":{"type":"number"},"tax_total":{"type":"number"},"total":{"type":"number"},"tax_breakdown":{"type":"array","items":{}}},"title":"EstimateItemSubtotalData"},"EstimateLineTotalsData":{"type":"object","properties":{"subtotal":{"type":"number"},"discount_total":{"type":"number"},"tax_total":{"type":"number"},"total":{"type":"number"}},"title":"EstimateLineTotalsData"},"EstimateListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"EstimateListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"workshop_id":{"type":["integer","null"]},"document_number":{"type":"string"},"issue_year":{"type":"integer"},"issue_seq":{"type":"integer"},"client_id":{"type":["integer","null"]},"vehicle_id":{"type":["integer","null"]},"status":{"type":"string"},"client_name":{"type":["string","null"]},"client_email":{"type":["string","null"]},"client_phone":{"type":["string","null"]},"client_fiscal_id":{"type":["string","null"]},"vehicle_plate":{"type":["string","null"]},"vehicle_brand":{"type":["string","null"]},"vehicle_model":{"type":["string","null"]},"vehicle_version":{"type":["string","null"]},"vehicle_motorization":{"type":["string","null"]},"subtotal":{"type":"string"},"discount_total":{"type":"string"},"tax_total":{"type":"string"},"total":{"type":"string"},"is_archived":{"type":"boolean"},"approval_status":{"type":["string","null"]},"approved_subtotal":{"type":"string"},"approved_discount_total":{"type":"string"},"approved_tax_total":{"type":"string"},"approved_total":{"type":"string"},"currency":{"type":"string"},"current_version_id":{"type":["integer","null"]},"notes":{"type":["string","null"]},"comments":{"type":["string","null"]},"client_notes":{"type":["string","null"]},"vehicle_notes":{"type":["string","null"]},"work_order_id":{"type":["integer","null"]},"work_order_document_number":{"type":["string","null"]},"work_order_status":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","tenant_id","document_number","issue_year","issue_seq","status"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"EstimateListResponseData"},"EstimateMetaSectionData":{"type":"object","properties":{"document_number":{"type":["string","null"]},"issue_year":{"type":["integer","null"]},"issue_seq":{"type":["integer","null"]},"status":{"type":["string","null"]}},"title":"EstimateMetaSectionData"},"EstimateMetricsResponseData":{"type":"object","properties":{"by_status":{"$ref":"#\/components\/schemas\/EstimateStatusCountsData"},"conversion_rate":{"type":"string"},"total_quoted":{"type":"string"},"total_approved":{"type":"string"}},"required":["by_status","conversion_rate","total_quoted","total_approved"],"title":"EstimateMetricsResponseData"},"EstimatePartMarginData":{"type":"object","properties":{"amount":{"type":"number"},"percentage":{"type":"number"}},"title":"EstimatePartMarginData"},"EstimatePendingDraftData":{"type":"object","properties":{"schema_version":{"type":"string"},"estimate":{"$ref":"#\/components\/schemas\/EstimateMetaSectionData"},"client":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateClientContentData"},{"type":"null"}]},"vehicle":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateVehicleContentData"},{"type":"null"}]},"pricing":{"$ref":"#\/components\/schemas\/EstimatePricingContentData"},"summary":{"$ref":"#\/components\/schemas\/EstimateSummaryContentData"},"services":{"type":"array","description":"EstimateServiceContentData[]","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"category":{"type":["string","null"]},"description":{"type":["string","null"]},"discount":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateDiscountData"},{"type":"null"}]},"labor_items":{"type":"array","description":"EstimateLaborItemContentData[]","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"hours":{"type":["number","null"]},"rate_per_hour":{"type":["number","null"]},"fixed_amount":{"type":["number","null"]},"discount":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateDiscountData"},{"type":"null"}]},"tax_rate":{"type":["number","null"]},"tax_id":{"type":["string","null"]},"total":{"type":["number","null"]},"totals":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateLineTotalsData"},{"type":"null"}]},"index":{"type":["integer","null"]},"item_id":{"type":["integer","null"]},"catalog_pricing_model":{"type":["string","null"]},"catalog_hourly_rate":{"type":["number","null"]},"catalog_fixed_price":{"type":["number","null"]},"catalog_default_hours":{"type":["number","null"]}},"required":["id","name","type"]}},"parts":{"type":"array","description":"EstimatePartContentData[]","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"brand":{"type":["string","null"]},"code":{"type":["string","null"]},"qty":{"type":"number"},"unit_price":{"type":"number"},"supplier_cost":{"type":"number"},"retail_price":{"type":["number","null"]},"retail_discount":{"type":["number","null"]},"discount":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateDiscountData"},{"type":"null"}]},"tax_rate":{"type":["number","null"]},"tax_id":{"type":["string","null"]},"total":{"type":["number","null"]},"margin":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimatePartMarginData"},{"type":"null"}]},"totals":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateLineTotalsData"},{"type":"null"}]},"index":{"type":["integer","null"]},"part_candidates":{"type":["array","null"],"items":{}},"part_resolved":{"type":["boolean","null"]},"item_id":{"type":["integer","null"]},"catalog_cost_price":{"type":["number","null"]},"catalog_markup_percent":{"type":["number","null"]},"catalog_sale_price":{"type":["number","null"]}},"required":["id","kind","name"]}},"totals":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateServiceTotalsData"},{"type":"null"}]},"approval":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateServiceApprovalData"},{"type":"null"}]},"index":{"type":["integer","null"]}},"required":["id","name"]}}},"title":"EstimatePendingDraftData"},"EstimatePricingContentData":{"type":"object","properties":{"currency":{"type":"string"}},"title":"EstimatePricingContentData"},"EstimateResponseData":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"workshop_id":{"type":["integer","null"]},"owner_id":{"type":["integer","null"]},"status":{"type":"string"},"is_archived":{"type":"boolean"},"approval_status":{"type":["string","null"]},"current_version_id":{"type":["integer","null"]},"has_pending_draft":{"type":"boolean"},"draft_updated_at":{"type":["string","null"],"format":"date-time"},"notes":{"type":["string","null"]},"comments":{"type":["string","null"]},"client_notes":{"type":["string","null"]},"vehicle_notes":{"type":["string","null"]},"work_order":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateWorkOrderReferenceData"},{"type":"null"}]},"due_date":{"type":["string","null"],"format":"date-time"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"last_sent_at":{"type":["string","null"],"format":"date-time"},"last_sent_method":{"type":["string","null"]},"last_sent_to":{"type":["string","null"]},"schema_version":{"type":"string"},"estimate":{"$ref":"#\/components\/schemas\/EstimateMetaSectionData"},"client":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateClientContentData"},{"type":"null"}]},"vehicle":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateVehicleContentData"},{"type":"null"}]},"pricing":{"$ref":"#\/components\/schemas\/EstimatePricingContentData"},"summary":{"$ref":"#\/components\/schemas\/EstimateSummaryContentData"},"services":{"type":"array","description":"EstimateServiceContentData[]","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"category":{"type":["string","null"]},"description":{"type":["string","null"]},"discount":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateDiscountData"},{"type":"null"}]},"labor_items":{"type":"array","description":"EstimateLaborItemContentData[]","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"hours":{"type":["number","null"]},"rate_per_hour":{"type":["number","null"]},"fixed_amount":{"type":["number","null"]},"discount":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateDiscountData"},{"type":"null"}]},"tax_rate":{"type":["number","null"]},"tax_id":{"type":["string","null"]},"total":{"type":["number","null"]},"totals":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateLineTotalsData"},{"type":"null"}]},"index":{"type":["integer","null"]},"item_id":{"type":["integer","null"]},"catalog_pricing_model":{"type":["string","null"]},"catalog_hourly_rate":{"type":["number","null"]},"catalog_fixed_price":{"type":["number","null"]},"catalog_default_hours":{"type":["number","null"]}},"required":["id","name","type"]}},"parts":{"type":"array","description":"EstimatePartContentData[]","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"brand":{"type":["string","null"]},"code":{"type":["string","null"]},"qty":{"type":"number"},"unit_price":{"type":"number"},"supplier_cost":{"type":"number"},"retail_price":{"type":["number","null"]},"retail_discount":{"type":["number","null"]},"discount":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateDiscountData"},{"type":"null"}]},"tax_rate":{"type":["number","null"]},"tax_id":{"type":["string","null"]},"total":{"type":["number","null"]},"margin":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimatePartMarginData"},{"type":"null"}]},"totals":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateLineTotalsData"},{"type":"null"}]},"index":{"type":["integer","null"]},"part_candidates":{"type":["array","null"],"items":{}},"part_resolved":{"type":["boolean","null"]},"item_id":{"type":["integer","null"]},"catalog_cost_price":{"type":["number","null"]},"catalog_markup_percent":{"type":["number","null"]},"catalog_sale_price":{"type":["number","null"]}},"required":["id","kind","name"]}},"totals":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateServiceTotalsData"},{"type":"null"}]},"approval":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateServiceApprovalData"},{"type":"null"}]},"index":{"type":["integer","null"]}},"required":["id","name"]}},"pending_draft":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimatePendingDraftData"},{"type":"null"}]},"tags":{"type":"array","items":{}}},"required":["id","tenant_id","status"],"title":"EstimateResponseData"},"EstimateSendHistoryListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"EstimateSendHistoryItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"event_type":{"$ref":"#\/components\/schemas\/EstimateHistoryEventType"},"recipient":{"type":"string"},"sent_at":{"type":"string","format":"date-time"},"contact_method":{"$ref":"#\/components\/schemas\/ContactMethod"},"metadata":{"type":"array","items":{}},"user_id":{"type":["integer","null"]},"user_name":{"type":["string","null"]}},"required":["id","event_type","recipient","sent_at","contact_method","metadata"]}}},"required":["items"],"title":"EstimateSendHistoryListResponseData"},"EstimateSendResponseData":{"type":"object","properties":{"share_token":{"type":"string"},"share_url":{"type":"string"},"contact_method":{"$ref":"#\/components\/schemas\/ContactMethod"},"recipient":{"type":"string"},"sent_at":{"type":"string","format":"date-time"},"message":{"type":["string","null"]}},"required":["share_token","share_url","contact_method","recipient","sent_at"],"title":"EstimateSendResponseData"},"EstimateServiceApprovalData":{"type":"object","properties":{"status":{"type":"string"},"approved_by_user_id":{"type":["integer","null"]},"approved_at":{"type":["string","null"]},"rejected_by_user_id":{"type":["integer","null"]},"rejected_at":{"type":["string","null"]},"notes":{"type":["string","null"]}},"required":["status"],"title":"EstimateServiceApprovalData"},"EstimateServiceTotalsData":{"type":"object","properties":{"subtotal":{"type":"number"},"discount_total":{"type":"number"},"tax_total":{"type":"number"},"total":{"type":"number"},"tax_breakdown":{"type":"array","items":{}},"labor_items":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateItemSubtotalData"},{"type":"null"}]},"parts":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateItemSubtotalData"},{"type":"null"}]}},"title":"EstimateServiceTotalsData"},"EstimateServicesResponseData":{"type":"object","properties":{"services":{"type":"array","description":"EstimateServiceContentData[]","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"category":{"type":["string","null"]},"description":{"type":["string","null"]},"discount":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateDiscountData"},{"type":"null"}]},"labor_items":{"type":"array","description":"EstimateLaborItemContentData[]","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"hours":{"type":["number","null"]},"rate_per_hour":{"type":["number","null"]},"fixed_amount":{"type":["number","null"]},"discount":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateDiscountData"},{"type":"null"}]},"tax_rate":{"type":["number","null"]},"tax_id":{"type":["string","null"]},"total":{"type":["number","null"]},"totals":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateLineTotalsData"},{"type":"null"}]},"index":{"type":["integer","null"]},"item_id":{"type":["integer","null"]},"catalog_pricing_model":{"type":["string","null"]},"catalog_hourly_rate":{"type":["number","null"]},"catalog_fixed_price":{"type":["number","null"]},"catalog_default_hours":{"type":["number","null"]}},"required":["id","name","type"]}},"parts":{"type":"array","description":"EstimatePartContentData[]","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"brand":{"type":["string","null"]},"code":{"type":["string","null"]},"qty":{"type":"number"},"unit_price":{"type":"number"},"supplier_cost":{"type":"number"},"retail_price":{"type":["number","null"]},"retail_discount":{"type":["number","null"]},"discount":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateDiscountData"},{"type":"null"}]},"tax_rate":{"type":["number","null"]},"tax_id":{"type":["string","null"]},"total":{"type":["number","null"]},"margin":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimatePartMarginData"},{"type":"null"}]},"totals":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateLineTotalsData"},{"type":"null"}]},"index":{"type":["integer","null"]},"part_candidates":{"type":["array","null"],"items":{}},"part_resolved":{"type":["boolean","null"]},"item_id":{"type":["integer","null"]},"catalog_cost_price":{"type":["number","null"]},"catalog_markup_percent":{"type":["number","null"]},"catalog_sale_price":{"type":["number","null"]}},"required":["id","kind","name"]}},"totals":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateServiceTotalsData"},{"type":"null"}]},"approval":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateServiceApprovalData"},{"type":"null"}]},"index":{"type":["integer","null"]}},"required":["id","name"]}}},"title":"EstimateServicesResponseData"},"EstimateShareLinkResponseData":{"type":"object","properties":{"share_token":{"type":"string"},"share_url":{"type":"string"},"expires_at":{"type":"string","format":"date-time"}},"required":["share_token","share_url","expires_at"],"title":"EstimateShareLinkResponseData"},"EstimateSortField":{"type":"string","enum":["created_at","client_name","total"],"title":"EstimateSortField"},"EstimateStatusCountsData":{"type":"object","properties":{"draft":{"type":"integer"},"ready":{"type":"integer"},"sent":{"type":"integer"},"accepted":{"type":"integer"},"rejected":{"type":"integer"},"expired":{"type":"integer"},"cancelled":{"type":"integer"}},"required":["draft","ready","sent","accepted","rejected","expired","cancelled"],"title":"EstimateStatusCountsData"},"EstimateSummaryContentData":{"type":"object","properties":{"subtotal":{"type":"number"},"discount_total":{"type":"number"},"tax_total":{"type":"number"},"total":{"type":"number"},"tax_breakdown":{"type":"array","items":{}},"margin_total":{"type":["number","null"]},"margin_percentage":{"type":["number","null"]},"parts":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateSummarySubtotalData"},{"type":"null"}]},"services":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateSummarySubtotalData"},{"type":"null"}]},"approved":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateApprovedSummaryData"},{"type":"null"}]}},"title":"EstimateSummaryContentData"},"EstimateSummarySubtotalData":{"type":"object","properties":{"subtotal":{"type":"number"},"discount_total":{"type":"number"},"tax_total":{"type":"number"},"total":{"type":"number"},"tax_breakdown":{"type":"array","items":{}},"margin_total":{"type":["number","null"]},"margin_percentage":{"type":["number","null"]},"parts_count":{"type":["integer","null"]},"services_count":{"type":["integer","null"]},"budgeted_hours":{"type":["number","null"]}},"title":"EstimateSummarySubtotalData"},"EstimateValidationResponseData":{"type":"object","properties":{"is_valid":{"type":"boolean"},"validations":{"type":"array","description":"EstimateValidationRuleResponseData[]","items":{"type":"object","properties":{"rule":{"type":"string"},"status":{"type":"string"},"message":{"type":"string"}},"required":["rule","status","message"]}}},"required":["is_valid","validations"],"title":"EstimateValidationResponseData"},"EstimateVehicleContentData":{"type":"object","properties":{"id":{"type":["integer","null"]},"plate":{"type":["string","null"]},"vin":{"type":["string","null"]},"brand":{"type":["string","null"]},"model":{"type":["string","null"]},"version":{"type":["string","null"]},"motorization":{"type":["string","null"]},"color":{"type":["string","null"]},"year":{"type":["integer","null"]},"kilometers":{"type":["integer","null"]}},"title":"EstimateVehicleContentData"},"EstimateVehicleResponseData":{"type":"object","properties":{"vehicle":{"anyOf":[{"$ref":"#\/components\/schemas\/EstimateVehicleContentData"},{"type":"null"}]}},"title":"EstimateVehicleResponseData"},"EstimateVersionListResponseData":{"type":"object","properties":{"items":{"type":"array","items":{}}},"required":["items"],"title":"EstimateVersionListResponseData"},"EstimateVersionResponseData":{"type":"object","properties":{"id":{"type":"integer"},"estimate_id":{"type":"integer"},"tenant_id":{"type":"integer"},"version":{"type":"integer"},"vehicle_token":{"type":["string","null"]},"content":{"type":"array","items":{}},"created_by":{"type":["integer","null"]},"created_at":{"type":["string","null"],"format":"date-time"}},"required":["id","estimate_id","tenant_id","version","content"],"title":"EstimateVersionResponseData"},"EstimateWorkOrderReferenceData":{"type":"object","properties":{"id":{"type":"integer"},"document_number":{"type":"string"},"status":{"type":"string"}},"required":["id","document_number","status"],"title":"EstimateWorkOrderReferenceData"},"FinancialMetricsResponseData":{"type":"object","properties":{"total_work_orders_value":{"type":"string"},"total_outstanding":{"type":"string"},"total_payments_received":{"type":"string"},"average_work_order_value":{"type":"string"},"previous_total_work_orders_value":{"type":"string"},"previous_total_payments_received":{"type":"string"}},"required":["total_work_orders_value","total_outstanding","total_payments_received","average_work_order_value","previous_total_work_orders_value","previous_total_payments_received"],"title":"FinancialMetricsResponseData"},"ForceChangePasswordRequest":{"type":"object","description":"Request for forced password change on first login.\nDoes not require current password.","properties":{"password":{"type":"string","minLength":8},"password_confirmation":{"type":"string","minLength":8}},"required":["password","password_confirmation"],"title":"ForceChangePasswordRequest"},"ForgotPasswordRequest":{"type":"object","properties":{"email":{"type":"string","format":"email"},"client_id":{"type":"string"},"client_secret":{"type":"string"}},"required":["email","client_id","client_secret"],"title":"ForgotPasswordRequest"},"ForgotPasswordResponseData":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"],"title":"ForgotPasswordResponseData"},"GearboxTypesResponseData":{"type":"object","properties":{"types":{"type":"array","description":"GearboxTypeData[]","items":{"type":"object","properties":{"gearBoxType":{"type":"string"},"selected":{"type":"boolean"}},"required":["gearBoxType","selected"]}}},"required":["types"],"title":"GearboxTypesResponseData"},"GetMaintenanceOperationsRequest":{"type":"object","properties":{"selected_work_ids":{"type":"array","items":{"type":"integer"}}},"required":["selected_work_ids"],"title":"GetMaintenanceOperationsRequest"},"GetMaintenancePartsRequest":{"type":"object","properties":{"selected_work_ids":{"type":"array","items":{"type":"integer"}}},"required":["selected_work_ids"],"title":"GetMaintenancePartsRequest"},"GetMaintenanceVariablesRequest":{"type":"object","properties":{"gear_box":{"type":"string"},"plate_date":{"type":"string"}},"required":["gear_box","plate_date"],"title":"GetMaintenanceVariablesRequest"},"GoogleAuthResponseData":{"type":"object","properties":{"is_new_user":{"type":"boolean"},"tenant_id":{"type":"integer"},"tenant_name":{"type":"string"},"email":{"type":"string"},"user_id":{"type":"integer"},"access_token":{"type":"string"},"token_type":{"type":"string"},"contract_id":{"type":["integer","null"]},"plan_type":{"type":["string","null"]},"trial_end_date":{"type":["string","null"],"format":"date-time"}},"required":["is_new_user","tenant_id","tenant_name","email","user_id","access_token","token_type"],"title":"GoogleAuthResponseData"},"GoogleCallbackRequest":{"type":"object","properties":{"code":{"type":"string"},"redirect_uri":{"type":"string","format":"uri"}},"required":["code","redirect_uri"],"title":"GoogleCallbackRequest"},"HealthResponseData":{"type":"object","properties":{"status":{"type":"string"},"time":{"type":"string","format":"date-time"}},"required":["status","time"],"title":"HealthResponseData"},"InspectionCategoryListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"InspectionCategoryListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"code":{"type":["string","null"]},"sort_order":{"type":"integer"}},"required":["id","name","sort_order"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"InspectionCategoryListResponseData"},"InspectionCategoryResponseData":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"name":{"type":"string"},"code":{"type":["string","null"]},"sort_order":{"type":"integer"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","tenant_id","name","sort_order"],"title":"InspectionCategoryResponseData"},"InspectionItemListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"InspectionItemListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"inspection_category_id":{"type":"integer"},"name":{"type":"string"},"code":{"type":["string","null"]},"sort_order":{"type":"integer"}},"required":["id","inspection_category_id","name","sort_order"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"InspectionItemListResponseData"},"InspectionItemResponseData":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"inspection_category_id":{"type":"integer"},"name":{"type":"string"},"code":{"type":["string","null"]},"sort_order":{"type":"integer"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","tenant_id","inspection_category_id","name","sort_order"],"title":"InspectionItemResponseData"},"InspectionTreeResponseData":{"type":"object","properties":{"categories":{"type":"array","items":{}}},"required":["categories"],"title":"InspectionTreeResponseData"},"IntegrationListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"IntegrationListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"service_type":{"$ref":"#\/components\/schemas\/IntegrationServiceType"},"provider":{"$ref":"#\/components\/schemas\/IntegrationProvider"},"status":{"$ref":"#\/components\/schemas\/IntegrationStatus"},"setup":{"type":["array","null"],"items":{}}},"required":["id","service_type","provider","status"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"IntegrationListResponseData"},"IntegrationProvider":{"type":"string","enum":["vendus"],"title":"IntegrationProvider"},"IntegrationResponseData":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"service_type":{"$ref":"#\/components\/schemas\/IntegrationServiceType"},"provider":{"$ref":"#\/components\/schemas\/IntegrationProvider"},"status":{"$ref":"#\/components\/schemas\/IntegrationStatus"},"setup":{"type":["array","null"],"items":{}},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","tenant_id","service_type","provider","status"],"title":"IntegrationResponseData"},"IntegrationServiceType":{"type":"string","enum":["billing","payments"],"title":"IntegrationServiceType"},"IntegrationStatus":{"type":"string","enum":["active","inactive"],"title":"IntegrationStatus"},"InviteUserRequest":{"type":"object","properties":{"email":{"type":"string","format":"email"},"usersRoleId":{"type":"integer"}},"required":["email","usersRoleId"],"title":"InviteUserRequest"},"ItemApprovalMode":{"type":"string","enum":["all","list"],"title":"ItemApprovalMode"},"ItemCategoryListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"ItemCategoryListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"is_active":{"type":"boolean"}},"required":["id","name","is_active"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"ItemCategoryListResponseData"},"ItemCategoryResponseData":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"name":{"type":"string"},"is_active":{"type":"boolean"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","tenant_id","name","is_active"],"title":"ItemCategoryResponseData"},"ItemCodeKind":{"type":"string","enum":["oem","iam","generic"],"title":"ItemCodeKind"},"ItemCustomizationsResponseData":{"type":"object","properties":{"customizations":{"type":"array","description":"ItemCustomizationData[]","items":{"type":"object","properties":{"service_item_id":{"type":"integer"},"service_id":{"type":"integer"},"service_name":{"type":"string"},"item_id":{"type":"integer"},"item_type":{"$ref":"#\/components\/schemas\/ItemType"},"quantity":{"type":"number"},"pricing_model":{"anyOf":[{"$ref":"#\/components\/schemas\/PricingModel"},{"type":"null"}]},"catalog_hourly_rate":{"type":["number","null"]},"catalog_default_hours":{"type":["number","null"]},"catalog_fixed_price":{"type":["number","null"]},"catalog_labor_price_id":{"type":["integer","null"]},"catalog_cost_price":{"type":["number","null"]},"catalog_sale_price":{"type":["number","null"]},"catalog_markup_percent":{"type":["number","null"]},"hourly_rate":{"type":["number","null"]},"fixed_price":{"type":["number","null"]},"default_hours":{"type":["number","null"]},"labor_price_id":{"type":["integer","null"]},"unit_price":{"type":["number","null"]},"cost_price":{"type":["number","null"]},"markup_percent":{"type":["number","null"]},"resolved_unit_amount":{"type":"number"},"catalog_unit_amount":{"type":"number"},"pricing_diverges":{"type":"boolean"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["service_item_id","service_id","service_name","item_id","item_type","quantity"]}}},"required":["customizations"],"title":"ItemCustomizationsResponseData"},"ItemListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"ItemListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"type":{"$ref":"#\/components\/schemas\/ItemType"},"name":{"type":"string"},"description":{"type":["string","null"]},"category_name":{"type":["string","null"]},"is_active":{"type":"boolean"},"workshop_access_all":{"type":"boolean"},"created_at":{"type":["string","null"],"format":"date-time"},"product_code":{"type":["string","null"]},"product_kind":{"anyOf":[{"$ref":"#\/components\/schemas\/ItemCodeKind"},{"type":"null"}]},"barcode":{"type":["string","null"]},"cost_price":{"type":["number","null"]},"sale_price":{"type":["number","null"]},"markup_percent":{"type":["number","null"]},"default_hours":{"type":["number","null"]},"hourly_rate":{"type":["number","null"]},"fixed_price":{"type":["number","null"]},"pricing_model":{"anyOf":[{"$ref":"#\/components\/schemas\/PricingModel"},{"type":"null"}]}},"required":["id","type","name","is_active","workshop_access_all"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"ItemListResponseData"},"ItemProductResponseData":{"type":"object","properties":{"code":{"type":["string","null"]},"kind":{"anyOf":[{"$ref":"#\/components\/schemas\/ItemCodeKind"},{"type":"null"}]},"product_type":{"anyOf":[{"$ref":"#\/components\/schemas\/ItemProductType"},{"type":"null"}]},"barcode":{"type":["string","null"]},"unit_id":{"type":["integer","null"]},"cost_price":{"type":["number","null"]},"sale_price":{"type":["number","null"]},"markup_percent":{"type":["number","null"]},"retail_price":{"type":["number","null"]},"discount_percent":{"type":["number","null"]},"tax_id":{"type":["string","null"]},"vat_rate":{"type":["number","null"]}},"title":"ItemProductResponseData"},"ItemProductType":{"type":"string","enum":["part","product"],"title":"ItemProductType"},"ItemResponseData":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"type":{"$ref":"#\/components\/schemas\/ItemType"},"name":{"type":"string"},"description":{"type":["string","null"]},"category_id":{"type":["integer","null"]},"is_active":{"type":"boolean"},"workshop_access_all":{"type":"boolean"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"category_name":{"type":["string","null"]},"service":{"anyOf":[{"$ref":"#\/components\/schemas\/ItemServiceResponseData"},{"type":"null"}]},"product":{"anyOf":[{"$ref":"#\/components\/schemas\/ItemProductResponseData"},{"type":"null"}]},"workshop_names":{"type":["array","null"],"items":{}}},"required":["id","tenant_id","type","name","is_active","workshop_access_all"],"title":"ItemResponseData"},"ItemServiceResponseData":{"type":"object","properties":{"code":{"type":["string","null"]},"pricing_model":{"anyOf":[{"$ref":"#\/components\/schemas\/PricingModel"},{"type":"null"}]},"labor_price_id":{"type":["integer","null"]},"hourly_rate":{"type":["number","null"]},"default_hours":{"type":["number","null"]},"fixed_price":{"type":["number","null"]},"default_qty":{"type":["number","null"]},"tax_id":{"type":["string","null"]},"vat_rate":{"type":["number","null"]}},"title":"ItemServiceResponseData"},"ItemType":{"type":"string","enum":["service","product"],"title":"ItemType"},"JobBoardSnapshotResponseData":{"type":"object","properties":{"columns":{"type":"array","description":"WorkflowColumnResponseData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"kind":{"$ref":"#\/components\/schemas\/WorkflowColumnKind"},"name":{"type":"string"},"sort_order":{"type":"integer"},"is_hidden_for_me":{"type":"boolean"},"card_count":{"type":"integer"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","kind","name","sort_order","is_hidden_for_me","card_count"]}},"cards_by_column":{"type":"array","items":{}},"user_preferences":{"$ref":"#\/components\/schemas\/UserJobBoardPreferenceResponseData"}},"required":["columns","cards_by_column","user_preferences"],"title":"JobBoardSnapshotResponseData"},"LinkEstimateToWorkOrderRequest":{"type":"object","properties":{"estimate_id":{"type":"integer"}},"required":["estimate_id"],"title":"LinkEstimateToWorkOrderRequest"},"MaintenanceOperationsResponseData":{"type":"object","properties":{"operations":{"type":"array","description":"MaintenanceOperationData[]","items":{"type":"object","properties":{"workId":{"type":"integer"},"workPositionNo":{"type":"string"},"originalTime":{"type":"number"},"calculatedTime":{"type":"number"},"itemMpId":{"type":"integer"},"workPosText":{"type":"string"},"calculatedTimeInMinutes":{"type":"integer"},"inclusiveWorkPositions":{"type":"array","description":"MaintenanceSubOperationData[]","items":{"type":"object","properties":{"workId":{"type":"integer"},"kindOfWork":{"type":"integer"},"originalTime":{"type":"number"},"calculatedTime":{"type":"number"},"itemMpId":{"type":"integer"},"workPosText":{"type":"string"},"calculatedTimeInMinutes":{"type":"integer"},"isAdcTime":{"type":"boolean"}},"required":["workId","kindOfWork","originalTime","calculatedTime","itemMpId","workPosText","calculatedTimeInMinutes","isAdcTime"]}}},"required":["workId","workPositionNo","originalTime","calculatedTime","itemMpId","workPosText","calculatedTimeInMinutes"]}}},"required":["operations"],"title":"MaintenanceOperationsResponseData"},"MaintenancePartsResponseData":{"type":"object","properties":{"parts":{"type":"array","items":{}}},"required":["parts"],"title":"MaintenancePartsResponseData"},"MaintenanceServicesResponseData":{"type":"object","properties":{"services":{"type":"array","description":"MaintenanceServiceData[]","items":{"type":"object","properties":{"workId":{"type":"integer"},"workPosDescription":{"type":"string"},"workPosCriteriaDescription":{"type":["string","null"]},"kmInterval":{"type":["integer","null"]},"monthInterval":{"type":["integer","null"]}},"required":["workId","workPosDescription"]}}},"required":["services"],"title":"MaintenanceServicesResponseData"},"MaintenanceVariablesResponseData":{"type":"object","properties":{"variables":{"type":"array","description":"MaintenanceVariableData[]","items":{"type":"object","properties":{"cooId":{"type":"integer"},"qualColId":{"type":"integer"},"qualColText":{"type":"string"}},"required":["cooId","qualColId","qualColText"]}}},"required":["variables"],"title":"MaintenanceVariablesResponseData"},"MarketResponseData":{"type":"object","properties":{"jurisdiction_code":{"type":"string"},"timezone":{"type":"string"},"currency":{"type":["string","null"]},"tax_system":{"type":["string","null"]},"version":{"type":["string","null"]},"rates":{"type":"array","items":{}},"reasons":{"type":"array","items":{}},"jurisdiction":{"type":"array","items":{}},"meta":{"type":"array","items":{}}},"required":["jurisdiction_code","timezone"],"title":"MarketResponseData"},"MoveWorkOrderToColumnRequest":{"type":"object","properties":{"workflow_column_id":{"type":["integer","null"]}},"required":["workflow_column_id"],"title":"MoveWorkOrderToColumnRequest"},"NifLookupResponseData":{"type":"object","properties":{"nif":{"type":"string"},"title":{"type":"string"},"address":{"type":["string","null"]},"pc4":{"type":["string","null"]},"pc3":{"type":["string","null"]},"city":{"type":["string","null"]},"activity":{"type":["string","null"]},"status":{"type":["string","null"]},"cae":{"type":["string","null"]},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"website":{"type":["string","null"]},"fax":{"type":["string","null"]}},"required":["nif","title"],"title":"NifLookupResponseData"},"PageData":{"type":"object","properties":{"limit":{"type":"integer"},"offset":{"type":"integer"},"total":{"type":"integer"}},"required":["limit","offset","total"],"title":"PageData"},"PartOrderDetailResponseData":{"type":"object","properties":{"id":{"type":"integer"},"work_order_id":{"type":"integer"},"supplier_id":{"type":["integer","null"]},"status":{"type":"string"},"order_reference":{"type":["string","null"]},"ordered_at":{"type":["string","null"]},"expected_at":{"type":["string","null"]},"delivered_at":{"type":["string","null"]},"notes":{"type":["string","null"]},"supplier_name":{"type":["string","null"]},"lines":{"type":"array","description":"PartOrderLineItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"part_order_id":{"type":"integer"},"work_order_content_item_id":{"type":["string","null"]},"name":{"type":"string"},"code":{"type":["string","null"]},"qty":{"type":"string"},"unit_price":{"type":"string"},"received_qty":{"type":"string"},"notes":{"type":["string","null"]}},"required":["id","part_order_id","name","qty","unit_price","received_qty"]}}},"required":["id","work_order_id","status","lines"],"title":"PartOrderDetailResponseData"},"PartOrderListResponseData":{"type":"object","properties":{"items":{"type":"array","items":{}}},"required":["items"],"title":"PartOrderListResponseData"},"PartOrderStatus":{"type":"string","enum":["pending","cancelled","delivered","late"],"title":"PartOrderStatus"},"PatchClientRequest":{"type":"object","properties":{"notes":{"type":["string","null"],"maxLength":5000}},"title":"PatchClientRequest"},"PatchVehicleRequest":{"type":"object","properties":{"client_id":{"type":"integer"},"brand_id":{"type":["integer","null"]},"model_id":{"type":["integer","null"]},"version_id":{"type":["integer","null"]},"type":{"type":"string","enum":["car","motorcycle","van","truck","bus","other"]},"source":{"type":["string","null"],"enum":["manual","external"]},"display_brand_name":{"type":["string","null"],"maxLength":255},"display_model_name":{"type":["string","null"],"maxLength":255},"display_version_name":{"type":["string","null"],"maxLength":255},"external_last_fetched_at":{"type":["string","null"],"format":"date-time"},"plate_number":{"type":["string","null"],"maxLength":20},"vin":{"type":["string","null"],"minLength":17,"maxLength":17},"color":{"type":["string","null"],"maxLength":50},"year":{"type":["integer","null"],"minimum":1900,"maximum":2027},"registration_date":{"type":["string","null"],"format":"date-time"},"purchase_date":{"type":["string","null"],"format":"date-time"},"purchase_price":{"type":["number","null"],"minimum":0,"maximum":99999999.99},"custom_version":{"type":["string","null"],"maxLength":255},"motor":{"type":["string","null"],"maxLength":255},"description":{"type":["string","null"]},"notes":{"type":["string","null"]},"kilometers":{"type":["integer","null"],"minimum":0},"status":{"type":"string","enum":["active","inactive","sold","scrapped"]}},"title":"PatchVehicleRequest"},"PaymentStatusCountsData":{"type":"object","properties":{"pending":{"type":"integer"},"partial":{"type":"integer"},"paid":{"type":"integer"}},"required":["pending","partial","paid"],"title":"PaymentStatusCountsData"},"PaymentTypeListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"PaymentTypeListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"kind":{"type":["string","null"]},"code":{"type":["string","null"]},"is_active":{"type":"boolean"},"sort_order":{"type":"integer"}},"required":["id","name","is_active","sort_order"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"PaymentTypeListResponseData"},"PermissionListResponseData":{"type":"object","properties":{"groups":{"type":"array","description":"PermissionResponseData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"display_name":{"type":"string"},"description":{"type":["string","null"]},"order":{"type":"integer"},"levels":{"type":"array","items":{}}},"required":["id","name","display_name","order","levels"]}},"levels":{"type":"array","items":{}}},"required":["groups","levels"],"title":"PermissionListResponseData"},"PingResponseData":{"type":"object","properties":{"status":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"time":{"type":"string"},"timezone":{"type":"string"}},"required":["status","timestamp","time","timezone"],"title":"PingResponseData"},"PlanCompareResponseData":{"type":"object","properties":{"plans":{"type":"array","description":"PlanData[]","items":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"pricing":{"type":"array","items":{}},"features":{"type":"array","items":{}},"limits":{"type":"array","items":{}},"is_trial":{"type":"boolean"},"trial_duration":{"type":["integer","null"]}},"required":["type","name","pricing","features","limits","is_trial"]}},"comparison":{"type":"array","items":{}},"all_features":{"type":"array","items":{}}},"required":["plans","comparison","all_features"],"title":"PlanCompareResponseData"},"PlanDetailResponseData":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"pricing":{"type":"array","items":{}},"features":{"type":"array","items":{}},"limits":{"type":"array","items":{}},"is_trial":{"type":"boolean"},"trial_duration":{"type":["integer","null"]}},"required":["type","name","pricing","features","limits","is_trial"],"title":"PlanDetailResponseData"},"PlanListResponseData":{"type":"object","properties":{"plans":{"type":"array","description":"PlanDetailResponseData[]","items":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"pricing":{"type":"array","items":{}},"features":{"type":"array","items":{}},"limits":{"type":"array","items":{}},"is_trial":{"type":"boolean"},"trial_duration":{"type":["integer","null"]}},"required":["type","name","pricing","features","limits","is_trial"]}}},"required":["plans"],"title":"PlanListResponseData"},"PreferredContactMethod":{"type":"string","enum":["email","sms","both"],"title":"PreferredContactMethod"},"PreviewEmailTemplateRequest":{"type":"object","properties":{"template":{"type":"string","maxLength":255},"template_type":{"type":"string","enum":["mailmessage","blade"]},"to":{"type":["string","null"],"format":"email","maxLength":255},"send":{"type":"boolean"},"output":{"type":"string","enum":["html","json"]},"variables":{"type":"array","items":{"type":["string","null"]}}},"title":"PreviewEmailTemplateRequest"},"PricingModel":{"type":"string","enum":["hourly","fixed"],"title":"PricingModel"},"ReceivePartOrderRequest":{"type":"object","properties":{"receive_all":{"type":["boolean","null"]},"lines":{"type":["array","null"],"items":{"type":"object","properties":{"line_id":{"type":"integer"},"received_qty":{"type":"number","minimum":0}}}}},"title":"ReceivePartOrderRequest"},"ReceiveVehicleRequest":{"type":"object","properties":{"reception_mileage":{"type":"integer","minimum":0},"reception_fuel_level":{"type":"string","enum":["empty","1\/4","1\/2","3\/4","full"]},"reception_notes":{"type":["string","null"]}},"required":["reception_mileage","reception_fuel_level"],"title":"ReceiveVehicleRequest"},"RecentEstimatesResponseData":{"type":"object","properties":{"items":{"type":"array","description":"RecentEstimateItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"document_number":{"type":["string","null"]},"client_name":{"type":["string","null"]},"vehicle_plate":{"type":["string","null"]},"status":{"type":"string"},"total":{"type":"string"},"created_at":{"type":["string","null"]}},"required":["id","status","total"]}}},"required":["items"],"title":"RecentEstimatesResponseData"},"RecentWorkOrdersResponseData":{"type":"object","properties":{"items":{"type":"array","description":"RecentWorkOrderItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"document_number":{"type":["string","null"]},"client_name":{"type":["string","null"]},"vehicle_plate":{"type":["string","null"]},"status":{"type":"string"},"payment_status":{"type":"string"},"total":{"type":"string"},"created_at":{"type":["string","null"]},"scheduled_at":{"type":["string","null"]}},"required":["id","status","payment_status","total"]}}},"required":["items"],"title":"RecentWorkOrdersResponseData"},"RecordWorkOrderPaymentRequest":{"type":"object","properties":{"amount":{"type":"number","minimum":0.01},"payment_type_id":{"type":"integer"},"paid_at":{"type":["string","null"],"format":"date-time"},"reference":{"type":["string","null"],"maxLength":255},"notes":{"type":["string","null"],"maxLength":65535}},"required":["amount","payment_type_id"],"title":"RecordWorkOrderPaymentRequest"},"RegisterRequest":{"type":"object","properties":{"tenant_name":{"type":["string","null"],"maxLength":255},"name":{"type":"string","maxLength":255},"email":{"type":"string","format":"email","maxLength":255},"password":{"type":"string","minLength":8},"client_id":{"type":"string"},"client_secret":{"type":"string"},"password_confirmation":{"type":"string","minLength":8}},"required":["name","email","password","client_id","client_secret","password_confirmation"],"title":"RegisterRequest"},"RegisterResponseData":{"type":"object","properties":{"tenant_id":{"type":"integer"},"tenant_name":{"type":"string"},"email":{"type":"string"},"user_id":{"type":"integer"},"contract_id":{"type":"integer"},"plan_type":{"type":"string"},"trial_end_date":{"type":"string","format":"date-time"}},"required":["tenant_id","tenant_name","email","user_id","contract_id","plan_type","trial_end_date"],"title":"RegisterResponseData"},"RejectServicesRequest":{"type":"object","properties":{"mode":{"$ref":"#\/components\/schemas\/ItemApprovalMode"},"notes":{"type":["string","null"],"maxLength":1000},"service_ids":{"type":"array","items":{"type":"string"},"minItems":1}},"required":["mode"],"title":"RejectServicesRequest"},"RepairGraphicListResponseData":{"type":"object","properties":{"mainGroups":{"type":"array","description":"RepairDiagramMainGroupData[]","items":{"type":"object","properties":{"mainGroupId":{"type":"integer"},"mainGroupName":{"type":"string"},"sortOrder":{"type":"integer"},"mainGroupImage":{"type":"string"},"infoDataExists":{"type":"boolean"},"subGroups":{"type":"array","description":"RepairDiagramSubGroupData[]","items":{"type":"object","properties":{"subGroupId":{"type":"integer"},"mainGroupId":{"type":"integer"},"subGroupName":{"type":"string"},"sortOrder":{"type":"integer"},"subGroupImage":{"type":"string"},"infoDataExists":{"type":"boolean"},"items":{"type":"array","items":{}}},"required":["subGroupId","mainGroupId","subGroupName","sortOrder","subGroupImage","infoDataExists"]}}},"required":["mainGroupId","mainGroupName","sortOrder","mainGroupImage","infoDataExists"]}}},"required":["mainGroups"],"title":"RepairGraphicListResponseData"},"RepairGraphicWorkStepsResponseData":{"type":"object","properties":{"items":{"type":"array","description":"RepairWorkStepItemData[]","items":{"type":"object","properties":{"itemMpId":{"type":"integer"},"itemName":{"type":"string"},"itemCode":{"type":["string","null"]},"workSteps":{"type":"array","description":"RepairWorkStepData[]","items":{"type":"object","properties":{"stepId":{"type":"integer"},"stepDescription":{"type":"string"},"sortOrder":{"type":"integer"},"estimatedTime":{"type":["number","null"]},"difficulty":{"type":["string","null"]},"requiredTools":{"type":"array","items":{}},"notes":{"type":"array","items":{}}},"required":["stepId","stepDescription","sortOrder"]}}},"required":["itemMpId","itemName"]}}},"required":["items"],"title":"RepairGraphicWorkStepsResponseData"},"RequestRenewalRequest":{"type":"object","description":"Validates the \"request renewal\" endpoint body.\n\nThe body is only a hint carrying the page source and a snapshot of what the\nclient believes the subscription looks like \u2014 it is NOT used to identify the\ntenant or the user. Those are ALWAYS resolved from the Bearer token.\nValidation is therefore deliberately permissive.","properties":{"source":{"type":"string","maxLength":64},"tenant":{"type":"object","properties":{"id":{"type":"integer"},"plan_type":{"type":["string","null"],"maxLength":64},"is_trial":{"type":"boolean"},"trial_end":{"type":["string","null"],"format":"date-time"},"end_date":{"type":["string","null"],"format":"date-time"},"contract_state":{"type":["string","null"],"maxLength":64}}},"user":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string","maxLength":255},"email":{"type":"string","format":"email","maxLength":255},"phone":{"type":["string","null"],"maxLength":64}}}},"title":"RequestRenewalRequest"},"RequestRenewalResponseData":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"],"title":"RequestRenewalResponseData"},"ResetPasswordRequest":{"type":"object","properties":{"email":{"type":"string","format":"email"},"token":{"type":"string"},"password":{"type":"string","minLength":8},"client_id":{"type":"string"},"client_secret":{"type":"string"},"password_confirmation":{"type":"string","minLength":8}},"required":["email","token","password","client_id","client_secret","password_confirmation"],"title":"ResetPasswordRequest"},"ResetPasswordResponseData":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"title":"ResetPasswordResponseData"},"ResetServicesApprovalRequest":{"type":"object","properties":{"mode":{"$ref":"#\/components\/schemas\/ItemApprovalMode"},"reason":{"type":["string","null"],"maxLength":1000},"service_ids":{"type":"array","items":{"type":"string"},"minItems":1}},"required":["mode"],"title":"ResetServicesApprovalRequest"},"ResolveByPlateRequest":{"type":"object","properties":{"plate":{"type":"string","maxLength":32},"workshopId":{"type":["string","null"],"maxLength":64}},"required":["plate"],"title":"ResolveByPlateRequest"},"ResolveByVinRequest":{"type":"object","properties":{"vin":{"type":"string","maxLength":64},"workshopId":{"type":["string","null"],"maxLength":64}},"required":["vin"],"title":"ResolveByVinRequest"},"RestrictItemRequest":{"type":"object","properties":{"workshop_ids":{"type":"array","items":{"type":"integer"},"minItems":1}},"required":["workshop_ids"],"title":"RestrictItemRequest"},"RestrictServiceRequest":{"type":"object","properties":{"workshop_ids":{"type":"array","items":{"type":"integer"},"minItems":1}},"required":["workshop_ids"],"title":"RestrictServiceRequest"},"SaveDraftRequest":{"type":"object","properties":{"update_type":{"type":["string","null"],"enum":["partial","full"]},"content":{"type":"object","properties":{"schema_version":{"type":"string"},"estimate":{"type":"array","items":{"type":"string"}},"client":{"type":"object","properties":{"id":{"type":["integer","null"]}}},"vehicle":{"type":"object","properties":{"id":{"type":"integer"}}},"pricing":{"type":"array","items":{"type":"string"}},"summary":{"type":"object","properties":{"subtotal":{"type":["number","null"],"minimum":0},"discount_total":{"type":["number","null"],"minimum":0},"tax_total":{"type":["number","null"],"minimum":0},"total":{"type":["number","null"],"minimum":0}}},"items":{"type":"array","items":{"type":"string"}}}}},"required":["content"],"title":"SaveDraftRequest"},"SaveEstimateVersionRequest":{"type":"object","properties":{"content":{"type":"object","properties":{"client":{"type":"object","properties":{"id":{"type":["integer","null"]}}},"vehicle":{"type":"object","properties":{"id":{"type":"integer"}}},"items":{"type":"array","items":{"type":"string"}},"summary":{"type":"object","properties":{"subtotal":{"type":["number","null"],"minimum":0},"discount_total":{"type":["number","null"],"minimum":0},"tax_total":{"type":["number","null"],"minimum":0},"total":{"type":["number","null"],"minimum":0}}}}}},"title":"SaveEstimateVersionRequest"},"SaveWorkOrderContentRequest":{"type":"object","properties":{"content":{"type":"object","properties":{"schema_version":{"type":"string"},"estimate":{"type":"array","items":{"type":"string"}},"client":{"type":"array","items":{"type":"string"}},"vehicle":{"type":"array","items":{"type":"string"}},"pricing":{"type":"array","items":{"type":"string"}},"summary":{"type":"array","items":{"type":"string"}},"services":{"type":"array","items":{"type":"string"}}}}},"required":["content"],"title":"SaveWorkOrderContentRequest"},"SaveWorkOrderInspectionsRequest":{"type":"object","properties":{"inspections":{"type":"array","items":{"type":"object","properties":{"category_id":{"type":"integer"},"category_name":{"type":["string","null"],"maxLength":255},"items":{"type":"array","items":{"type":"object","properties":{"item_id":{"type":"integer"},"item_name":{"type":["string","null"],"maxLength":255},"status":{"type":"string","enum":["ok","alert","not_ok"]},"images":{"type":["array","null"],"items":{"type":"string","maxLength":500}},"comment":{"type":["string","null"],"maxLength":2000}},"required":["item_id","status"]}}},"required":["category_id","items"]}}},"required":["inspections"],"title":"SaveWorkOrderInspectionsRequest"},"ScheduleWorkOrderRequest":{"type":"object","properties":{"scheduled_at":{"type":["string","null"],"format":"date-time"}},"title":"ScheduleWorkOrderRequest"},"SendEmailRequest":{"type":"object","properties":{"to":{"type":"string","format":"email","maxLength":255},"subject":{"type":"string","maxLength":255},"message":{"type":"string","minLength":1},"html":{"type":"string","minLength":1}},"required":["to","subject"],"title":"SendEmailRequest"},"SendEstimateRequest":{"type":"object","properties":{"contact_method":{"type":"string","enum":["sms","email"]},"custom_message":{"type":"string","minLength":1},"subject":{"type":["string","null"],"maxLength":255},"send_immediately":{"type":["boolean","null"]},"custom_recipient":{"type":"object","properties":{"name":{"type":"string","minLength":1},"email":{"type":["string","null"],"format":"email"},"phone":{"type":["string","null"]}}},"options":{"type":"object","properties":{"request_approval":{"type":["boolean","null"]},"send_pdf":{"type":["boolean","null"]},"show_client_notes":{"type":["boolean","null"]},"show_detailed_prices":{"type":["boolean","null"]},"show_part_reference":{"type":["boolean","null"]},"show_quantities":{"type":["boolean","null"]}}}},"required":["contact_method","custom_message"],"title":"SendEstimateRequest"},"SendSmsRequest":{"type":"object","properties":{"to":{"type":"string","maxLength":20},"message":{"type":"string","minLength":1,"maxLength":1600}},"required":["to","message"],"title":"SendSmsRequest"},"SendWhatsAppRequest":{"type":"object","properties":{"to":{"type":"string","maxLength":20},"message":{"type":"string","minLength":1,"maxLength":4096}},"required":["to","message"],"title":"SendWhatsAppRequest"},"SendWorkOrderRequest":{"type":"object","properties":{"contact_method":{"type":"string","enum":["email","sms"]},"custom_message":{"type":"string","maxLength":2000},"custom_recipient":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"email":{"type":["string","null"],"format":"email","maxLength":255},"phone":{"type":["string","null"],"maxLength":50}}}},"required":["contact_method","custom_message"],"title":"SendWorkOrderRequest"},"ServiceListResponseData":{"type":"object","properties":{"services":{"type":"array","description":"ServiceListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":["string","null"]},"category_name":{"type":["string","null"]},"is_active":{"type":"boolean"},"workshop_access_all":{"type":"boolean"},"items_count":{"type":"integer"},"total_price":{"type":"number"},"created_at":{"type":["string","null"],"format":"date-time"}},"required":["id","name"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["services","page"],"title":"ServiceListResponseData"},"ServiceProposalData":{"type":"object","properties":{"suggestedMaintenanceId":{"type":"integer"},"suggestedMaintenance":{"type":"string"},"previousMaintenanceStamp":{"type":"string"},"nextMaintenanceStamp":{"type":"string"},"hasManufacturerManual":{"type":"boolean"},"previousMaintenanceAttribut":{"type":"array","description":"ServiceProposalAttributeData[]","items":{"type":"object","properties":{"workId":{"type":"integer"},"itemMpId":{"type":"integer"},"qualColId":{"type":"integer"},"workTime":{"type":"number"},"workPosDescription":{"type":"string"},"workPosCriteriaDescription":{"type":["string","null"]},"kindOfPosition":{"type":"string"},"selected":{"type":"boolean"}},"required":["workId","itemMpId","qualColId","workTime","workPosDescription","kindOfPosition","selected"]}},"previousAdditionalMaintenanceAttribut":{"type":"array","description":"ServiceProposalAttributeData[]","items":{"type":"object","properties":{"workId":{"type":"integer"},"itemMpId":{"type":"integer"},"qualColId":{"type":"integer"},"workTime":{"type":"number"},"workPosDescription":{"type":"string"},"workPosCriteriaDescription":{"type":["string","null"]},"kindOfPosition":{"type":"string"},"selected":{"type":"boolean"}},"required":["workId","itemMpId","qualColId","workTime","workPosDescription","kindOfPosition","selected"]}},"nextMaintenanceAttribut":{"type":"array","description":"ServiceProposalAttributeData[]","items":{"type":"object","properties":{"workId":{"type":"integer"},"itemMpId":{"type":"integer"},"qualColId":{"type":"integer"},"workTime":{"type":"number"},"workPosDescription":{"type":"string"},"workPosCriteriaDescription":{"type":["string","null"]},"kindOfPosition":{"type":"string"},"selected":{"type":"boolean"}},"required":["workId","itemMpId","qualColId","workTime","workPosDescription","kindOfPosition","selected"]}},"nextAdditionalMaintenanceAttribut":{"type":"array","description":"ServiceProposalAttributeData[]","items":{"type":"object","properties":{"workId":{"type":"integer"},"itemMpId":{"type":"integer"},"qualColId":{"type":"integer"},"workTime":{"type":"number"},"workPosDescription":{"type":"string"},"workPosCriteriaDescription":{"type":["string","null"]},"kindOfPosition":{"type":"string"},"selected":{"type":"boolean"}},"required":["workId","itemMpId","qualColId","workTime","workPosDescription","kindOfPosition","selected"]}}},"required":["suggestedMaintenanceId","suggestedMaintenance","previousMaintenanceStamp","nextMaintenanceStamp","hasManufacturerManual"],"title":"ServiceProposalData"},"ServiceProposalResponseData":{"type":"object","properties":{"proposal":{"anyOf":[{"$ref":"#\/components\/schemas\/ServiceProposalData"},{"type":"null"}]}},"title":"ServiceProposalResponseData"},"ServiceResponseData":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"name":{"type":"string"},"description":{"type":["string","null"]},"category_id":{"type":["integer","null"]},"is_active":{"type":"boolean"},"workshop_access_all":{"type":"boolean"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"category_name":{"type":["string","null"]},"items":{"type":"array","description":"ServiceItemResponseData[]","items":{"type":"object","properties":{"item_id":{"type":"integer"},"item_name":{"type":"string"},"item_type":{"$ref":"#\/components\/schemas\/ItemType"},"sort_order":{"type":"integer"},"quantity":{"type":"number"},"subtotal":{"type":"number"},"default_qty":{"type":["number","null"]},"hourly_rate":{"type":["number","null"]},"fixed_price":{"type":["number","null"]},"default_hours":{"type":["number","null"]},"labor_price_id":{"type":["integer","null"]},"unit_price":{"type":["number","null"]},"cost_price":{"type":["number","null"]},"markup_percent":{"type":["number","null"]},"pricing_diverges":{"type":"boolean"},"pricing_model":{"anyOf":[{"$ref":"#\/components\/schemas\/PricingModel"},{"type":"null"}]},"catalog_hourly_rate":{"type":["number","null"]},"catalog_default_hours":{"type":["number","null"]},"catalog_fixed_price":{"type":["number","null"]},"catalog_labor_price_id":{"type":["integer","null"]},"product_code":{"type":["string","null"]},"catalog_cost_price":{"type":["number","null"]},"catalog_sale_price":{"type":["number","null"]},"catalog_markup_percent":{"type":["number","null"]},"service_item_id":{"type":["integer","null"]},"tax_id":{"type":["string","null"]}},"required":["item_id","item_name","item_type","sort_order"]}},"workshop_names":{"type":["array","null"],"items":{}},"total_price":{"type":"number"}},"required":["id","tenant_id","name","is_active","workshop_access_all"],"title":"ServiceResponseData"},"ServiceTreeResponseData":{"type":"object","properties":{"tree":{"type":"array","items":{}}},"required":["tree"],"title":"ServiceTreeResponseData"},"ServiceTreeWorkStepsResponseData":{"type":"object","properties":{"workSteps":{"type":"array","items":{}}},"required":["workSteps"],"title":"ServiceTreeWorkStepsResponseData"},"SetItemCategoryActiveRequest":{"type":"object","properties":{"is_active":{"type":"boolean"}},"required":["is_active"],"title":"SetItemCategoryActiveRequest"},"SetServiceActiveRequest":{"type":"object","properties":{"is_active":{"type":"boolean"}},"required":["is_active"],"title":"SetServiceActiveRequest"},"SetWorkOrderDeadlineRequest":{"type":"object","properties":{"deadline":{"type":["string","null"],"format":"date-time"}},"title":"SetWorkOrderDeadlineRequest"},"SmsTestResponseData":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"error":{"type":["string","null"]},"message_id":{"type":["string","null"]}},"required":["success","message"],"title":"SmsTestResponseData"},"SortDirection":{"type":"string","enum":["asc","desc"],"title":"SortDirection"},"StoreClientRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"lastname":{"type":["string","null"],"maxLength":255},"phone":{"type":["string","null"],"maxLength":50},"email":{"type":["string","null"],"format":"email","maxLength":255},"address":{"type":["string","null"],"maxLength":500},"postal_code":{"type":["string","null"],"maxLength":20},"local":{"type":["string","null"],"maxLength":255},"country":{"type":["string","null"],"maxLength":100},"fiscal_id":{"type":["string","null"],"maxLength":50},"type":{"type":"string","enum":["individual","business"]},"preferred_contact_method":{"type":["string","null"],"enum":["email","sms","both"]},"notes":{"type":["string","null"]}},"required":["name","type"],"title":"StoreClientRequest"},"StoreEstimateRequest":{"type":"object","properties":{"client_id":{"type":["integer","null"]},"vehicle_id":{"type":["integer","null"]},"currency":{"type":["string","null"],"enum":["EUR","USD","GBP"],"minLength":3,"maxLength":3},"owner_id":{"type":["integer","null"]},"workshop_id":{"type":["integer","null"]}},"title":"StoreEstimateRequest"},"StoreInspectionCategoryRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"code":{"type":["string","null"],"maxLength":64},"sort_order":{"type":["integer","null"],"minimum":0}},"required":["name"],"title":"StoreInspectionCategoryRequest"},"StoreInspectionItemRequest":{"type":"object","properties":{"inspection_category_id":{"type":"integer"},"name":{"type":"string","maxLength":255},"code":{"type":["string","null"],"maxLength":64},"sort_order":{"type":["integer","null"],"minimum":0}},"required":["inspection_category_id","name"],"title":"StoreInspectionItemRequest"},"StoreItemCategoryRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255}},"required":["name"],"title":"StoreItemCategoryRequest"},"StoreItemRequest":{"type":"object","properties":{"type":{"$ref":"#\/components\/schemas\/ItemType"},"name":{"type":"string","maxLength":255},"description":{"type":["string","null"]},"category_id":{"type":["integer","null"]},"is_active":{"type":"boolean"},"service":{"type":"object","properties":{"pricing_model":{"$ref":"#\/components\/schemas\/PricingModel"},"labor_price_id":{"type":["integer","null"]},"hourly_rate":{"type":["number","null"],"minimum":0},"default_hours":{"type":["number","null"]},"fixed_price":{"type":["number","null"],"minimum":0},"default_qty":{"type":["number","null"],"minimum":0},"tax_id":{"type":["string","null"],"maxLength":50},"code":{"type":["string","null"],"maxLength":64}}},"product":{"type":"object","properties":{"code":{"type":["string","null"],"maxLength":64},"kind":{"$ref":"#\/components\/schemas\/ItemCodeKind"},"product_type":{"$ref":"#\/components\/schemas\/ItemProductType"},"barcode":{"type":["string","null"],"maxLength":64},"unit_id":{"type":["integer","null"]},"cost_price":{"type":["number","null"],"minimum":0},"sale_price":{"type":["number","null"],"minimum":0},"markup_percent":{"type":["number","null"],"minimum":0,"maximum":999.99},"retail_price":{"type":["number","null"],"minimum":0},"discount_percent":{"type":["number","null"],"minimum":0,"maximum":100},"tax_id":{"type":["string","null"],"maxLength":50}}}},"required":["type","name"],"title":"StoreItemRequest"},"StoreServiceRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":["string","null"]},"category_id":{"type":["integer","null"]},"is_active":{"type":"boolean"},"items":{"type":"array","items":{"type":"object","properties":{"item_id":{"type":"integer"},"service_item_id":{"type":["integer","null"]},"quantity":{"type":["number","null"],"minimum":0.01},"sort_order":{"type":["integer","null"],"minimum":0},"default_qty":{"type":["number","null"],"minimum":0},"hourly_rate":{"type":["number","null"],"minimum":0},"fixed_price":{"type":["number","null"],"minimum":0},"unit_price":{"type":["number","null"],"minimum":0},"default_hours":{"type":["number","null"],"minimum":0},"labor_price_id":{"type":["integer","null"]},"cost_price":{"type":["number","null"],"minimum":0},"markup_percent":{"type":["number","null"],"minimum":0}},"required":["item_id"]},"minItems":1}},"required":["name","items"],"title":"StoreServiceRequest"},"StoreSupplierRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"code":{"type":["string","null"],"maxLength":64},"contact_info":{"type":["string","null"],"maxLength":1000},"is_active":{"type":["boolean","null"]}},"required":["name"],"title":"StoreSupplierRequest"},"StoreTagRequest":{"type":"object","properties":{"entity_type":{"$ref":"#\/components\/schemas\/TagEntityType"},"name":{"type":"string","maxLength":30},"color":{"$ref":"#\/components\/schemas\/TagColor"}},"required":["entity_type","name","color"],"title":"StoreTagRequest"},"StoreTenantLaborPriceRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"price":{"type":"number"},"is_default":{"type":["boolean","null"]},"is_active":{"type":["boolean","null"]}},"required":["name","price"],"title":"StoreTenantLaborPriceRequest"},"StoreUserRequest":{"type":"object","description":"Request for creating users with tenant-scoped validation","properties":{"name":{"type":"string","maxLength":255},"email":{"type":"string","format":"email","maxLength":255},"password":{"type":"string","minLength":8},"send_welcome_email":{"type":"boolean"},"password_confirmation":{"type":"string","minLength":8},"users_role_ids":{"type":"array","items":{"type":"integer"},"minItems":1}},"required":["name","email","password","password_confirmation","users_role_ids"],"title":"StoreUserRequest"},"StoreUsersRoleRequest":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","maxLength":100},"display_name":{"type":"string","maxLength":255},"description":{"type":["string","null"],"maxLength":1000},"permissions":{"type":"array","items":{"type":"integer","minimum":0,"maximum":14},"minItems":1}},"required":["name","display_name","permissions"],"title":"StoreUsersRoleRequest"},"StoreVehicleRequest":{"type":"object","properties":{"client_id":{"type":["integer","null"]},"brand_id":{"type":["integer","null"]},"model_id":{"type":["integer","null"]},"version_id":{"type":["integer","null"]},"type":{"type":"string","enum":["car","motorcycle","van","truck","bus","other"]},"source":{"type":["string","null"],"enum":["manual","external"]},"display_brand_name":{"type":["string","null"],"maxLength":255},"display_model_name":{"type":["string","null"],"maxLength":255},"display_version_name":{"type":["string","null"],"maxLength":255},"external_last_fetched_at":{"type":["string","null"],"format":"date-time"},"plate_number":{"type":["string","null"],"maxLength":20},"vin":{"type":["string","null"],"minLength":17,"maxLength":17},"color":{"type":["string","null"],"maxLength":50},"year":{"type":["integer","null"],"minimum":1900,"maximum":2027},"registration_date":{"type":["string","null"],"format":"date-time"},"purchase_date":{"type":["string","null"],"format":"date-time"},"purchase_price":{"type":["number","null"],"minimum":0,"maximum":99999999.99},"custom_version":{"type":["string","null"],"maxLength":255},"motor":{"type":["string","null"],"maxLength":255},"description":{"type":["string","null"]},"notes":{"type":["string","null"]},"status":{"type":"string","enum":["active","inactive","sold","scrapped"]}},"required":["type"],"title":"StoreVehicleRequest"},"StoreWorkflowColumnRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":120}},"required":["name"],"title":"StoreWorkflowColumnRequest"},"StoreWorkshopRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255}},"required":["name"],"title":"StoreWorkshopRequest"},"SupplierListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"SupplierListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"code":{"type":["string","null"]},"contact_info":{"type":["string","null"]},"is_active":{"type":"boolean"}},"required":["id","name","is_active"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"SupplierListResponseData"},"SupplierResponseData":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"name":{"type":"string"},"code":{"type":["string","null"]},"contact_info":{"type":["string","null"]},"is_active":{"type":"boolean"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","tenant_id","name","is_active"],"title":"SupplierResponseData"},"SupportRequestFormRequest":{"type":"object","properties":{"subject":{"type":"string","maxLength":255},"message":{"type":"string","maxLength":5000}},"required":["subject","message"],"title":"SupportRequestFormRequest"},"SyncEntityTagsRequest":{"type":"object","properties":{"tag_ids":{"type":"array","items":{"type":"integer"}}},"required":["tag_ids"],"title":"SyncEntityTagsRequest"},"TagColor":{"type":"string","enum":["red","yellow","green","blue","purple"],"title":"TagColor"},"TagEntityType":{"type":"string","description":"| |\n|---|\n| `estimate_workorder` <br\/> Unified scope for Estimate (OC) and Work Order (OR). Tags created here are visible both as chips on Job Board cards and on the OC\/OR detail pages \u2014 same source of truth. |\n| `client` <br\/>  |\n| `vehicle` <br\/>  |","enum":["estimate_workorder","client","vehicle"],"title":"TagEntityType"},"TagListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"TagResponseData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"entity_type":{"$ref":"#\/components\/schemas\/TagEntityType"},"name":{"type":"string"},"color":{"$ref":"#\/components\/schemas\/TagColor"},"is_one_off":{"type":"boolean"},"archived_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","entity_type","name","color"]}}},"required":["items"],"title":"TagListResponseData"},"TagResponseData":{"type":"object","properties":{"id":{"type":"integer"},"entity_type":{"$ref":"#\/components\/schemas\/TagEntityType"},"name":{"type":"string"},"color":{"$ref":"#\/components\/schemas\/TagColor"},"is_one_off":{"type":"boolean"},"archived_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","entity_type","name","color"],"title":"TagResponseData"},"TenantLaborPriceListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"TenantLaborPriceListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"price":{"type":"number"},"is_default":{"type":"boolean"},"is_active":{"type":"boolean"}},"required":["id","name","price","is_default","is_active"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"TenantLaborPriceListResponseData"},"TenantLaborPriceResponseData":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"name":{"type":"string"},"price":{"type":"number"},"is_default":{"type":"boolean"},"is_active":{"type":"boolean"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","tenant_id","name","price","is_default","is_active"],"title":"TenantLaborPriceResponseData"},"TenantSettingsResponseData":{"type":"object","properties":{"name":{"type":["string","null"]},"commercial_name":{"type":["string","null"]},"fiscal_id":{"type":["string","null"]},"address":{"type":["string","null"]},"postal_code":{"type":["string","null"]},"locality":{"type":["string","null"]},"contact_email":{"type":["string","null"]},"contact_phone":{"type":["string","null"]},"contact_person_phone":{"type":["string","null"]},"region":{"type":["string","null"]},"workshop_type":{"type":["string","null"]},"onboarding_completed_at":{"type":["string","null"]},"logo_url":{"type":["string","null"]},"market":{"anyOf":[{"$ref":"#\/components\/schemas\/MarketResponseData"},{"type":"null"}]},"labor_prices":{"type":"array","description":"TenantLaborPriceListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"price":{"type":"number"},"is_default":{"type":"boolean"},"is_active":{"type":"boolean"}},"required":["id","name","price","is_default","is_active"]}},"default_tax_id":{"type":["string","null"]}},"title":"TenantSettingsResponseData"},"TenantSubscriptionStatusResponseData":{"type":"object","properties":{"tenant_id":{"type":"integer"},"account_status":{"type":"string"},"lifecycle_state":{"type":"string"},"plan_type":{"type":["string","null"]},"start_date":{"type":["string","null"]},"end_date":{"type":["string","null"]},"valid":{"type":"boolean"},"reason":{"type":"string"},"is_trial":{"type":"boolean"},"trial_end":{"type":["string","null"]},"contract_state":{"type":"string"},"access_level":{"type":"string"},"feature_flags":{"type":"array","items":{}}},"required":["tenant_id","account_status","lifecycle_state","valid","reason","is_trial"],"title":"TenantSubscriptionStatusResponseData"},"TransferVehicleRequest":{"type":"object","properties":{"client_id":{"type":"integer"},"ownership_start_date":{"type":"string","format":"date-time"},"transfer_reason":{"type":["string","null"],"maxLength":255},"transfer_notes":{"type":["string","null"]}},"required":["client_id","ownership_start_date"],"title":"TransferVehicleRequest"},"TrendsResponseData":{"type":"object","properties":{"granularity":{"type":"string"},"series":{"type":"array","description":"TrendDataPointData[]","items":{"type":"object","properties":{"label":{"type":"string"},"estimates_created":{"type":"integer"},"estimates_accepted":{"type":"integer"},"estimates_value":{"type":"string"},"work_orders_created":{"type":"integer"},"work_orders_completed":{"type":"integer"},"payments_received":{"type":"string"}},"required":["label","estimates_created","estimates_accepted","estimates_value","work_orders_created","work_orders_completed","payments_received"]}}},"required":["granularity","series"],"title":"TrendsResponseData"},"UnorderedPartsListResponseData":{"type":"object","properties":{"items":{"type":"array","items":{}}},"required":["items"],"title":"UnorderedPartsListResponseData"},"UpdateClientRequest":{"type":"object","description":"Request validation for PUT \/clients\/{id}\nPUT requires all required fields (name, type)","properties":{"name":{"type":"string","maxLength":255},"lastname":{"type":["string","null"],"maxLength":255},"phone":{"type":["string","null"],"maxLength":50},"email":{"type":["string","null"],"format":"email","maxLength":255},"address":{"type":["string","null"],"maxLength":500},"postal_code":{"type":["string","null"],"maxLength":20},"local":{"type":["string","null"],"maxLength":255},"country":{"type":["string","null"],"maxLength":100},"fiscal_id":{"type":["string","null"],"maxLength":50},"type":{"type":"string","enum":["individual","business"]},"preferred_contact_method":{"type":["string","null"],"enum":["email","sms","both"]},"notes":{"type":["string","null"]}},"required":["name","type"],"title":"UpdateClientRequest"},"UpdateDraftClientRequest":{"type":"object","description":"Request validation for PATCH \/v1\/estimates\/{id}\/client\/draft\nUpdates only the client section of the draft.\nAll fields are optional - only validates what is provided.","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"],"maxLength":255},"lastname":{"type":["string","null"],"maxLength":255},"email":{"type":["string","null"],"format":"email","maxLength":255},"phone":{"type":["string","null"],"maxLength":50},"fiscal_id":{"type":["string","null"],"maxLength":50},"address":{"type":["string","null"],"maxLength":500},"postal_code":{"type":["string","null"],"maxLength":20},"local":{"type":["string","null"],"maxLength":255},"country":{"type":["string","null"],"maxLength":100},"type":{"type":["string","null"],"enum":["individual","business"]}},"title":"UpdateDraftClientRequest"},"UpdateDraftVehicleRequest":{"type":"object","description":"Request validation for PATCH \/v1\/estimates\/{id}\/vehicle\/draft\nUpdates only the vehicle section of the draft.\nAll fields are optional - only validates what is provided.","properties":{"id":{"type":["string","null"]},"plate":{"type":["string","null"],"maxLength":20},"vin":{"type":["string","null"],"minLength":17,"maxLength":17},"brand":{"type":["string","null"],"maxLength":100},"model":{"type":["string","null"],"maxLength":100},"version":{"type":["string","null"],"maxLength":100},"color":{"type":["string","null"],"maxLength":50},"year":{"type":["integer","null"],"minimum":1900,"maximum":2027}},"title":"UpdateDraftVehicleRequest"},"UpdateEstimateRequest":{"type":"object","description":"Request validation for PATCH \/v1\/estimates\/{id}\nUpdates notes, comments, and owner_id fields that are mutable in any state.\nAll fields are optional - only validates what is provided.","properties":{"notes":{"type":["string","null"],"maxLength":5000},"comments":{"type":["string","null"],"maxLength":5000},"owner_id":{"type":["integer","null"]},"due_date":{"type":["string","null"],"format":"date-time"},"workshop_id":{"type":["integer","null"]}},"title":"UpdateEstimateRequest"},"UpdateEstimateServiceRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"category":{"type":["string","null"],"maxLength":64},"description":{"type":["string","null"],"maxLength":1000},"index":{"type":["integer","null"],"minimum":0},"discount":{"type":"object","properties":{"type":{"type":"string","enum":["percent","fixed"]},"value":{"type":"number","minimum":0}}},"labor_items":{"type":["array","null"],"items":{"type":"object","properties":{"id":{"type":"string"},"index":{"type":["integer","null"],"minimum":0}},"required":["id"]}},"parts":{"type":["array","null"],"items":{"type":"object","properties":{"id":{"type":"string"},"index":{"type":["integer","null"],"minimum":0}},"required":["id"]}}},"title":"UpdateEstimateServiceRequest"},"UpdateInspectionCategoryRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"code":{"type":["string","null"],"maxLength":64},"sort_order":{"type":["integer","null"],"minimum":0}},"title":"UpdateInspectionCategoryRequest"},"UpdateInspectionItemRequest":{"type":"object","properties":{"inspection_category_id":{"type":"integer"},"name":{"type":"string","maxLength":255},"code":{"type":["string","null"],"maxLength":64},"sort_order":{"type":["integer","null"],"minimum":0}},"title":"UpdateInspectionItemRequest"},"UpdateItemCategoryRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255}},"title":"UpdateItemCategoryRequest"},"UpdateItemRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":["string","null"]},"category_id":{"type":["integer","null"]},"is_active":{"type":"boolean"},"service":{"type":"object","properties":{"pricing_model":{"$ref":"#\/components\/schemas\/PricingModel"},"labor_price_id":{"type":["integer","null"]},"hourly_rate":{"type":["number","null"],"minimum":0},"default_hours":{"type":["number","null"]},"fixed_price":{"type":["number","null"],"minimum":0},"default_qty":{"type":["number","null"],"minimum":0},"tax_id":{"type":["string","null"],"maxLength":50},"code":{"type":["string","null"],"maxLength":64}}},"product":{"type":"object","properties":{"code":{"type":["string","null"],"maxLength":64},"kind":{"$ref":"#\/components\/schemas\/ItemCodeKind"},"product_type":{"$ref":"#\/components\/schemas\/ItemProductType"},"barcode":{"type":["string","null"],"maxLength":64},"unit_id":{"type":["integer","null"]},"cost_price":{"type":["number","null"],"minimum":0},"sale_price":{"type":["number","null"],"minimum":0},"markup_percent":{"type":["number","null"],"minimum":0,"maximum":999.99},"retail_price":{"type":["number","null"],"minimum":0},"discount_percent":{"type":["number","null"],"minimum":0,"maximum":100},"tax_id":{"type":["string","null"],"maxLength":50}}}},"title":"UpdateItemRequest"},"UpdateLaborPricingRequest":{"type":"object","properties":{"hourly_rate":{"type":["number","null"],"minimum":0},"default_hours":{"type":["number","null"],"minimum":0},"fixed_price":{"type":["number","null"],"minimum":0},"vat_rate":{"type":["number","null"],"minimum":0,"maximum":100}},"title":"UpdateLaborPricingRequest"},"UpdateLaborStatusRequest":{"type":"object","properties":{"status":{"type":"string","enum":["pending","completed"]}},"required":["status"],"title":"UpdateLaborStatusRequest"},"UpdatePartOrderStatusRequest":{"type":"object","properties":{"status":{"$ref":"#\/components\/schemas\/PartOrderStatus"},"delivered_at":{"type":["string","null"],"format":"date-time"}},"required":["status"],"title":"UpdatePartOrderStatusRequest"},"UpdatePartPricingRequest":{"type":"object","description":"Identity fields (name, reference, part_type, kind, ...) are intentionally\nnot exposed and will be silently ignored if sent.","properties":{"unit_cost":{"type":["number","null"],"minimum":0},"markup_percent":{"type":["number","null"],"minimum":0},"unit_price":{"type":["number","null"],"minimum":0},"retail_price":{"type":["number","null"],"minimum":0},"discount_percent":{"type":["number","null"],"minimum":0,"maximum":100},"vat_rate":{"type":["number","null"],"minimum":0,"maximum":100},"quantity":{"type":["number","null"],"minimum":0.0001}},"title":"UpdatePartPricingRequest"},"UpdateServiceItemRequest":{"type":"object","properties":{"sort_order":{"type":["integer","null"],"minimum":0},"default_qty":{"type":["number","null"],"minimum":0},"hourly_rate":{"type":["number","null"],"minimum":0},"fixed_price":{"type":["number","null"],"minimum":0},"unit_price":{"type":["number","null"],"minimum":0},"default_hours":{"type":["number","null"],"minimum":0},"labor_price_id":{"type":["integer","null"]},"cost_price":{"type":["number","null"],"minimum":0},"markup_percent":{"type":["number","null"],"minimum":0}},"title":"UpdateServiceItemRequest"},"UpdateServicePartRequest":{"type":"object","properties":{"is_received":{"type":"boolean"},"stock_received":{"type":"number","minimum":0},"stock_available":{"type":"number","minimum":0},"stock_used":{"type":"number","minimum":0},"is_used":{"type":"boolean"}},"title":"UpdateServicePartRequest"},"UpdateServiceRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":["string","null"]},"category_id":{"type":["integer","null"]},"is_active":{"type":"boolean"},"items":{"type":"array","items":{"type":"object","properties":{"item_id":{"type":"integer"},"service_item_id":{"type":["integer","null"]},"quantity":{"type":["number","null"],"minimum":0.01},"sort_order":{"type":["integer","null"],"minimum":0},"default_qty":{"type":["number","null"],"minimum":0},"hourly_rate":{"type":["number","null"],"minimum":0},"fixed_price":{"type":["number","null"],"minimum":0},"unit_price":{"type":["number","null"],"minimum":0},"default_hours":{"type":["number","null"],"minimum":0},"labor_price_id":{"type":["integer","null"]},"cost_price":{"type":["number","null"],"minimum":0},"markup_percent":{"type":["number","null"],"minimum":0}},"required":["item_id"]},"minItems":1}},"title":"UpdateServiceRequest"},"UpdateServiceStatusRequest":{"type":"object","properties":{"status":{"type":"string","enum":["pending","in_progress","completed"]}},"required":["status"],"title":"UpdateServiceStatusRequest"},"UpdateSupplierRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"code":{"type":["string","null"],"maxLength":64},"contact_info":{"type":["string","null"],"maxLength":1000},"is_active":{"type":["boolean","null"]}},"title":"UpdateSupplierRequest"},"UpdateTagRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":30},"color":{"$ref":"#\/components\/schemas\/TagColor"}},"required":["name","color"],"title":"UpdateTagRequest"},"UpdateTenantLaborPriceRequest":{"type":"object","properties":{"name":{"type":["string","null"],"maxLength":255},"price":{"type":["number","null"]},"is_default":{"type":["boolean","null"]},"is_active":{"type":["boolean","null"]}},"title":"UpdateTenantLaborPriceRequest"},"UpdateTenantSettingsRequest":{"type":"object","properties":{"name":{"type":["string","null"],"maxLength":255},"commercial_name":{"type":["string","null"],"maxLength":255},"fiscal_id":{"type":["string","null"],"maxLength":50},"address":{"type":["string","null"],"maxLength":500},"postal_code":{"type":["string","null"],"maxLength":20},"locality":{"type":["string","null"],"maxLength":255},"contact_email":{"type":["string","null"],"maxLength":255},"contact_phone":{"type":["string","null"],"maxLength":50},"contact_person_phone":{"type":["string","null"],"maxLength":50},"region":{"type":["string","null"],"enum":["PT","PT-MA","PT-AC","ES","ES-CN"]},"workshop_type":{"$ref":"#\/components\/schemas\/WorkshopType"},"default_hourly_cost":{"type":["number","null"],"minimum":0},"default_tax_id":{"type":["string","null"],"maxLength":50}},"title":"UpdateTenantSettingsRequest"},"UpdateTenantSubscriptionRequest":{"type":"object","properties":{"account_status":{"type":"string","enum":["active","inactive"]},"lifecycle_state":{"type":"string","enum":["lead","client","churn","lead_lost"]},"start_date":{"type":["string","null"],"format":"date-time"},"end_date":{"type":["string","null"],"format":"date-time"}},"required":["account_status","lifecycle_state"],"title":"UpdateTenantSubscriptionRequest"},"UpdateUserPreferencesRequest":{"type":"object","properties":{"estimate_sort_by":{"$ref":"#\/components\/schemas\/EstimateSortField"},"estimate_sort_direction":{"$ref":"#\/components\/schemas\/SortDirection"},"estimate_card_display_mode":{"$ref":"#\/components\/schemas\/CardDisplayMode"},"work_order_card_display_mode":{"$ref":"#\/components\/schemas\/CardDisplayMode"},"hidden_column_ids":{"type":"array","items":{"type":"integer"}},"work_order_column_sorts":{"type":"array","description":"Per-column sort map: { \"<workflow_column_id>\": { sort_by, sort_direction } }.\nKeys must reference an existing work-order column on this tenant\n(validated in withValidator). The estimates column has its own\ndedicated sort fields below.","items":{"type":"object","properties":{"sort_by":{"$ref":"#\/components\/schemas\/WorkOrderSortField"},"sort_direction":{"$ref":"#\/components\/schemas\/SortDirection"}},"required":["sort_by","sort_direction"]}},"filter_assigned_user_ids":{"type":"array","items":{"type":"integer"}},"filter_approval_statuses":{"type":"array","items":{"$ref":"#\/components\/schemas\/EstimateApprovalStatus"}},"filter_tag_ids":{"type":"array","items":{"type":"integer"}},"filter_tag_colors":{"type":"array","items":{"$ref":"#\/components\/schemas\/TagColor"}},"estimate_card_hidden_fields":{"type":"array","items":{"$ref":"#\/components\/schemas\/EstimateCardField"}},"work_order_card_hidden_fields":{"type":"array","items":{"$ref":"#\/components\/schemas\/WorkOrderCardField"}}},"title":"UpdateUserPreferencesRequest"},"UpdateUserRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"email":{"type":"string","format":"email","maxLength":255}},"title":"UpdateUserRequest"},"UpdateUserRolesRequest":{"type":"object","properties":{"user_role_ids":{"type":"array","items":{"type":"integer"},"minItems":1}},"required":["user_role_ids"],"title":"UpdateUserRolesRequest"},"UpdateUserWorkshopAccessRequest":{"type":"object","properties":{"workshop_access_all":{"type":"boolean"},"workshop_ids":{"type":["array","null"],"items":{"type":"integer"}}},"required":["workshop_access_all"],"title":"UpdateUserWorkshopAccessRequest"},"UpdateUsersRoleRequest":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","maxLength":100},"display_name":{"type":"string","maxLength":255},"description":{"type":["string","null"],"maxLength":1000},"permissions":{"type":"array","items":{"type":"integer","minimum":0,"maximum":14},"minItems":1}},"required":["name","display_name","permissions"],"title":"UpdateUsersRoleRequest"},"UpdateVehicleRequest":{"type":"object","properties":{"client_id":{"type":["integer","null"]},"brand_id":{"type":["integer","null"]},"model_id":{"type":["integer","null"]},"version_id":{"type":["integer","null"]},"type":{"type":"string","enum":["car","motorcycle","van","truck","bus","other"]},"source":{"type":["string","null"],"enum":["manual","external"]},"display_brand_name":{"type":["string","null"],"maxLength":255},"display_model_name":{"type":["string","null"],"maxLength":255},"display_version_name":{"type":["string","null"],"maxLength":255},"external_last_fetched_at":{"type":["string","null"],"format":"date-time"},"plate_number":{"type":["string","null"],"maxLength":20},"vin":{"type":["string","null"],"minLength":17,"maxLength":17},"color":{"type":["string","null"],"maxLength":50},"year":{"type":["integer","null"],"minimum":1900,"maximum":2027},"registration_date":{"type":["string","null"],"format":"date-time"},"purchase_date":{"type":["string","null"],"format":"date-time"},"purchase_price":{"type":["number","null"],"minimum":0,"maximum":99999999.99},"custom_version":{"type":["string","null"],"maxLength":255},"motor":{"type":["string","null"],"maxLength":255},"description":{"type":["string","null"]},"notes":{"type":["string","null"]},"kilometers":{"type":["integer","null"],"minimum":0},"status":{"type":"string","enum":["active","inactive","sold","scrapped"]}},"required":["type","status"],"title":"UpdateVehicleRequest"},"UpdateWorkOrderLaborPricingRequest":{"type":"object","properties":{"hourly_rate":{"type":["number","null"],"minimum":0},"default_hours":{"type":["number","null"],"minimum":0},"fixed_price":{"type":["number","null"],"minimum":0},"vat_rate":{"type":["number","null"],"minimum":0,"maximum":100}},"title":"UpdateWorkOrderLaborPricingRequest"},"UpdateWorkOrderPartPricingRequest":{"type":"object","properties":{"unit_cost":{"type":["number","null"],"minimum":0},"markup_percent":{"type":["number","null"],"minimum":0},"unit_price":{"type":["number","null"],"minimum":0},"retail_price":{"type":["number","null"],"minimum":0},"discount_percent":{"type":["number","null"],"minimum":0,"maximum":100},"vat_rate":{"type":["number","null"],"minimum":0,"maximum":100},"quantity":{"type":["number","null"],"minimum":0.0001}},"title":"UpdateWorkOrderPartPricingRequest"},"UpdateWorkOrderRequest":{"type":"object","properties":{"client_id":{"type":["integer","null"]},"vehicle_id":{"type":["integer","null"]},"notes":{"type":["string","null"]},"comments":{"type":["string","null"]}},"title":"UpdateWorkOrderRequest"},"UpdateWorkOrderServiceRequest":{"type":"object","properties":{"service":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"category":{"type":["string","null"],"maxLength":64},"description":{"type":["string","null"],"maxLength":1000},"status":{"type":"string","enum":["pending","in_progress","completed"]},"discount":{"type":["object","null"],"properties":{"type":{"type":"string","enum":["percent","fixed"]},"value":{"type":"number","minimum":0}}},"index":{"type":["integer","null"],"minimum":0},"labor_items":{"type":["array","null"],"items":{"type":"object","properties":{"id":{"type":"string"},"index":{"type":["integer","null"],"minimum":0}},"required":["id"]}},"parts":{"type":["array","null"],"items":{"type":"object","properties":{"id":{"type":"string"},"index":{"type":["integer","null"],"minimum":0}},"required":["id"]}}}}},"required":["service"],"title":"UpdateWorkOrderServiceRequest"},"UpdateWorkOrderTitleRequest":{"type":"object","properties":{"title":{"type":["string","null"],"maxLength":255}},"title":"UpdateWorkOrderTitleRequest"},"UpdateWorkflowColumnRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":120}},"required":["name"],"title":"UpdateWorkflowColumnRequest"},"UpdateWorkshopRequest":{"type":"object","description":"Request validation for PUT \/workshops\/{id}\nPUT requires all required fields (name)","properties":{"name":{"type":"string","maxLength":255}},"required":["name"],"title":"UpdateWorkshopRequest"},"UpgradePlanRequest":{"type":"object","properties":{"plan_type":{"type":"string","enum":["ignition","cruise","turbo","pro","professional","basic","standard","premium"]},"billing_cycle":{"type":"string","enum":["monthly","quarterly","annual"]},"notes":{"type":"string","maxLength":1000},"add_ons":{"type":"array","items":{"type":"string","maxLength":255}}},"required":["plan_type","billing_cycle"],"title":"UpgradePlanRequest"},"UploadTenantLogoRequest":{"type":"object","properties":{"logo":{"type":"string","format":"binary","contentMediaType":"application\/octet-stream","maxLength":2048}},"required":["logo"],"title":"UploadTenantLogoRequest"},"UpsertIntegrationRequest":{"type":"object","properties":{"service_type":{"$ref":"#\/components\/schemas\/IntegrationServiceType"},"provider":{"$ref":"#\/components\/schemas\/IntegrationProvider"},"status":{"$ref":"#\/components\/schemas\/IntegrationStatus"},"setup":{"type":["array","null"],"items":{"type":"string"}}},"required":["service_type","provider"],"title":"UpsertIntegrationRequest"},"UserChangePasswordResponseData":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"title":"UserChangePasswordResponseData"},"UserCreateResponseData":{"type":"object","properties":{"user":{"$ref":"#\/components\/schemas\/UserDetailResponseData"}},"required":["user"],"title":"UserCreateResponseData"},"UserDeactivateResponseData":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"title":"UserDeactivateResponseData"},"UserDetailResponseData":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"email":{"type":"string"},"is_owner":{"type":"boolean"},"is_active":{"type":"boolean"},"last_login_at":{"type":["string","null"],"format":"date-time"},"tenant_id":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"roles":{"type":"array","description":"RoleData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"display_name":{"type":"string"}},"required":["id","name","display_name"]}},"permissions_by_group":{"type":"array","items":{}},"workshop_access_all":{"type":"boolean"},"workshop_ids":{"type":"array","items":{}},"locale":{"type":"string"},"must_change_password":{"type":"boolean"}},"required":["id","name","email","is_owner","is_active","tenant_id","created_at","updated_at","roles"],"title":"UserDetailResponseData"},"UserInvitationData":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string"},"expires_at":{"type":"string","format":"date-time"}},"required":["id","email","expires_at"],"title":"UserInvitationData"},"UserInvitationResponseData":{"type":"object","properties":{"invitation":{"$ref":"#\/components\/schemas\/UserInvitationData"}},"required":["invitation"],"title":"UserInvitationResponseData"},"UserJobBoardPreferenceResponseData":{"type":"object","properties":{"hidden_column_ids":{"type":"array","items":{}},"work_order_column_sorts":{"type":"array","items":{}},"filter_assigned_user_ids":{"type":"array","items":{}},"filter_approval_statuses":{"type":"array","items":{}},"filter_tag_ids":{"type":"array","items":{}},"filter_tag_colors":{"type":"array","items":{}},"estimate_sort_by":{"$ref":"#\/components\/schemas\/EstimateSortField"},"estimate_sort_direction":{"$ref":"#\/components\/schemas\/SortDirection"},"estimate_card_display_mode":{"$ref":"#\/components\/schemas\/CardDisplayMode"},"work_order_card_display_mode":{"$ref":"#\/components\/schemas\/CardDisplayMode"},"estimate_card_hidden_fields":{"type":"array","items":{}},"work_order_card_hidden_fields":{"type":"array","items":{}}},"required":["hidden_column_ids","work_order_column_sorts","filter_assigned_user_ids","filter_approval_statuses","filter_tag_ids","filter_tag_colors","estimate_sort_by","estimate_sort_direction","estimate_card_display_mode","work_order_card_display_mode","estimate_card_hidden_fields","work_order_card_hidden_fields"],"title":"UserJobBoardPreferenceResponseData"},"UserListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"UserListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"email":{"type":"string"},"is_owner":{"type":"boolean"},"is_active":{"type":"boolean"},"last_login_at":{"type":["string","null"],"format":"date-time"},"roles":{"type":"array","description":"RoleData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"display_name":{"type":"string"}},"required":["id","name","display_name"]}}},"required":["id","name","email","is_owner","is_active","roles"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"UserListResponseData"},"UserPermissionsResponseData":{"type":"object","properties":{"permissions_by_group":{"type":"array","items":{}}},"required":["permissions_by_group"],"title":"UserPermissionsResponseData"},"UserRoleListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"UserRoleListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"display_name":{"type":"string"},"description":{"type":["string","null"]},"is_system_role":{"type":"boolean"},"tenant_id":{"type":["integer","null"]},"permissions_count":{"type":"integer"}},"required":["id","name","display_name","is_system_role","permissions_count"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"UserRoleListResponseData"},"UserRoleResponseData":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"display_name":{"type":"string"},"description":{"type":["string","null"]},"is_system_role":{"type":"boolean"},"tenant_id":{"type":["integer","null"]},"permissions":{"type":"array","items":{}}},"required":["id","name","display_name","is_system_role","permissions"],"title":"UserRoleResponseData"},"UserRoleSystemListResponseData":{"type":"object","properties":{"roles":{"$ref":"#\/components\/schemas\/DataCollection"}},"required":["roles"],"title":"UserRoleSystemListResponseData"},"UserUpdateResponseData":{"type":"object","properties":{"user":{"$ref":"#\/components\/schemas\/UserDetailResponseData"}},"required":["user"],"title":"UserUpdateResponseData"},"UserUpdateRolesResponseData":{"type":"object","properties":{"user":{"$ref":"#\/components\/schemas\/UserDetailResponseData"}},"required":["user"],"title":"UserUpdateRolesResponseData"},"UserWorkshopAccessResponseData":{"type":"object","properties":{"user_id":{"type":"integer"},"workshop_access_all":{"type":"boolean"},"workshop_ids":{"type":"array","items":{}}},"required":["user_id","workshop_access_all"],"title":"UserWorkshopAccessResponseData"},"VehicleBrandListItemResponseData":{"type":"object","properties":{"brand_id":{"type":"integer"},"name":{"type":"string"},"slug":{"type":["string","null"]},"logo_url":{"type":["string","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"is_popular":{"type":"boolean"}},"required":["brand_id","name","is_active","is_popular"],"title":"VehicleBrandListItemResponseData"},"VehicleBrandListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"VehicleBrandListItemResponseData[]","items":{"type":"object","properties":{"brand_id":{"type":"integer"},"name":{"type":"string"},"slug":{"type":["string","null"]},"logo_url":{"type":["string","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"is_popular":{"type":"boolean"}},"required":["brand_id","name","is_active","is_popular"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"VehicleBrandListResponseData"},"VehicleBrandResponseData":{"type":"object","properties":{"brand_id":{"type":"integer"},"name":{"type":"string"},"slug":{"type":["string","null"]},"logo_url":{"type":["string","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"models":{"type":"array","description":"VehicleModelResponseData[]","items":{"type":"object","properties":{"model_id":{"type":"integer"},"brand_id":{"type":"integer"},"name":{"type":"string"},"base_name":{"type":["string","null"]},"slug":{"type":["string","null"]},"start_year":{"type":["integer","null"]},"end_year":{"type":["integer","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"brand":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleBrandListItemResponseData"},{"type":"null"}]},"versions":{"type":"array","description":"VehicleVersionListItemResponseData[]","items":{"type":"object","properties":{"version_id":{"type":"integer"},"model_id":{"type":"integer"},"name":{"type":"string"},"slug":{"type":["string","null"]},"commercial_name":{"type":["string","null"]},"body_group":{"type":["string","null"]},"engine_type":{"type":["string","null"]},"engine_displacement":{"type":["integer","null"]},"power_hp":{"type":["integer","null"]},"start_year":{"type":["integer","null"]},"end_year":{"type":["integer","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"vehicle_photo":{"type":["string","null"]}},"required":["version_id","model_id","name","is_active"]}}},"required":["model_id","brand_id","name","is_active"]}}},"required":["brand_id","name","is_active"],"title":"VehicleBrandResponseData"},"VehicleCatalogSearchResponseData":{"type":"object","properties":{"brands":{"type":"array","description":"VehicleBrandListItemResponseData[]","items":{"type":"object","properties":{"brand_id":{"type":"integer"},"name":{"type":"string"},"slug":{"type":["string","null"]},"logo_url":{"type":["string","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"is_popular":{"type":"boolean"}},"required":["brand_id","name","is_active","is_popular"]}},"models":{"type":"array","description":"VehicleModelResponseData[]","items":{"type":"object","properties":{"model_id":{"type":"integer"},"brand_id":{"type":"integer"},"name":{"type":"string"},"base_name":{"type":["string","null"]},"slug":{"type":["string","null"]},"start_year":{"type":["integer","null"]},"end_year":{"type":["integer","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"brand":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleBrandListItemResponseData"},{"type":"null"}]},"versions":{"type":"array","description":"VehicleVersionListItemResponseData[]","items":{"type":"object","properties":{"version_id":{"type":"integer"},"model_id":{"type":"integer"},"name":{"type":"string"},"slug":{"type":["string","null"]},"commercial_name":{"type":["string","null"]},"body_group":{"type":["string","null"]},"engine_type":{"type":["string","null"]},"engine_displacement":{"type":["integer","null"]},"power_hp":{"type":["integer","null"]},"start_year":{"type":["integer","null"]},"end_year":{"type":["integer","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"vehicle_photo":{"type":["string","null"]}},"required":["version_id","model_id","name","is_active"]}}},"required":["model_id","brand_id","name","is_active"]}},"versions":{"type":"array","description":"VehicleVersionListItemResponseData[]","items":{"type":"object","properties":{"version_id":{"type":"integer"},"model_id":{"type":"integer"},"name":{"type":"string"},"slug":{"type":["string","null"]},"commercial_name":{"type":["string","null"]},"body_group":{"type":["string","null"]},"engine_type":{"type":["string","null"]},"engine_displacement":{"type":["integer","null"]},"power_hp":{"type":["integer","null"]},"start_year":{"type":["integer","null"]},"end_year":{"type":["integer","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"vehicle_photo":{"type":["string","null"]}},"required":["version_id","model_id","name","is_active"]}},"total_brands":{"type":"integer"},"total_models":{"type":"integer"},"total_versions":{"type":"integer"},"total_results":{"type":"integer"}},"required":["brands","models","versions","total_brands","total_models","total_versions","total_results"],"title":"VehicleCatalogSearchResponseData"},"VehicleListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"VehicleListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"client_id":{"type":["integer","null"]},"brand_id":{"type":["integer","null"]},"model_id":{"type":["integer","null"]},"version_id":{"type":["integer","null"]},"type":{"type":"string"},"plate_number":{"type":["string","null"]},"vin":{"type":["string","null"]},"color":{"type":["string","null"]},"year":{"type":["integer","null"]},"registration_date":{"type":["string","null"],"format":"date-time"},"purchase_date":{"type":["string","null"],"format":"date-time"},"purchase_price":{"type":["number","null"]},"custom_version":{"type":["string","null"]},"motor":{"type":["string","null"]},"fuel_type":{"type":["string","null"]},"power_cv":{"type":["integer","null"]},"power_kw":{"type":["integer","null"]},"engine_displacement":{"type":["integer","null"]},"gearbox":{"type":["string","null"]},"co2":{"type":["number","null"]},"number_of_doors":{"type":["integer","null"]},"number_of_seats":{"type":["integer","null"]},"drive":{"type":["string","null"]},"body_group":{"type":["string","null"]},"number_of_cylinders":{"type":["integer","null"]},"description":{"type":["string","null"]},"notes":{"type":["string","null"]},"kilometers":{"type":["integer","null"]},"source":{"type":["string","null"]},"external_last_fetched_at":{"type":["string","null"]},"status":{"type":"string"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"brand_name":{"type":["string","null"]},"model_name":{"type":["string","null"]},"version_name":{"type":["string","null"]},"motorization":{"type":["string","null"]},"client_name":{"type":["string","null"]},"client_phone":{"type":["string","null"]}},"required":["id","type","status"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"VehicleListResponseData"},"VehicleMetricsResponseData":{"type":"object","properties":{"total_vehicles":{"type":"integer"},"new_vehicles_in_period":{"type":"integer"}},"required":["total_vehicles","new_vehicles_in_period"],"title":"VehicleMetricsResponseData"},"VehicleModelListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"VehicleModelResponseData[]","items":{"type":"object","properties":{"model_id":{"type":"integer"},"brand_id":{"type":"integer"},"name":{"type":"string"},"base_name":{"type":["string","null"]},"slug":{"type":["string","null"]},"start_year":{"type":["integer","null"]},"end_year":{"type":["integer","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"brand":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleBrandListItemResponseData"},{"type":"null"}]},"versions":{"type":"array","description":"VehicleVersionListItemResponseData[]","items":{"type":"object","properties":{"version_id":{"type":"integer"},"model_id":{"type":"integer"},"name":{"type":"string"},"slug":{"type":["string","null"]},"commercial_name":{"type":["string","null"]},"body_group":{"type":["string","null"]},"engine_type":{"type":["string","null"]},"engine_displacement":{"type":["integer","null"]},"power_hp":{"type":["integer","null"]},"start_year":{"type":["integer","null"]},"end_year":{"type":["integer","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"vehicle_photo":{"type":["string","null"]}},"required":["version_id","model_id","name","is_active"]}}},"required":["model_id","brand_id","name","is_active"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"VehicleModelListResponseData"},"VehicleModelResponseData":{"type":"object","properties":{"model_id":{"type":"integer"},"brand_id":{"type":"integer"},"name":{"type":"string"},"base_name":{"type":["string","null"]},"slug":{"type":["string","null"]},"start_year":{"type":["integer","null"]},"end_year":{"type":["integer","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"brand":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleBrandListItemResponseData"},{"type":"null"}]},"versions":{"type":"array","description":"VehicleVersionListItemResponseData[]","items":{"type":"object","properties":{"version_id":{"type":"integer"},"model_id":{"type":"integer"},"name":{"type":"string"},"slug":{"type":["string","null"]},"commercial_name":{"type":["string","null"]},"body_group":{"type":["string","null"]},"engine_type":{"type":["string","null"]},"engine_displacement":{"type":["integer","null"]},"power_hp":{"type":["integer","null"]},"start_year":{"type":["integer","null"]},"end_year":{"type":["integer","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"vehicle_photo":{"type":["string","null"]}},"required":["version_id","model_id","name","is_active"]}}},"required":["model_id","brand_id","name","is_active"],"title":"VehicleModelResponseData"},"VehicleResolutionResponseData":{"type":"object","properties":{"plate":{"type":"string"},"vehicleToken":{"type":"string"},"countryCode":{"type":"string"},"vin":{"type":["string","null"]},"brand":{"type":["string","null"]},"model":{"type":["string","null"]},"version":{"type":["string","null"]},"motorization":{"type":["string","null"]},"registrationDate":{"type":["string","null"]},"processNumber":{"type":["string","null"]},"vehiclePhoto":{"type":["string","null"]},"buildYear":{"type":["string","null"]},"cubicCapacity":{"type":["string","null"]},"powerKw":{"type":["string","null"]},"powerCv":{"type":["string","null"]},"fuelType":{"type":["string","null"]},"numberOfSeats":{"type":["string","null"]},"co2":{"type":["string","null"]},"numberOfDoors":{"type":["string","null"]},"bodyGroup":{"type":["string","null"]},"gearbox":{"type":["string","null"]},"engineCode":{"type":["string","null"]},"drive":{"type":["string","null"]},"numberOfCylinders":{"type":["string","null"]},"numberOfValvesPerCylinder":{"type":["string","null"]},"electrificationType":{"type":["string","null"]},"tireFront":{"type":["string","null"]},"tireRear":{"type":["string","null"]},"brandId":{"type":["integer","null"]},"modelId":{"type":["integer","null"]},"versionId":{"type":["integer","null"]}},"required":["plate","vehicleToken","countryCode"],"title":"VehicleResolutionResponseData"},"VehicleResponseData":{"type":"object","properties":{"id":{"type":"integer"},"client_id":{"type":["integer","null"]},"brand_id":{"type":["integer","null"]},"model_id":{"type":["integer","null"]},"version_id":{"type":["integer","null"]},"type":{"type":"string"},"plate_number":{"type":["string","null"]},"vin":{"type":["string","null"]},"color":{"type":["string","null"]},"year":{"type":["integer","null"]},"registration_date":{"type":["string","null"],"format":"date-time"},"purchase_date":{"type":["string","null"],"format":"date-time"},"purchase_price":{"type":["number","null"]},"custom_version":{"type":["string","null"]},"motor":{"type":["string","null"]},"fuel_type":{"type":["string","null"]},"power_cv":{"type":["integer","null"]},"power_kw":{"type":["integer","null"]},"engine_displacement":{"type":["integer","null"]},"gearbox":{"type":["string","null"]},"co2":{"type":["number","null"]},"number_of_doors":{"type":["integer","null"]},"number_of_seats":{"type":["integer","null"]},"drive":{"type":["string","null"]},"body_group":{"type":["string","null"]},"number_of_cylinders":{"type":["integer","null"]},"tire_front":{"type":["string","null"]},"tire_rear":{"type":["string","null"]},"description":{"type":["string","null"]},"notes":{"type":["string","null"]},"kilometers":{"type":["integer","null"]},"source":{"type":["string","null"]},"external_last_fetched_at":{"type":["string","null"]},"image_status":{"type":["string","null"]},"image_url":{"type":["string","null"]},"vehicle_photo":{"type":["string","null"]},"status":{"type":"string"},"brand_name":{"type":["string","null"]},"model_name":{"type":["string","null"]},"version_name":{"type":["string","null"]},"motorization":{"type":["string","null"]},"client_name":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","type","status"],"title":"VehicleResponseData"},"VehicleVariantListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"VehicleVariantListItemResponseData[]","items":{"type":"object","properties":{"variant":{"type":"string"},"variant_start_year":{"type":["integer","null"]},"variant_end_year":{"type":["integer","null"]}},"required":["variant"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"VehicleVariantListResponseData"},"VehicleVersionListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"VehicleVersionListItemResponseData[]","items":{"type":"object","properties":{"version_id":{"type":"integer"},"model_id":{"type":"integer"},"name":{"type":"string"},"slug":{"type":["string","null"]},"commercial_name":{"type":["string","null"]},"body_group":{"type":["string","null"]},"engine_type":{"type":["string","null"]},"engine_displacement":{"type":["integer","null"]},"power_hp":{"type":["integer","null"]},"start_year":{"type":["integer","null"]},"end_year":{"type":["integer","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"vehicle_photo":{"type":["string","null"]}},"required":["version_id","model_id","name","is_active"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"VehicleVersionListResponseData"},"VehicleVersionResponseData":{"type":"object","properties":{"version_id":{"type":"integer"},"model_id":{"type":"integer"},"name":{"type":"string"},"slug":{"type":["string","null"]},"commercial_name":{"type":["string","null"]},"body_group":{"type":["string","null"]},"engine_type":{"type":["string","null"]},"engine_displacement":{"type":["integer","null"]},"power_hp":{"type":["integer","null"]},"start_year":{"type":["integer","null"]},"end_year":{"type":["integer","null"]},"sort_order":{"type":["integer","null"]},"is_active":{"type":"boolean"},"vehicle_photo":{"type":["string","null"]},"model":{"anyOf":[{"$ref":"#\/components\/schemas\/VehicleModelResponseData"},{"type":"null"}]}},"required":["version_id","model_id","name","is_active"],"title":"VehicleVersionResponseData"},"WhatsAppTestResponseData":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"error":{"type":["string","null"]},"message_id":{"type":["string","null"]}},"required":["success","message"],"title":"WhatsAppTestResponseData"},"WorkOrderCardField":{"type":"string","description":"Toggleable fields on the work-order card. Document number, vehicle plate, and total are always visible (the card's identity) \u2014 not represented here.\n","enum":["vehicle_image","vehicle_make_model","client_name","client_phone","tags","mechanics","date"],"title":"WorkOrderCardField"},"WorkOrderHistoryListResponseData":{"type":"object","properties":{"items":{"type":"array","items":{}}},"required":["items"],"title":"WorkOrderHistoryListResponseData"},"WorkOrderInvoiceListResponseData":{"type":"object","properties":{"items":{"type":"array","items":{}}},"required":["items"],"title":"WorkOrderInvoiceListResponseData"},"WorkOrderListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"WorkOrderListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"workshop_id":{"type":["integer","null"]},"document_number":{"type":"string"},"issue_year":{"type":"integer"},"issue_seq":{"type":"integer"},"client_id":{"type":["integer","null"]},"vehicle_id":{"type":["integer","null"]},"owner_id":{"type":["integer","null"]},"title":{"type":["string","null"]},"computed_title":{"type":["string","null"]},"status":{"type":"string"},"payment_status":{"type":"string"},"is_archived":{"type":"boolean"},"workshop_name":{"type":["string","null"]},"client_name":{"type":["string","null"]},"vehicle_plate":{"type":["string","null"]},"total":{"type":"string"},"currency":{"type":"string"},"scheduled_at":{"type":["string","null"],"format":"date-time"},"received_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","tenant_id"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"WorkOrderListResponseData"},"WorkOrderMetricsResponseData":{"type":"object","properties":{"by_status":{"$ref":"#\/components\/schemas\/WorkOrderStatusCountsData"},"by_payment_status":{"$ref":"#\/components\/schemas\/PaymentStatusCountsData"},"scheduled_today":{"type":"integer"},"overdue":{"type":"integer"}},"required":["by_status","by_payment_status","scheduled_today","overdue"],"title":"WorkOrderMetricsResponseData"},"WorkOrderPaymentListResponseData":{"type":"object","properties":{"items":{"type":"array","items":{}}},"required":["items"],"title":"WorkOrderPaymentListResponseData"},"WorkOrderResponseData":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"workshop_id":{"type":["integer","null"]},"document_number":{"type":"string"},"issue_year":{"type":"integer"},"issue_seq":{"type":"integer"},"client_id":{"type":["integer","null"]},"vehicle_id":{"type":["integer","null"]},"owner_id":{"type":["integer","null"]},"title":{"type":["string","null"]},"status":{"type":"string"},"payment_status":{"type":"string"},"is_archived":{"type":"boolean"},"workflow_column_id":{"type":["integer","null"]},"scheduled_at":{"type":["string","null"],"format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"received_at":{"type":["string","null"],"format":"date-time"},"reception_mileage":{"type":["integer","null"]},"reception_fuel_level":{"type":["string","null"]},"cancellation_reason":{"type":["string","null"]},"cancelled_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"deadline":{"type":["string","null"],"format":"date-time"},"subtotal":{"type":"string"},"discount_total":{"type":"string"},"tax_total":{"type":"string"},"total":{"type":"string"},"currency":{"type":"string"},"client_notes":{"type":["string","null"]},"vehicle_notes":{"type":["string","null"]},"notes":{"type":["string","null"]},"comments":{"type":["string","null"]},"content":{"type":["array","null"],"items":{}},"inspections":{"type":["array","null"],"items":{}},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"tags":{"type":"array","items":{}}},"required":["id","tenant_id"],"title":"WorkOrderResponseData"},"WorkOrderSendResponseData":{"type":"object","properties":{"share_token":{"type":"string"},"share_url":{"type":"string"},"contact_method":{"type":"string"},"recipient":{"type":"string"},"sent_at":{"type":"string","format":"date-time"},"message":{"type":["string","null"]}},"required":["share_token","share_url","contact_method","recipient","sent_at"],"title":"WorkOrderSendResponseData"},"WorkOrderServicesResponseData":{"type":"object","properties":{"services":{"type":"array","items":{}}},"title":"WorkOrderServicesResponseData"},"WorkOrderShareLinkResponseData":{"type":"object","properties":{"share_token":{"type":"string"},"share_url":{"type":"string"},"expires_at":{"type":"string","format":"date-time"}},"required":["share_token","share_url","expires_at"],"title":"WorkOrderShareLinkResponseData"},"WorkOrderSortField":{"type":"string","enum":["created_at","received_at","client_name","total"],"title":"WorkOrderSortField"},"WorkOrderStatusCountsData":{"type":"object","properties":{"pending":{"type":"integer"},"in_progress":{"type":"integer"},"completed":{"type":"integer"},"cancelled":{"type":"integer"}},"required":["pending","in_progress","completed","cancelled"],"title":"WorkOrderStatusCountsData"},"WorkflowColumnKind":{"type":"string","enum":["work_orders","estimates"],"title":"WorkflowColumnKind"},"WorkflowColumnListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"WorkflowColumnResponseData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"kind":{"$ref":"#\/components\/schemas\/WorkflowColumnKind"},"name":{"type":"string"},"sort_order":{"type":"integer"},"is_hidden_for_me":{"type":"boolean"},"card_count":{"type":"integer"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","kind","name","sort_order","is_hidden_for_me","card_count"]}}},"required":["items"],"title":"WorkflowColumnListResponseData"},"WorkflowColumnResponseData":{"type":"object","properties":{"id":{"type":"integer"},"kind":{"$ref":"#\/components\/schemas\/WorkflowColumnKind"},"name":{"type":"string"},"sort_order":{"type":"integer"},"is_hidden_for_me":{"type":"boolean"},"card_count":{"type":"integer"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","kind","name","sort_order","is_hidden_for_me","card_count"],"title":"WorkflowColumnResponseData"},"WorkshopListResponseData":{"type":"object","properties":{"items":{"type":"array","description":"WorkshopListItemData[]","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","name"]}},"page":{"$ref":"#\/components\/schemas\/PageData"}},"required":["items","page"],"title":"WorkshopListResponseData"},"WorkshopResponseData":{"type":"object","properties":{"id":{"type":"integer"},"tenant_id":{"type":"integer"},"name":{"type":"string"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","tenant_id","name"],"title":"WorkshopResponseData"},"WorkshopType":{"type":"string","enum":["multibrand","authorized_dealer","fast_service","network_chain","tyres","body_and_paint","diagnostics_and_electronics","auto_glass"],"title":"WorkshopType"}},"responses":{"ValidationException":{"description":"Validation error","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Errors overview."},"errors":{"type":"object","description":"A detailed description of each field that failed validation.","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["message","errors"]}}}},"AuthenticationException":{"description":"Unauthenticated","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error overview."}},"required":["message"]}}}},"ModelNotFoundException":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error overview."}},"required":["message"]}}}}}}}