{"openapi":"3.0.3","info":{"title":"boutiqueleasingsystem API","version":"1.0.0","description":"Generated backend API for BoutiqueLeasingSystem\n\n## Authentication\n\nUse POST /api/auth/login to get a JWT token, then click Authorize and enter: Bearer <token>\n\n## MCP Integration\n\nThis API includes a built-in MCP server at `/mcp` that exposes all API operations as AI-callable tools."},"servers":[{"url":"/","description":"Current server"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT token from /api/auth/login or a generated API key from /api/auth/api-keys"}},"schemas":{"LeaseAgreement":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier"},"uniqueAssetID":{"type":"string"},"customerId":{"type":"string"},"assetId":{"type":"string"},"startDate":{"type":"string","format":"date-time"},"endDate":{"type":"string","format":"date-time"},"status":{"type":"string"},"leaseType":{"type":"string"},"monthlyPaymentAmount":{"type":"number"},"id_AmortizationSchedule_Bank":{"type":"string"},"id_AmortizationSchedule_Customer":{"type":"string"},"id_AmortizationSchedule_AssetNAV":{"type":"string"},"id_ComplianceRule":{"type":"string"},"dateCreated":{"type":"string","format":"date-time"},"userCreated":{"type":"string"},"dateUpdated":{"type":"string","format":"date-time"},"userUpdated":{"type":"string"},"notes":{"type":"string"},"tags":{"type":"string"},"isActive":{"type":"boolean"},"name":{"type":"string"},"description":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"example":{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","uniqueAssetID":"Sample UniqueAssetID","customerId":"Sample CustomerId","assetId":"Sample AssetId","startDate":"2026-02-13T10:00:00.000Z","endDate":"2026-02-13T10:00:00.000Z","status":"Sample Status","leaseType":"Sample LeaseType","monthlyPaymentAmount":0,"id_AmortizationSchedule_Bank":"Sample Id_AmortizationSchedule_Bank","id_AmortizationSchedule_Customer":"Sample Id_AmortizationSchedule_Customer","id_AmortizationSchedule_AssetNAV":"Sample Id_AmortizationSchedule_AssetNAV","id_ComplianceRule":"Sample Id_ComplianceRule","dateCreated":"2026-02-13T10:00:00.000Z","userCreated":"Sample UserCreated","dateUpdated":"2026-02-13T10:00:00.000Z","userUpdated":"Sample UserUpdated","notes":"Sample Notes","tags":"Sample Tags","isActive":true,"name":"Sample Name","description":"Sample Description","createdAt":"2026-02-13T10:00:00.000Z","updatedAt":"2026-02-13T10:00:00.000Z"}},"Asset":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier"},"uniqueAssetID":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"description":{"type":"string"},"serialNumber":{"type":"string"},"tradeValue":{"type":"number"},"purchaseDate":{"type":"string","format":"date-time"},"status":{"type":"string"},"id_MnMCatalogEntry":{"type":"string"},"id_ComplianceRule":{"type":"string"},"dateCreated":{"type":"string","format":"date-time"},"userCreated":{"type":"string"},"dateUpdated":{"type":"string","format":"date-time"},"userUpdated":{"type":"string"},"notes":{"type":"string"},"tags":{"type":"string"},"isActive":{"type":"boolean"},"category":{"type":"string"},"subcategory":{"type":"string"},"brand":{"type":"string"},"manufacturer":{"type":"string"},"supplier":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"example":{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","uniqueAssetID":"Sample UniqueAssetID","name":"Sample Name","type":"Sample Type","description":"Sample Description","serialNumber":"Sample SerialNumber","tradeValue":0,"purchaseDate":"2026-02-13T10:00:00.000Z","status":"Sample Status","id_MnMCatalogEntry":"Sample Id_MnMCatalogEntry","id_ComplianceRule":"Sample Id_ComplianceRule","dateCreated":"2026-02-13T10:00:00.000Z","userCreated":"Sample UserCreated","dateUpdated":"2026-02-13T10:00:00.000Z","userUpdated":"Sample UserUpdated","notes":"Sample Notes","tags":"Sample Tags","isActive":true,"category":"Sample Category","subcategory":"Sample Subcategory","brand":"Sample Brand","manufacturer":"Sample Manufacturer","supplier":"Sample Supplier","createdAt":"2026-02-13T10:00:00.000Z","updatedAt":"2026-02-13T10:00:00.000Z"}},"Transaction":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier"},"uniqueAssetID":{"type":"string"},"id_LeaseAgreement":{"type":"string"},"type":{"type":"string"},"amount":{"type":"number"},"currency":{"type":"string"},"status":{"type":"string"},"transactionDate":{"type":"string","format":"date-time"},"description":{"type":"string"},"id_CorrectionTransaction":{"type":"string"},"id_DebitOrderInstruction":{"type":"string"},"dateCreated":{"type":"string","format":"date-time"},"userCreated":{"type":"string"},"dateUpdated":{"type":"string","format":"date-time"},"userUpdated":{"type":"string"},"notes":{"type":"string"},"tags":{"type":"string"},"isActive":{"type":"boolean"},"channel":{"type":"string"},"source":{"type":"string"},"reference":{"type":"string"},"transactionId":{"type":"string"},"shippingMethod":{"type":"string"},"shippingCost":{"type":"number"},"discountCode":{"type":"string"},"discountAmount":{"type":"number"},"taxRate":{"type":"number"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"example":{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","uniqueAssetID":"Sample UniqueAssetID","id_LeaseAgreement":"Sample Id_LeaseAgreement","type":"Sample Type","amount":0,"currency":"Sample Currency","status":"Sample Status","transactionDate":"2026-02-13T10:00:00.000Z","description":"Sample Description","id_CorrectionTransaction":"Sample Id_CorrectionTransaction","id_DebitOrderInstruction":"Sample Id_DebitOrderInstruction","dateCreated":"2026-02-13T10:00:00.000Z","userCreated":"Sample UserCreated","dateUpdated":"2026-02-13T10:00:00.000Z","userUpdated":"Sample UserUpdated","notes":"Sample Notes","tags":"Sample Tags","isActive":true,"channel":"Sample Channel","source":"Sample Source","reference":"Sample Reference","transactionId":"Sample TransactionId","shippingMethod":"Sample ShippingMethod","shippingCost":0,"discountCode":"Sample DiscountCode","discountAmount":0,"taxRate":0,"createdAt":"2026-02-13T10:00:00.000Z","updatedAt":"2026-02-13T10:00:00.000Z"}},"LedgerEntry":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier"},"uniqueAssetID":{"type":"string"},"id_Transaction":{"type":"string"},"navLayer":{"type":"string"},"amount":{"type":"number"},"entryType":{"type":"string"},"effectiveDate":{"type":"string","format":"date-time"},"balanceAfterEntry":{"type":"number"},"parentId":{"type":"string"},"dateCreated":{"type":"string","format":"date-time"},"userCreated":{"type":"string"},"dateUpdated":{"type":"string","format":"date-time"},"userUpdated":{"type":"string"},"notes":{"type":"string"},"tags":{"type":"string"},"isActive":{"type":"boolean"},"name":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"quantity":{"type":"number"},"sequence":{"type":"number"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"example":{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","uniqueAssetID":"Sample UniqueAssetID","id_Transaction":"Sample Id_Transaction","navLayer":"Sample NavLayer","amount":0,"entryType":"Sample EntryType","effectiveDate":"2026-02-13T10:00:00.000Z","balanceAfterEntry":0,"parentId":"Sample ParentId","dateCreated":"2026-02-13T10:00:00.000Z","userCreated":"Sample UserCreated","dateUpdated":"2026-02-13T10:00:00.000Z","userUpdated":"Sample UserUpdated","notes":"Sample Notes","tags":"Sample Tags","isActive":true,"name":"Sample Name","description":"Sample Description","status":"Sample Status","quantity":0,"sequence":0,"createdAt":"2026-02-13T10:00:00.000Z","updatedAt":"2026-02-13T10:00:00.000Z"}},"AmortizationSchedule":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier"},"layerType":{"type":"string"},"startDate":{"type":"string","format":"date-time"},"endDate":{"type":"string","format":"date-time"},"totalAmount":{"type":"number"},"periodCount":{"type":"number"},"periodType":{"type":"string"},"interestRate":{"type":"number"},"paymentAmount":{"type":"number"},"amortizationTable":{"type":"array","items":{"type":"string"}},"id_LeaseAgreement":{"type":"string"},"id_ComplianceRule":{"type":"string"},"dateCreated":{"type":"string","format":"date-time"},"userCreated":{"type":"string"},"dateUpdated":{"type":"string","format":"date-time"},"userUpdated":{"type":"string"},"notes":{"type":"string"},"tags":{"type":"string"},"isActive":{"type":"boolean"},"name":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"location":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"example":{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","layerType":"Sample LayerType","startDate":"2026-02-13T10:00:00.000Z","endDate":"2026-02-13T10:00:00.000Z","totalAmount":0,"periodCount":0,"periodType":"Sample PeriodType","interestRate":0,"paymentAmount":0,"amortizationTable":[],"id_LeaseAgreement":"Sample Id_LeaseAgreement","id_ComplianceRule":"Sample Id_ComplianceRule","dateCreated":"2026-02-13T10:00:00.000Z","userCreated":"Sample UserCreated","dateUpdated":"2026-02-13T10:00:00.000Z","userUpdated":"Sample UserUpdated","notes":"Sample Notes","tags":"Sample Tags","isActive":true,"name":"Sample Name","description":"Sample Description","status":"Sample Status","location":"Sample Location","createdAt":"2026-02-13T10:00:00.000Z","updatedAt":"2026-02-13T10:00:00.000Z"}},"Customer":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier"},"name":{"type":"string"},"type":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"taxPin":{"type":"string"},"vatNumber":{"type":"string"},"bankAccountNumber":{"type":"string"},"bankBranchCode":{"type":"string"},"status":{"type":"string"},"dateCreated":{"type":"string","format":"date-time"},"userCreated":{"type":"string"},"dateUpdated":{"type":"string","format":"date-time"},"userUpdated":{"type":"string"},"notes":{"type":"string"},"tags":{"type":"string"},"isActive":{"type":"boolean"},"category":{"type":"string"},"segment":{"type":"string"},"tier":{"type":"string"},"source":{"type":"string"},"referralSource":{"type":"string"},"lifetimeValue":{"type":"number"},"firstName":{"type":"string"},"lastName":{"type":"string"},"address":{"type":"string"},"acquisitionDate":{"type":"string","format":"date-time"},"lastContactDate":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"example":{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","name":"Sample Name","type":"Sample Type","email":"Sample Email","phone":"Sample Phone","taxPin":"Sample TaxPin","vatNumber":"Sample VatNumber","bankAccountNumber":"Sample BankAccountNumber","bankBranchCode":"Sample BankBranchCode","status":"Sample Status","dateCreated":"2026-02-13T10:00:00.000Z","userCreated":"Sample UserCreated","dateUpdated":"2026-02-13T10:00:00.000Z","userUpdated":"Sample UserUpdated","notes":"Sample Notes","tags":"Sample Tags","isActive":true,"category":"Sample Category","segment":"Sample Segment","tier":"Sample Tier","source":"Sample Source","referralSource":"Sample ReferralSource","lifetimeValue":0,"firstName":"Sample FirstName","lastName":"Sample LastName","address":"Sample Address","acquisitionDate":"2026-02-13T10:00:00.000Z","lastContactDate":"2026-02-13T10:00:00.000Z","createdAt":"2026-02-13T10:00:00.000Z","updatedAt":"2026-02-13T10:00:00.000Z"}},"MnMCatalogEntry":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier"},"catalogId":{"type":"string"},"model":{"type":"string"},"make":{"type":"string"},"year":{"type":"number"},"baseTradeValue":{"type":"number"},"conditionRating":{"type":"string"},"lastUpdated":{"type":"string","format":"date-time"},"dateCreated":{"type":"string","format":"date-time"},"userCreated":{"type":"string"},"dateUpdated":{"type":"string","format":"date-time"},"userUpdated":{"type":"string"},"notes":{"type":"string"},"tags":{"type":"string"},"isActive":{"type":"boolean"},"category":{"type":"string"},"subcategory":{"type":"string"},"brand":{"type":"string"},"manufacturer":{"type":"string"},"supplier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"quantity":{"type":"number"},"amount":{"type":"number"},"sequence":{"type":"number"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"example":{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","catalogId":"Sample CatalogId","model":"Sample Model","make":"Sample Make","year":0,"baseTradeValue":0,"conditionRating":"Sample ConditionRating","lastUpdated":"2026-02-13T10:00:00.000Z","dateCreated":"2026-02-13T10:00:00.000Z","userCreated":"Sample UserCreated","dateUpdated":"2026-02-13T10:00:00.000Z","userUpdated":"Sample UserUpdated","notes":"Sample Notes","tags":"Sample Tags","isActive":true,"category":"Sample Category","subcategory":"Sample Subcategory","brand":"Sample Brand","manufacturer":"Sample Manufacturer","supplier":"Sample Supplier","name":"Sample Name","description":"Sample Description","status":"Sample Status","quantity":0,"amount":0,"sequence":0,"createdAt":"2026-02-13T10:00:00.000Z","updatedAt":"2026-02-13T10:00:00.000Z"}},"DebitOrderInstruction":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier"},"id_LeaseAgreement":{"type":"string"},"customerId":{"type":"string"},"bankAccountNumber":{"type":"string"},"bankBranchCode":{"type":"string"},"amount":{"type":"number"},"currency":{"type":"string"},"frequency":{"type":"string"},"nextRunDate":{"type":"string","format":"date-time"},"status":{"type":"string"},"referenceNumber":{"type":"string"},"retryCount":{"type":"number"},"dateCreated":{"type":"string","format":"date-time"},"userCreated":{"type":"string"},"dateUpdated":{"type":"string","format":"date-time"},"userUpdated":{"type":"string"},"notes":{"type":"string"},"tags":{"type":"string"},"isActive":{"type":"boolean"},"channel":{"type":"string"},"source":{"type":"string"},"orderNumber":{"type":"string"},"total":{"type":"number"},"subtotal":{"type":"number"},"tax":{"type":"number"},"orderDate":{"type":"string","format":"date-time"},"shippingMethod":{"type":"string"},"shippingCost":{"type":"number"},"discountCode":{"type":"string"},"discountAmount":{"type":"number"},"taxRate":{"type":"number"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"example":{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","id_LeaseAgreement":"Sample Id_LeaseAgreement","customerId":"Sample CustomerId","bankAccountNumber":"Sample BankAccountNumber","bankBranchCode":"Sample BankBranchCode","amount":0,"currency":"Sample Currency","frequency":"Sample Frequency","nextRunDate":"2026-02-13T10:00:00.000Z","status":"Sample Status","referenceNumber":"Sample ReferenceNumber","retryCount":0,"dateCreated":"2026-02-13T10:00:00.000Z","userCreated":"Sample UserCreated","dateUpdated":"2026-02-13T10:00:00.000Z","userUpdated":"Sample UserUpdated","notes":"Sample Notes","tags":"Sample Tags","isActive":true,"channel":"Sample Channel","source":"Sample Source","orderNumber":"Sample OrderNumber","total":0,"subtotal":0,"tax":0,"orderDate":"2026-02-13T10:00:00.000Z","shippingMethod":"Sample ShippingMethod","shippingCost":0,"discountCode":"Sample DiscountCode","discountAmount":0,"taxRate":0,"createdAt":"2026-02-13T10:00:00.000Z","updatedAt":"2026-02-13T10:00:00.000Z"}},"ComplianceRule":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier"},"name":{"type":"string"},"domain":{"type":"string"},"ruleType":{"type":"string"},"priority":{"type":"number"},"conditionJSON":{"type":"string"},"actionJSON":{"type":"string"},"isActive":{"type":"boolean"},"effectiveDate":{"type":"string","format":"date-time"},"expiryDate":{"type":"string","format":"date-time"},"dateCreated":{"type":"string","format":"date-time"},"userCreated":{"type":"string"},"dateUpdated":{"type":"string","format":"date-time"},"userUpdated":{"type":"string"},"notes":{"type":"string"},"tags":{"type":"string"},"region":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"condition":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"example":{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","name":"Sample Name","domain":"Sample Domain","ruleType":"Sample RuleType","priority":0,"conditionJSON":"Sample ConditionJSON","actionJSON":"Sample ActionJSON","isActive":true,"effectiveDate":"2026-02-13T10:00:00.000Z","expiryDate":"2026-02-13T10:00:00.000Z","dateCreated":"2026-02-13T10:00:00.000Z","userCreated":"Sample UserCreated","dateUpdated":"2026-02-13T10:00:00.000Z","userUpdated":"Sample UserUpdated","notes":"Sample Notes","tags":"Sample Tags","region":"Sample Region","description":"Sample Description","status":"Sample Status","condition":"Sample Condition","createdAt":"2026-02-13T10:00:00.000Z","updatedAt":"2026-02-13T10:00:00.000Z"}},"Report":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier"},"name":{"type":"string"},"type":{"type":"string"},"uniqueAssetID":{"type":"string"},"reportDate":{"type":"string","format":"date-time"},"periodStart":{"type":"string","format":"date-time"},"periodEnd":{"type":"string","format":"date-time"},"templateId":{"type":"string"},"status":{"type":"string"},"data":{"type":"object"},"generatedBy":{"type":"string"},"dateGenerated":{"type":"string","format":"date-time"},"dateCreated":{"type":"string","format":"date-time"},"userCreated":{"type":"string"},"dateUpdated":{"type":"string","format":"date-time"},"userUpdated":{"type":"string"},"notes":{"type":"string"},"tags":{"type":"string"},"isActive":{"type":"boolean"},"description":{"type":"string"},"generatedDate":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"example":{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","name":"Sample Name","type":"Sample Type","uniqueAssetID":"Sample UniqueAssetID","reportDate":"2026-02-13T10:00:00.000Z","periodStart":"2026-02-13T10:00:00.000Z","periodEnd":"2026-02-13T10:00:00.000Z","templateId":"Sample TemplateId","status":"Sample Status","data":{},"generatedBy":"Sample GeneratedBy","dateGenerated":"2026-02-13T10:00:00.000Z","dateCreated":"2026-02-13T10:00:00.000Z","userCreated":"Sample UserCreated","dateUpdated":"2026-02-13T10:00:00.000Z","userUpdated":"Sample UserUpdated","notes":"Sample Notes","tags":"Sample Tags","isActive":true,"description":"Sample Description","generatedDate":"2026-02-13T10:00:00.000Z","createdAt":"2026-02-13T10:00:00.000Z","updatedAt":"2026-02-13T10:00:00.000Z"}},"AmortizationLine":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier"},"periodNumber":{"type":"number"},"date":{"type":"string","format":"date-time"},"openingBalance":{"type":"number"},"paymentAmount":{"type":"number"},"interestPortion":{"type":"number"},"principalPortion":{"type":"number"},"closingBalance":{"type":"number"},"isPaid":{"type":"boolean"},"paidDate":{"type":"string","format":"date-time"},"name":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"quantity":{"type":"number"},"amount":{"type":"number"},"sequence":{"type":"number"},"dateCreated":{"type":"string","format":"date-time"},"userCreated":{"type":"string"},"dateUpdated":{"type":"string","format":"date-time"},"userUpdated":{"type":"string"},"notes":{"type":"string"},"tags":{"type":"string"},"isActive":{"type":"boolean"},"id_LeaseAgreement":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"example":{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","periodNumber":0,"date":"2026-02-13T10:00:00.000Z","openingBalance":0,"paymentAmount":0,"interestPortion":0,"principalPortion":0,"closingBalance":0,"isPaid":true,"paidDate":"2026-02-13T10:00:00.000Z","name":"Sample Name","description":"Sample Description","status":"Sample Status","quantity":0,"amount":0,"sequence":0,"dateCreated":"2026-02-13T10:00:00.000Z","userCreated":"Sample UserCreated","dateUpdated":"2026-02-13T10:00:00.000Z","userUpdated":"Sample UserUpdated","notes":"Sample Notes","tags":"Sample Tags","isActive":true,"id_LeaseAgreement":"Sample Id_LeaseAgreement","createdAt":"2026-02-13T10:00:00.000Z","updatedAt":"2026-02-13T10:00:00.000Z"}},"LoginRequest":{"type":"object","required":["email","password"],"properties":{"email":{"type":"string","format":"email"},"password":{"type":"string","format":"password"}},"example":{"email":"admin@ecosystem.ai","password":"password"}},"RegisterRequest":{"type":"object","required":["email","password"],"properties":{"email":{"type":"string","format":"email"},"password":{"type":"string","format":"password"},"firstName":{"type":"string"},"lastName":{"type":"string"}},"example":{"email":"user@example.com","password":"securepass","firstName":"John","lastName":"Doe"}},"AuthTokens":{"type":"object","properties":{"accessToken":{"type":"string"},"refreshToken":{"type":"string"},"user":{"type":"object"}}},"ApiKeyRequest":{"type":"object","properties":{"label":{"type":"string","description":"Label for the API key"},"expiresIn":{"type":"string","description":"Expiry duration (e.g. 30d, 90d, 365d)","default":"365d"}},"example":{"label":"My MCP Client","expiresIn":"365d"}},"ApiKeyResponse":{"type":"object","properties":{"token":{"type":"string"},"label":{"type":"string"},"expiresIn":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}}}},"security":[{"bearerAuth":[]}],"paths":{"/api/leaseagreement":{"get":{"operationId":"listLeaseAgreements","summary":"List all LeaseAgreements","tags":["LeaseAgreement"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number"},{"name":"limit","in":"query","schema":{"type":"integer","default":20},"description":"Items per page"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Search filter"}],"responses":{"200":{"description":"List of LeaseAgreement records","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/LeaseAgreement"}},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"}}}}}}}},"post":{"operationId":"createLeaseAgreement","summary":"Create a new LeaseAgreement","tags":["LeaseAgreement"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaseAgreement"}}}},"responses":{"201":{"description":"LeaseAgreement created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaseAgreement"}}}}}}},"/api/leaseagreement/{id}":{"get":{"operationId":"getLeaseAgreementById","summary":"Get LeaseAgreement by ID","tags":["LeaseAgreement"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"LeaseAgreement details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaseAgreement"}}}},"404":{"description":"Not found"}}},"put":{"operationId":"updateLeaseAgreement","summary":"Update LeaseAgreement","tags":["LeaseAgreement"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaseAgreement"}}}},"responses":{"200":{"description":"LeaseAgreement updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaseAgreement"}}}},"404":{"description":"Not found"}}},"delete":{"operationId":"deleteLeaseAgreement","summary":"Delete LeaseAgreement","tags":["LeaseAgreement"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"LeaseAgreement deleted"},"404":{"description":"Not found"}}}},"/api/asset":{"get":{"operationId":"listAssets","summary":"List all Assets","tags":["Asset"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number"},{"name":"limit","in":"query","schema":{"type":"integer","default":20},"description":"Items per page"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Search filter"}],"responses":{"200":{"description":"List of Asset records","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Asset"}},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"}}}}}}}},"post":{"operationId":"createAsset","summary":"Create a new Asset","tags":["Asset"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Asset"}}}},"responses":{"201":{"description":"Asset created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Asset"}}}}}}},"/api/asset/{id}":{"get":{"operationId":"getAssetById","summary":"Get Asset by ID","tags":["Asset"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Asset details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Asset"}}}},"404":{"description":"Not found"}}},"put":{"operationId":"updateAsset","summary":"Update Asset","tags":["Asset"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Asset"}}}},"responses":{"200":{"description":"Asset updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Asset"}}}},"404":{"description":"Not found"}}},"delete":{"operationId":"deleteAsset","summary":"Delete Asset","tags":["Asset"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Asset deleted"},"404":{"description":"Not found"}}}},"/api/transaction":{"get":{"operationId":"listTransactions","summary":"List all Transactions","tags":["Transaction"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number"},{"name":"limit","in":"query","schema":{"type":"integer","default":20},"description":"Items per page"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Search filter"}],"responses":{"200":{"description":"List of Transaction records","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Transaction"}},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"}}}}}}}},"post":{"operationId":"createTransaction","summary":"Create a new Transaction","tags":["Transaction"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Transaction"}}}},"responses":{"201":{"description":"Transaction created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Transaction"}}}}}}},"/api/transaction/{id}":{"get":{"operationId":"getTransactionById","summary":"Get Transaction by ID","tags":["Transaction"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Transaction details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Transaction"}}}},"404":{"description":"Not found"}}},"put":{"operationId":"updateTransaction","summary":"Update Transaction","tags":["Transaction"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Transaction"}}}},"responses":{"200":{"description":"Transaction updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Transaction"}}}},"404":{"description":"Not found"}}},"delete":{"operationId":"deleteTransaction","summary":"Delete Transaction","tags":["Transaction"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Transaction deleted"},"404":{"description":"Not found"}}}},"/api/ledgerentry":{"get":{"operationId":"listLedgerEntrys","summary":"List all LedgerEntrys","tags":["LedgerEntry"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number"},{"name":"limit","in":"query","schema":{"type":"integer","default":20},"description":"Items per page"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Search filter"}],"responses":{"200":{"description":"List of LedgerEntry records","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/LedgerEntry"}},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"}}}}}}}},"post":{"operationId":"createLedgerEntry","summary":"Create a new LedgerEntry","tags":["LedgerEntry"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerEntry"}}}},"responses":{"201":{"description":"LedgerEntry created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerEntry"}}}}}}},"/api/ledgerentry/{id}":{"get":{"operationId":"getLedgerEntryById","summary":"Get LedgerEntry by ID","tags":["LedgerEntry"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"LedgerEntry details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerEntry"}}}},"404":{"description":"Not found"}}},"put":{"operationId":"updateLedgerEntry","summary":"Update LedgerEntry","tags":["LedgerEntry"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerEntry"}}}},"responses":{"200":{"description":"LedgerEntry updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerEntry"}}}},"404":{"description":"Not found"}}},"delete":{"operationId":"deleteLedgerEntry","summary":"Delete LedgerEntry","tags":["LedgerEntry"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"LedgerEntry deleted"},"404":{"description":"Not found"}}}},"/api/amortizationschedule":{"get":{"operationId":"listAmortizationSchedules","summary":"List all AmortizationSchedules","tags":["AmortizationSchedule"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number"},{"name":"limit","in":"query","schema":{"type":"integer","default":20},"description":"Items per page"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Search filter"}],"responses":{"200":{"description":"List of AmortizationSchedule records","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AmortizationSchedule"}},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"}}}}}}}},"post":{"operationId":"createAmortizationSchedule","summary":"Create a new AmortizationSchedule","tags":["AmortizationSchedule"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmortizationSchedule"}}}},"responses":{"201":{"description":"AmortizationSchedule created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmortizationSchedule"}}}}}}},"/api/amortizationschedule/{id}":{"get":{"operationId":"getAmortizationScheduleById","summary":"Get AmortizationSchedule by ID","tags":["AmortizationSchedule"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"AmortizationSchedule details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmortizationSchedule"}}}},"404":{"description":"Not found"}}},"put":{"operationId":"updateAmortizationSchedule","summary":"Update AmortizationSchedule","tags":["AmortizationSchedule"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmortizationSchedule"}}}},"responses":{"200":{"description":"AmortizationSchedule updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmortizationSchedule"}}}},"404":{"description":"Not found"}}},"delete":{"operationId":"deleteAmortizationSchedule","summary":"Delete AmortizationSchedule","tags":["AmortizationSchedule"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"AmortizationSchedule deleted"},"404":{"description":"Not found"}}}},"/api/customer":{"get":{"operationId":"listCustomers","summary":"List all Customers","tags":["Customer"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number"},{"name":"limit","in":"query","schema":{"type":"integer","default":20},"description":"Items per page"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Search filter"}],"responses":{"200":{"description":"List of Customer records","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Customer"}},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"}}}}}}}},"post":{"operationId":"createCustomer","summary":"Create a new Customer","tags":["Customer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}}},"responses":{"201":{"description":"Customer created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}}}}}},"/api/customer/{id}":{"get":{"operationId":"getCustomerById","summary":"Get Customer by ID","tags":["Customer"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Customer details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}}},"404":{"description":"Not found"}}},"put":{"operationId":"updateCustomer","summary":"Update Customer","tags":["Customer"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}}},"responses":{"200":{"description":"Customer updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Customer"}}}},"404":{"description":"Not found"}}},"delete":{"operationId":"deleteCustomer","summary":"Delete Customer","tags":["Customer"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Customer deleted"},"404":{"description":"Not found"}}}},"/api/mnmcatalogentry":{"get":{"operationId":"listMnMCatalogEntrys","summary":"List all MnMCatalogEntrys","tags":["MnMCatalogEntry"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number"},{"name":"limit","in":"query","schema":{"type":"integer","default":20},"description":"Items per page"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Search filter"}],"responses":{"200":{"description":"List of MnMCatalogEntry records","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MnMCatalogEntry"}},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"}}}}}}}},"post":{"operationId":"createMnMCatalogEntry","summary":"Create a new MnMCatalogEntry","tags":["MnMCatalogEntry"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MnMCatalogEntry"}}}},"responses":{"201":{"description":"MnMCatalogEntry created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MnMCatalogEntry"}}}}}}},"/api/mnmcatalogentry/{id}":{"get":{"operationId":"getMnMCatalogEntryById","summary":"Get MnMCatalogEntry by ID","tags":["MnMCatalogEntry"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"MnMCatalogEntry details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MnMCatalogEntry"}}}},"404":{"description":"Not found"}}},"put":{"operationId":"updateMnMCatalogEntry","summary":"Update MnMCatalogEntry","tags":["MnMCatalogEntry"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MnMCatalogEntry"}}}},"responses":{"200":{"description":"MnMCatalogEntry updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MnMCatalogEntry"}}}},"404":{"description":"Not found"}}},"delete":{"operationId":"deleteMnMCatalogEntry","summary":"Delete MnMCatalogEntry","tags":["MnMCatalogEntry"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"MnMCatalogEntry deleted"},"404":{"description":"Not found"}}}},"/api/debitorderinstruction":{"get":{"operationId":"listDebitOrderInstructions","summary":"List all DebitOrderInstructions","tags":["DebitOrderInstruction"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number"},{"name":"limit","in":"query","schema":{"type":"integer","default":20},"description":"Items per page"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Search filter"}],"responses":{"200":{"description":"List of DebitOrderInstruction records","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DebitOrderInstruction"}},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"}}}}}}}},"post":{"operationId":"createDebitOrderInstruction","summary":"Create a new DebitOrderInstruction","tags":["DebitOrderInstruction"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitOrderInstruction"}}}},"responses":{"201":{"description":"DebitOrderInstruction created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitOrderInstruction"}}}}}}},"/api/debitorderinstruction/{id}":{"get":{"operationId":"getDebitOrderInstructionById","summary":"Get DebitOrderInstruction by ID","tags":["DebitOrderInstruction"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"DebitOrderInstruction details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitOrderInstruction"}}}},"404":{"description":"Not found"}}},"put":{"operationId":"updateDebitOrderInstruction","summary":"Update DebitOrderInstruction","tags":["DebitOrderInstruction"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitOrderInstruction"}}}},"responses":{"200":{"description":"DebitOrderInstruction updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitOrderInstruction"}}}},"404":{"description":"Not found"}}},"delete":{"operationId":"deleteDebitOrderInstruction","summary":"Delete DebitOrderInstruction","tags":["DebitOrderInstruction"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"DebitOrderInstruction deleted"},"404":{"description":"Not found"}}}},"/api/compliancerule":{"get":{"operationId":"listComplianceRules","summary":"List all ComplianceRules","tags":["ComplianceRule"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number"},{"name":"limit","in":"query","schema":{"type":"integer","default":20},"description":"Items per page"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Search filter"}],"responses":{"200":{"description":"List of ComplianceRule records","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceRule"}},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"}}}}}}}},"post":{"operationId":"createComplianceRule","summary":"Create a new ComplianceRule","tags":["ComplianceRule"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceRule"}}}},"responses":{"201":{"description":"ComplianceRule created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceRule"}}}}}}},"/api/compliancerule/{id}":{"get":{"operationId":"getComplianceRuleById","summary":"Get ComplianceRule by ID","tags":["ComplianceRule"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ComplianceRule details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceRule"}}}},"404":{"description":"Not found"}}},"put":{"operationId":"updateComplianceRule","summary":"Update ComplianceRule","tags":["ComplianceRule"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceRule"}}}},"responses":{"200":{"description":"ComplianceRule updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceRule"}}}},"404":{"description":"Not found"}}},"delete":{"operationId":"deleteComplianceRule","summary":"Delete ComplianceRule","tags":["ComplianceRule"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"ComplianceRule deleted"},"404":{"description":"Not found"}}}},"/api/report":{"get":{"operationId":"listReports","summary":"List all Reports","tags":["Report"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number"},{"name":"limit","in":"query","schema":{"type":"integer","default":20},"description":"Items per page"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Search filter"}],"responses":{"200":{"description":"List of Report records","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Report"}},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"}}}}}}}},"post":{"operationId":"createReport","summary":"Create a new Report","tags":["Report"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Report"}}}},"responses":{"201":{"description":"Report created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Report"}}}}}}},"/api/report/{id}":{"get":{"operationId":"getReportById","summary":"Get Report by ID","tags":["Report"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Report details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Report"}}}},"404":{"description":"Not found"}}},"put":{"operationId":"updateReport","summary":"Update Report","tags":["Report"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Report"}}}},"responses":{"200":{"description":"Report updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Report"}}}},"404":{"description":"Not found"}}},"delete":{"operationId":"deleteReport","summary":"Delete Report","tags":["Report"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Report deleted"},"404":{"description":"Not found"}}}},"/api/amortizationline":{"get":{"operationId":"listAmortizationLines","summary":"List all AmortizationLines","tags":["AmortizationLine"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number"},{"name":"limit","in":"query","schema":{"type":"integer","default":20},"description":"Items per page"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Search filter"}],"responses":{"200":{"description":"List of AmortizationLine records","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AmortizationLine"}},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"}}}}}}}},"post":{"operationId":"createAmortizationLine","summary":"Create a new AmortizationLine","tags":["AmortizationLine"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmortizationLine"}}}},"responses":{"201":{"description":"AmortizationLine created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmortizationLine"}}}}}}},"/api/amortizationline/{id}":{"get":{"operationId":"getAmortizationLineById","summary":"Get AmortizationLine by ID","tags":["AmortizationLine"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"AmortizationLine details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmortizationLine"}}}},"404":{"description":"Not found"}}},"put":{"operationId":"updateAmortizationLine","summary":"Update AmortizationLine","tags":["AmortizationLine"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmortizationLine"}}}},"responses":{"200":{"description":"AmortizationLine updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmortizationLine"}}}},"404":{"description":"Not found"}}},"delete":{"operationId":"deleteAmortizationLine","summary":"Delete AmortizationLine","tags":["AmortizationLine"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"AmortizationLine deleted"},"404":{"description":"Not found"}}}},"/api/auth/register":{"post":{"operationId":"register","summary":"Register a new user account","tags":["Auth"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}}},"responses":{"200":{"description":"Registration successful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthTokens"}}}},"409":{"description":"Email already registered"}}}},"/api/auth/login":{"post":{"operationId":"login","summary":"Login with email and password","tags":["Auth"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}}},"responses":{"200":{"description":"Login successful — returns access and refresh tokens","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthTokens"}}}},"401":{"description":"Invalid credentials"}}}},"/api/auth/refresh":{"post":{"operationId":"refreshToken","summary":"Refresh access token using a refresh token","tags":["Auth"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["refreshToken"],"properties":{"refreshToken":{"type":"string"}}}}}},"responses":{"200":{"description":"Tokens refreshed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthTokens"}}}},"401":{"description":"Invalid refresh token"}}}},"/api/auth/profile":{"get":{"operationId":"getProfile","summary":"Get current user profile","tags":["Auth"],"responses":{"200":{"description":"User profile"},"401":{"description":"Not authenticated"}}},"put":{"operationId":"updateProfile","summary":"Update user profile","tags":["Auth"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"}}}}}},"responses":{"200":{"description":"Profile updated"},"401":{"description":"Not authenticated"}}}},"/api/auth/api-keys":{"post":{"operationId":"generateApiKey","summary":"Generate a long-lived JWT API key for MCP or external API access","tags":["Auth"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyRequest"}}}},"responses":{"201":{"description":"API key generated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyResponse"}}}},"401":{"description":"Not authenticated"}}}},"/api/auth/logout":{"post":{"operationId":"logout","summary":"Logout and invalidate refresh token","tags":["Auth"],"responses":{"200":{"description":"Logged out successfully"},"401":{"description":"Not authenticated"}}}},"/api/analytics/{entity}/aggregate":{"get":{"operationId":"analyticsAggregate","summary":"Aggregate analytics for an entity","tags":["Analytics"],"parameters":[{"name":"entity","in":"path","required":true,"schema":{"type":"string"}},{"name":"field","in":"query","required":true,"schema":{"type":"string"}},{"name":"operation","in":"query","schema":{"type":"string","enum":["count","sum","avg","min","max"]}}],"responses":{"200":{"description":"Aggregation result"}}}},"/api/analytics/{entity}/distribution":{"get":{"operationId":"analyticsDistribution","summary":"Value distribution for an entity field","tags":["Analytics"],"parameters":[{"name":"entity","in":"path","required":true,"schema":{"type":"string"}},{"name":"field","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Distribution result"}}}},"/api/analytics/{entity}/timeline":{"get":{"operationId":"analyticsTimeline","summary":"Time-series data for an entity","tags":["Analytics"],"parameters":[{"name":"entity","in":"path","required":true,"schema":{"type":"string"}},{"name":"field","in":"query","required":true,"schema":{"type":"string"}},{"name":"bucket","in":"query","schema":{"type":"string","enum":["day","week","month"]}}],"responses":{"200":{"description":"Timeline data"}}}},"/api/analytics/dashboard":{"get":{"operationId":"analyticsDashboard","summary":"Dashboard summary across all entities","tags":["Analytics"],"responses":{"200":{"description":"Dashboard summary"}}}}}}