// This file is auto-generated by app-shell-metadata plugin // Do not edit manually export const tableMetadata = { "account": { "name": "account", "pluralForm": "accounts", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "code", "type": "string", "required": true, "description": "Structured numeric account code, unique within the company" }, { "name": "name", "type": "string", "required": true, "description": "Descriptive name of the GL account" }, { "name": "accountType", "type": "enum", "required": true, "description": "Account type: ASSET, LIABILITY, EQUITY, REVENUE, or EXPENSE", "enumValues": [ "ASSET", "LIABILITY", "EQUITY", "REVENUE", "EXPENSE" ] }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company from organization module", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status: ACTIVE or INACTIVE", "enumValues": [ "ACTIVE", "INACTIVE" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accountPayableDistributionLines", "targetTable": "accountPayableDistributionLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "accountPayableDocuments", "targetTable": "accountPayableDocument", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "accountReceivableDistributionLines", "targetTable": "accountReceivableDistributionLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "accountReceivableDocuments", "targetTable": "accountReceivableDocument", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "incomingPayments", "targetTable": "incomingPayment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "journalLines", "targetTable": "journalLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "outgoingPayments", "targetTable": "outgoingPayment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "defaultExpenseSupplierAccounts", "targetTable": "supplierAccount", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "accountPayableDistributionLine": { "name": "accountPayableDistributionLine", "pluralForm": "accountPayableDistributionLines", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "accountPayableDocumentLineId", "type": "uuid", "required": true, "description": "Foreign key to the commercial AP document line", "relation": { "fieldName": "accountPayableDocumentLine", "targetTable": "accountPayableDocumentLine" } }, { "name": "correctionOfDistributionLineId", "type": "uuid", "required": false, "description": "Optional self-reference to the posted AP distribution line being corrected", "relation": { "fieldName": "self", "targetTable": "self" } }, { "name": "accountId", "type": "uuid", "required": true, "description": "Foreign key to posting Account", "relation": { "fieldName": "account", "targetTable": "account" } }, { "name": "amount", "type": "number", "required": true, "description": "Distribution amount; signed only on INVOICE_PRICE_VARIANCE rows" }, { "name": "distributionType", "type": "enum", "required": true, "description": "Distribution type; non-MANUAL rows are system-derived", "enumValues": [ "MANUAL", "ACCRUAL", "INVOICE_PRICE_VARIANCE" ] }, { "name": "description", "type": "string", "required": false, "description": "Optional distribution line description" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "accountPayableDocumentLine", "targetTable": "accountPayableDocumentLine", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "correctionOfDistributionLine", "targetTable": "accountPayableDistributionLine", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "account", "targetTable": "account", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "correctionDistributions", "targetTable": "accountPayableDistributionLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "accountPayableDocument": { "name": "accountPayableDocument", "pluralForm": "accountPayableDocuments", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "supplierAccountId", "type": "uuid", "required": true, "description": "Foreign key to SupplierAccount", "relation": { "fieldName": "supplierAccount", "targetTable": "supplierAccount" } }, { "name": "currencyId", "type": "uuid", "required": true, "description": "Foreign key to transaction Currency", "relation": { "fieldName": "currency", "targetTable": "currency" } }, { "name": "payableControlAccountId", "type": "uuid", "required": true, "description": "Foreign key to the AP payable control Account", "relation": { "fieldName": "payableControlAccount", "targetTable": "account" } }, { "name": "documentType", "type": "enum", "required": true, "description": "AP document type", "enumValues": [ "INVOICE", "CREDIT_MEMO" ] }, { "name": "correctionOfId", "type": "uuid", "required": false, "description": "Optional self-reference to the posted AP document being corrected", "relation": { "fieldName": "self", "targetTable": "self" } }, { "name": "documentNumber", "type": "string", "required": true, "description": "System-generated AP document number" }, { "name": "externalDocumentNumber", "type": "string", "required": false, "description": "Optional external document number from the business partner" }, { "name": "documentDate", "type": "date", "required": true, "description": "AP document date" }, { "name": "postingDate", "type": "date", "required": true, "description": "Accounting posting date" }, { "name": "totalAmount", "type": "number", "required": true, "description": "Total AP document amount in transaction currency" }, { "name": "description", "type": "string", "required": false, "description": "Optional AP document description" }, { "name": "status", "type": "enum", "required": true, "description": "AP document lifecycle status", "enumValues": [ "DRAFT", "REGISTERED", "CANCELLED", "POSTED" ] }, { "name": "registeredAt", "type": "datetime", "required": false, "description": "Timestamp when registered" }, { "name": "postedAt", "type": "datetime", "required": false, "description": "Timestamp when posted" }, { "name": "cancelledAt", "type": "datetime", "required": false, "description": "Timestamp when cancelled" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "supplierAccount", "targetTable": "supplierAccount", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "currency", "targetTable": "currency", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "payableControlAccount", "targetTable": "account", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "correctionOf", "targetTable": "accountPayableDocument", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "correctionDocuments", "targetTable": "accountPayableDocument", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "attachments", "targetTable": "accountPayableDocumentAttachment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "holds", "targetTable": "accountPayableDocumentHold", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "lines", "targetTable": "accountPayableDocumentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "dueScheduleLines", "targetTable": "accountPayableDueScheduleLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "accountPayableDocumentAttachment": { "name": "accountPayableDocumentAttachment", "pluralForm": "accountPayableDocumentAttachments", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "accountPayableDocumentId", "type": "uuid", "required": true, "description": "Account payable document that owns this attachment", "relation": { "fieldName": "accountPayableDocument", "targetTable": "accountPayableDocument" } }, { "name": "originalFileName", "type": "string", "required": true, "description": "Original name of the uploaded file" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "accountPayableDocument", "targetTable": "accountPayableDocument", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "accountPayableDocumentHold": { "name": "accountPayableDocumentHold", "pluralForm": "accountPayableDocumentHolds", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "accountPayableDocumentId", "type": "uuid", "required": true, "description": "Foreign key to the held AccountPayableDocument", "relation": { "fieldName": "accountPayableDocument", "targetTable": "accountPayableDocument" } }, { "name": "accountPayableDocumentLineId", "type": "uuid", "required": false, "description": "Optional foreign key to the held AccountPayableDocumentLine; null is document scoped", "relation": { "fieldName": "accountPayableDocumentLine", "targetTable": "accountPayableDocumentLine" } }, { "name": "reasonCode", "type": "enum", "required": true, "description": "Reason the payment hold was placed", "enumValues": [ "INVOICE_UNIT_DIFFERS_FROM_PURCHASE_ORDER_UNIT", "INVOICE_UNIT_PRICE_DIFFERS_FROM_PURCHASE_ORDER_UNIT_PRICE", "INVOICE_QUANTITY_EXCEEDS_ORDERED_QUANTITY", "INVOICE_QUANTITY_EXCEEDS_RECEIVED_QUANTITY" ] }, { "name": "source", "type": "enum", "required": true, "description": "Whether the hold was produced by matching (SYSTEM) or placed by a user (MANUAL)", "enumValues": [ "SYSTEM", "MANUAL" ] }, { "name": "releasedAt", "type": "datetime", "required": false, "description": "Timestamp when the hold was released; null while the hold is active" }, { "name": "releaseReason", "type": "string", "required": false, "description": "Optional reason recorded on release" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "accountPayableDocument", "targetTable": "accountPayableDocument", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accountPayableDocumentLine", "targetTable": "accountPayableDocumentLine", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "accountPayableDocumentLine": { "name": "accountPayableDocumentLine", "pluralForm": "accountPayableDocumentLines", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "accountPayableDocumentId", "type": "uuid", "required": true, "description": "Foreign key to AccountPayableDocument", "relation": { "fieldName": "accountPayableDocument", "targetTable": "accountPayableDocument" } }, { "name": "netAmount", "type": "number", "required": true, "description": "Positive line amount excluding tax" }, { "name": "taxAmount", "type": "number", "required": false, "description": "Optional tax amount" }, { "name": "grossAmount", "type": "number", "required": true, "description": "Positive line amount including tax" }, { "name": "correctionOfLineId", "type": "uuid", "required": false, "description": "Optional self-reference to the posted AP document line being corrected", "relation": { "fieldName": "self", "targetTable": "self" } }, { "name": "correctionType", "type": "enum", "required": false, "description": "Optional correction type for line-level AP corrections", "enumValues": [ "PRICE", "QUANTITY", "AMOUNT" ] }, { "name": "quantity", "type": "number", "required": false, "description": "Supplier invoice quantity; required only for PURCHASE_ORDER source lines" }, { "name": "unitPrice", "type": "number", "required": false, "description": "Supplier invoice unit price; required only for PURCHASE_ORDER source lines" }, { "name": "matchedPurchaseOrderUnitPrice", "type": "number", "required": false, "description": "Order unit price captured at matching; the base price variances are measured against" }, { "name": "unitId", "type": "uuid", "required": false, "description": "Supplier invoice unit of measure; required only for PURCHASE_ORDER source lines", "relation": { "fieldName": "unit", "targetTable": "unit" } }, { "name": "description", "type": "string", "required": false, "description": "Optional line description" }, { "name": "sourceType", "type": "enum", "required": false, "description": "Optional AP line source type; PURCHASE_ORDER means purchaseOrderLineId is set", "enumValues": [ "PURCHASE_ORDER" ] }, { "name": "purchaseOrderLineId", "type": "uuid", "required": false, "description": "Foreign key to PurchaseOrderLine when sourceType is PURCHASE_ORDER", "relation": { "fieldName": "purchaseOrderLine", "targetTable": "purchaseOrderLine" } }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "accountPayableDocument", "targetTable": "accountPayableDocument", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "correctionOfLine", "targetTable": "accountPayableDocumentLine", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "unit", "targetTable": "unit", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "purchaseOrderLine", "targetTable": "purchaseOrderLine", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "distributions", "targetTable": "accountPayableDistributionLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "holds", "targetTable": "accountPayableDocumentHold", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "correctionLines", "targetTable": "accountPayableDocumentLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "accountPayableDueScheduleLine": { "name": "accountPayableDueScheduleLine", "pluralForm": "accountPayableDueScheduleLines", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "accountPayableDocumentId", "type": "uuid", "required": true, "description": "Foreign key to AccountPayableDocument", "relation": { "fieldName": "accountPayableDocument", "targetTable": "accountPayableDocument" } }, { "name": "dueDate", "type": "date", "required": true, "description": "Date when this payable installment is due" }, { "name": "amount", "type": "number", "required": true, "description": "Positive due amount in transaction currency" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "accountPayableDocument", "targetTable": "accountPayableDocument", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accountPayableSettlements", "targetTable": "accountPayableSettlement", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "accountPayableSettlement": { "name": "accountPayableSettlement", "pluralForm": "accountPayableSettlements", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "sourceType", "type": "enum", "required": true, "description": "Settlement source discriminator", "enumValues": [ "OUTGOING_PAYMENT" ] }, { "name": "outgoingPaymentId", "type": "uuid", "required": true, "description": "Source FK when sourceType is OUTGOING_PAYMENT", "relation": { "fieldName": "outgoingPayment", "targetTable": "outgoingPayment" } }, { "name": "accountPayableDueScheduleLineId", "type": "uuid", "required": true, "description": "Foreign key to the settled AccountPayableDueScheduleLine", "relation": { "fieldName": "accountPayableDueScheduleLine", "targetTable": "accountPayableDueScheduleLine" } }, { "name": "settledAmount", "type": "number", "required": true, "description": "Positive amount allocated to the due schedule line" }, { "name": "reversalOfSettlementId", "type": "uuid", "required": false, "description": "Optional self-reference to the original settlement being reversed", "relation": { "fieldName": "self", "targetTable": "self" } }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "outgoingPayment", "targetTable": "outgoingPayment", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accountPayableDueScheduleLine", "targetTable": "accountPayableDueScheduleLine", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "reversalOfSettlement", "targetTable": "accountPayableSettlement", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "reversals", "targetTable": "accountPayableSettlement", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "accountReceivableDistributionLine": { "name": "accountReceivableDistributionLine", "pluralForm": "accountReceivableDistributionLines", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "accountReceivableDocumentLineId", "type": "uuid", "required": true, "description": "Foreign key to the commercial AR document line", "relation": { "fieldName": "accountReceivableDocumentLine", "targetTable": "accountReceivableDocumentLine" } }, { "name": "correctionOfDistributionLineId", "type": "uuid", "required": false, "description": "Optional self-reference to a corrected AR distribution", "relation": { "fieldName": "self", "targetTable": "self" } }, { "name": "accountId", "type": "uuid", "required": true, "description": "Foreign key to posting Account", "relation": { "fieldName": "account", "targetTable": "account" } }, { "name": "amount", "type": "number", "required": true, "description": "Positive distribution amount" }, { "name": "description", "type": "string", "required": false, "description": "Optional distribution description" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "accountReceivableDocumentLine", "targetTable": "accountReceivableDocumentLine", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "correctionOfDistributionLine", "targetTable": "accountReceivableDistributionLine", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "account", "targetTable": "account", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "correctionDistributions", "targetTable": "accountReceivableDistributionLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "accountReceivableDocument": { "name": "accountReceivableDocument", "pluralForm": "accountReceivableDocuments", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "customerAccountId", "type": "uuid", "required": true, "description": "Foreign key to CustomerAccount", "relation": { "fieldName": "customerAccount", "targetTable": "customerAccount" } }, { "name": "currencyId", "type": "uuid", "required": true, "description": "Foreign key to transaction Currency", "relation": { "fieldName": "currency", "targetTable": "currency" } }, { "name": "receivableControlAccountId", "type": "uuid", "required": true, "description": "Foreign key to AR control Account", "relation": { "fieldName": "receivableControlAccount", "targetTable": "account" } }, { "name": "documentType", "type": "enum", "required": true, "description": "AR document type", "enumValues": [ "INVOICE", "CREDIT_MEMO" ] }, { "name": "correctionOfId", "type": "uuid", "required": false, "description": "Optional self-reference to the posted AR document being corrected", "relation": { "fieldName": "self", "targetTable": "self" } }, { "name": "documentNumber", "type": "string", "required": true, "description": "System-generated AR invoice number" }, { "name": "externalDocumentNumber", "type": "string", "required": false, "description": "Optional external customer document number" }, { "name": "documentDate", "type": "date", "required": true, "description": "Customer invoice date" }, { "name": "postingDate", "type": "date", "required": true, "description": "Accounting posting date" }, { "name": "totalAmount", "type": "number", "required": true, "description": "Invoice gross amount in transaction currency" }, { "name": "description", "type": "string", "required": false, "description": "Optional invoice description" }, { "name": "status", "type": "enum", "required": true, "description": "AR invoice lifecycle status", "enumValues": [ "DRAFT", "REGISTERED", "POSTED", "CANCELLED" ] }, { "name": "registeredAt", "type": "datetime", "required": false, "description": "Timestamp when registered" }, { "name": "postedAt", "type": "datetime", "required": false, "description": "Timestamp when posted" }, { "name": "cancelledAt", "type": "datetime", "required": false, "description": "Timestamp when cancelled" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "customerAccount", "targetTable": "customerAccount", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "currency", "targetTable": "currency", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "receivableControlAccount", "targetTable": "account", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "correctionOf", "targetTable": "accountReceivableDocument", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "correctionDocuments", "targetTable": "accountReceivableDocument", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "lines", "targetTable": "accountReceivableDocumentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "dueScheduleLines", "targetTable": "accountReceivableDueScheduleLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "accountReceivableDocumentLine": { "name": "accountReceivableDocumentLine", "pluralForm": "accountReceivableDocumentLines", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "accountReceivableDocumentId", "type": "uuid", "required": true, "description": "Foreign key to AccountReceivableDocument", "relation": { "fieldName": "accountReceivableDocument", "targetTable": "accountReceivableDocument" } }, { "name": "netAmount", "type": "number", "required": true, "description": "Positive line amount excluding tax" }, { "name": "taxAmount", "type": "number", "required": false, "description": "Optional tax amount" }, { "name": "grossAmount", "type": "number", "required": true, "description": "Positive line amount including tax" }, { "name": "correctionOfLineId", "type": "uuid", "required": false, "description": "Optional self-reference to the posted AR line being corrected", "relation": { "fieldName": "self", "targetTable": "self" } }, { "name": "correctionType", "type": "enum", "required": false, "description": "Optional correction type", "enumValues": [ "PRICE", "QUANTITY", "AMOUNT" ] }, { "name": "sourceType", "type": "enum", "required": false, "description": "Optional AR line source type", "enumValues": [ "SALES_ORDER" ] }, { "name": "salesOrderLineId", "type": "uuid", "required": false, "description": "Foreign key to SalesOrderLine for SALES_ORDER source lines", "relation": { "fieldName": "salesOrderLine", "targetTable": "salesOrderLine" } }, { "name": "quantity", "type": "number", "required": false, "description": "Invoice quantity; required for SALES_ORDER source lines" }, { "name": "unitPrice", "type": "number", "required": false, "description": "Invoice unit price; required for SALES_ORDER source lines" }, { "name": "unitId", "type": "uuid", "required": false, "description": "Customer invoice quantity unit", "relation": { "fieldName": "unit", "targetTable": "unit" } }, { "name": "description", "type": "string", "required": false, "description": "Optional line description" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "accountReceivableDocument", "targetTable": "accountReceivableDocument", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "correctionOfLine", "targetTable": "accountReceivableDocumentLine", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "salesOrderLine", "targetTable": "salesOrderLine", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "unit", "targetTable": "unit", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "distributions", "targetTable": "accountReceivableDistributionLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "correctionLines", "targetTable": "accountReceivableDocumentLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "accountReceivableDueScheduleLine": { "name": "accountReceivableDueScheduleLine", "pluralForm": "accountReceivableDueScheduleLines", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "accountReceivableDocumentId", "type": "uuid", "required": true, "description": "Foreign key to AccountReceivableDocument", "relation": { "fieldName": "accountReceivableDocument", "targetTable": "accountReceivableDocument" } }, { "name": "dueDate", "type": "date", "required": true, "description": "Date when the customer installment is due" }, { "name": "amount", "type": "number", "required": true, "description": "Positive due amount in transaction currency" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "accountReceivableDocument", "targetTable": "accountReceivableDocument", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accountReceivableSettlements", "targetTable": "accountReceivableSettlement", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "accountReceivableSettlement": { "name": "accountReceivableSettlement", "pluralForm": "accountReceivableSettlements", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "sourceType", "type": "enum", "required": true, "description": "Settlement source discriminator", "enumValues": [ "INCOMING_PAYMENT" ] }, { "name": "incomingPaymentId", "type": "uuid", "required": true, "description": "Source FK when sourceType is INCOMING_PAYMENT", "relation": { "fieldName": "incomingPayment", "targetTable": "incomingPayment" } }, { "name": "accountReceivableDueScheduleLineId", "type": "uuid", "required": true, "description": "Foreign key to the settled AccountReceivableDueScheduleLine", "relation": { "fieldName": "accountReceivableDueScheduleLine", "targetTable": "accountReceivableDueScheduleLine" } }, { "name": "settledAmount", "type": "number", "required": true, "description": "Positive amount allocated to the due schedule line" }, { "name": "reversalOfSettlementId", "type": "uuid", "required": false, "description": "Optional self-reference to the original settlement being reversed", "relation": { "fieldName": "self", "targetTable": "self" } }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "incomingPayment", "targetTable": "incomingPayment", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accountReceivableDueScheduleLine", "targetTable": "accountReceivableDueScheduleLine", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "reversalOfSettlement", "targetTable": "accountReceivableSettlement", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "reversals", "targetTable": "accountReceivableSettlement", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "accountingPeriod": { "name": "accountingPeriod", "pluralForm": "accountingPeriods", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "fiscalYearId", "type": "uuid", "required": true, "description": "Foreign key to FiscalYear", "relation": { "fieldName": "fiscalYear", "targetTable": "fiscalYear" } }, { "name": "name", "type": "string", "required": true, "description": "Period name" }, { "name": "startDate", "type": "date", "required": true, "description": "Period start date" }, { "name": "endDate", "type": "date", "required": true, "description": "Period end date" }, { "name": "periodType", "type": "enum", "required": true, "description": "Period type", "enumValues": [ "OPERATING", "ADJUSTMENT" ] }, { "name": "status", "type": "enum", "required": true, "description": "Accounting period lifecycle status", "enumValues": [ "NEVER_OPENED", "OPEN", "CLOSED", "PERMANENTLY_CLOSED" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "fiscalYear", "targetTable": "fiscalYear", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "journalEntries", "targetTable": "journalEntry", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "acquisitionCostAdjustment": { "name": "acquisitionCostAdjustment", "pluralForm": "acquisitionCostAdjustments", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "sourceType", "type": "enum", "required": true, "description": "Cause-document type", "enumValues": [ "ACCOUNT_PAYABLE_DOCUMENT", "PURCHASE_ORDER_REVISION", "INVENTORY_LEDGER" ] }, { "name": "sourceId", "type": "uuid", "required": true, "description": "Cause-document ID. Generic reference, not a typed foreign key." }, { "name": "sourceLineId", "type": "uuid", "required": false, "description": "Cause-document line ID. Generic reference, not a typed foreign key." }, { "name": "purchaseOrderId", "type": "uuid", "required": true, "description": "Purchase order whose receipt layers were adjusted. Generic reference, not a typed foreign key." }, { "name": "purchaseOrderLineId", "type": "uuid", "required": true, "description": "Purchase order line whose receipt layers were adjusted. Generic reference, not a typed foreign key." }, { "name": "amount", "type": "number", "required": true, "description": "Signed amount this row adds to the order line's variance; the sum over the line is the amount to distribute. Zero on receipt-triggered rows." }, { "name": "kind", "type": "enum", "required": true, "description": "Register row kind", "enumValues": [ "INVOICE_PRICE", "ORDER_PRICE", "REDISTRIBUTION" ] }, { "name": "effectiveDate", "type": "date", "required": true, "description": "Business effective date of the adjustment posting" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" } ], "relations": [ { "fieldName": "allocations", "targetTable": "acquisitionCostAdjustmentAllocation", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "acquisitionCostAdjustmentAllocation": { "name": "acquisitionCostAdjustmentAllocation", "pluralForm": "acquisitionCostAdjustmentAllocations", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "acquisitionCostAdjustmentId", "type": "uuid", "required": true, "description": "Adjustment this allocation belongs to", "relation": { "fieldName": "acquisitionCostAdjustment", "targetTable": "acquisitionCostAdjustment" } }, { "name": "costLayerId", "type": "uuid", "required": true, "description": "Cost layer this adjustment adjusts", "relation": { "fieldName": "costLayer", "targetTable": "costLayer" } }, { "name": "amount", "type": "number", "required": true, "description": "Signed variance amount this adjustment distributed to the cost layer" }, { "name": "varianceKind", "type": "enum", "required": true, "description": "Variance kind this allocation distributes", "enumValues": [ "INVOICE_PRICE", "ORDER_PRICE" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" } ], "relations": [ { "fieldName": "acquisitionCostAdjustment", "targetTable": "acquisitionCostAdjustment", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "costLayer", "targetTable": "costLayer", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "averageCost": { "name": "averageCost", "pluralForm": "averageCosts", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "sequence", "type": "number", "required": true, "description": "1-based event position within the item and company" }, { "name": "eventType", "type": "enum", "required": true, "description": "Costed event that produced this row", "enumValues": [ "RECEIPT", "ISSUE", "COST_ADJUSTMENT" ] }, { "name": "quantityBefore", "type": "number", "required": true, "description": "On-hand quantity before this event" }, { "name": "unitCostBefore", "type": "number", "required": true, "description": "Moving average unit cost before this event" }, { "name": "quantity", "type": "number", "required": true, "description": "Signed quantity the event moved; positive for receipts, negative for issues" }, { "name": "unitCost", "type": "number", "required": false, "description": "Unit cost the event was valued at; null for COST_ADJUSTMENT events" }, { "name": "quantityAfter", "type": "number", "required": true, "description": "On-hand quantity after this event" }, { "name": "unitCostAfter", "type": "number", "required": true, "description": "Moving average unit cost after this event" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" } ], "relations": [ { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "businessPartner": { "name": "businessPartner", "pluralForm": "businessPartners", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "name", "type": "string", "required": true, "description": "Business partner display name" }, { "name": "type", "type": "enum", "required": true, "description": "Partner type: ORGANIZATION or INDIVIDUAL", "enumValues": [ "ORGANIZATION", "INDIVIDUAL" ] }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status", "enumValues": [ "ACTIVE", "INACTIVE" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "customerAccounts", "targetTable": "customerAccount", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "partnerAddresses", "targetTable": "partnerAddress", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "partnerBankAccounts", "targetTable": "partnerBankAccount", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "supplierAccounts", "targetTable": "supplierAccount", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "company": { "name": "company", "pluralForm": "companies", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "legalName", "type": "string", "required": true, "description": "Legal name of the company" }, { "name": "taxId", "type": "string", "required": false, "description": "Tax identification number" }, { "name": "registrationNumber", "type": "string", "required": false, "description": "Company registration number" }, { "name": "baseCurrencyId", "type": "uuid", "required": false, "description": "Foreign key to Currency from primitives module", "relation": { "fieldName": "baseCurrency", "targetTable": "currency" } }, { "name": "street", "type": "string", "required": false, "description": "Registered address street" }, { "name": "city", "type": "string", "required": false, "description": "Registered address city" }, { "name": "state", "type": "string", "required": false, "description": "Registered address state/province" }, { "name": "postalCode", "type": "string", "required": false, "description": "Registered address postal code" }, { "name": "country", "type": "string", "required": false, "description": "Registered address country" }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status", "enumValues": [ "DRAFT", "ACTIVE", "INACTIVE" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "baseCurrency", "targetTable": "currency", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accounts", "targetTable": "account", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "accountPayableDocuments", "targetTable": "accountPayableDocument", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "accountReceivableDocuments", "targetTable": "accountReceivableDocument", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "accountingPeriods", "targetTable": "accountingPeriod", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "averageCosts", "targetTable": "averageCost", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "costLayers", "targetTable": "costLayer", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "customerAccounts", "targetTable": "customerAccount", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "departments", "targetTable": "department", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "fiscalYears", "targetTable": "fiscalYear", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "incomingPayments", "targetTable": "incomingPayment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "invoiceToleranceConfigs", "targetTable": "invoiceToleranceConfig", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "itemValuations", "targetTable": "itemValuation", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "journalEntries", "targetTable": "journalEntry", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "outgoingPayments", "targetTable": "outgoingPayment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "purchaseOrders", "targetTable": "purchaseOrder", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "salesOrders", "targetTable": "salesOrder", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "sites", "targetTable": "site", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "supplierAccounts", "targetTable": "supplierAccount", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "valuationPolicies", "targetTable": "valuationPolicy", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "costLayer": { "name": "costLayer", "pluralForm": "costLayers", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "ledgerEntryId", "type": "uuid", "required": true, "description": "IN ledger entry that received the stock this layer tracks", "relation": { "fieldName": "ledgerEntry", "targetTable": "inventoryLedger" } }, { "name": "effectiveDate", "type": "date", "required": true, "description": "Movement date of the receipt; determines the FIFO consumption order" }, { "name": "quantity", "type": "number", "required": true, "description": "Received quantity" }, { "name": "remainingQuantity", "type": "number", "required": true, "description": "Unconsumed quantity" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "ledgerEntry", "targetTable": "inventoryLedger", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "acquisitionCostAdjustmentAllocations", "targetTable": "acquisitionCostAdjustmentAllocation", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "consumptions", "targetTable": "costLayerConsumption", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "fifoCosts", "targetTable": "fifoCost", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "costLayerConsumption": { "name": "costLayerConsumption", "pluralForm": "costLayerConsumptions", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "costLayerId", "type": "uuid", "required": true, "description": "Layer the issue consumed from", "relation": { "fieldName": "costLayer", "targetTable": "costLayer" } }, { "name": "ledgerEntryId", "type": "uuid", "required": true, "description": "OUT ledger entry that consumed the layer", "relation": { "fieldName": "ledgerEntry", "targetTable": "inventoryLedger" } }, { "name": "quantity", "type": "number", "required": true, "description": "Quantity consumed from the layer" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" } ], "relations": [ { "fieldName": "costLayer", "targetTable": "costLayer", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "ledgerEntry", "targetTable": "inventoryLedger", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "currency": { "name": "currency", "pluralForm": "currencies", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "code", "type": "string", "required": true, "description": "ISO 4217 currency code (e.g., USD)" }, { "name": "name", "type": "string", "required": true, "description": "Currency display name (e.g., US Dollar)" }, { "name": "symbol", "type": "string", "required": true, "description": "Currency symbol (e.g., $)" }, { "name": "decimalPlaces", "type": "number", "required": true, "description": "Number of decimal places (0-4)" }, { "name": "isBaseCurrency", "type": "boolean", "required": true, "description": "Whether this is the base currency" }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status", "enumValues": [ "ACTIVE", "INACTIVE" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "accountPayableDocuments", "targetTable": "accountPayableDocument", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "accountReceivableDocuments", "targetTable": "accountReceivableDocument", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "companies", "targetTable": "company", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "preferredCustomerAccounts", "targetTable": "customerAccount", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "incomingPayments", "targetTable": "incomingPayment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "outgoingPayments", "targetTable": "outgoingPayment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "partnerBankAccounts", "targetTable": "partnerBankAccount", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "purchaseOrders", "targetTable": "purchaseOrder", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "salesOrders", "targetTable": "salesOrder", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "preferredSupplierAccounts", "targetTable": "supplierAccount", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "customerAccount": { "name": "customerAccount", "pluralForm": "customerAccounts", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "partnerId", "type": "uuid", "required": true, "description": "Foreign key to BusinessPartner", "relation": { "fieldName": "partner", "targetTable": "businessPartner" } }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "code", "type": "string", "required": true, "description": "Customer account code unique within the company" }, { "name": "name", "type": "string", "required": true, "description": "Customer account display name" }, { "name": "preferredCurrencyId", "type": "uuid", "required": false, "description": "Optional preferred transaction currency", "relation": { "fieldName": "preferredCurrency", "targetTable": "currency" } }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status", "enumValues": [ "ACTIVE", "INACTIVE" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "partner", "targetTable": "businessPartner", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "preferredCurrency", "targetTable": "currency", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accountReceivableDocuments", "targetTable": "accountReceivableDocument", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "addressUsages", "targetTable": "customerAddressUsage", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "bankAccountUsages", "targetTable": "customerBankAccountUsage", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "incomingPayments", "targetTable": "incomingPayment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "salesOrders", "targetTable": "salesOrder", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "customerAddressUsage": { "name": "customerAddressUsage", "pluralForm": "customerAddressUsages", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "accountId", "type": "uuid", "required": true, "description": "Foreign key to CustomerAccount", "relation": { "fieldName": "account", "targetTable": "customerAccount" } }, { "name": "addressId", "type": "uuid", "required": true, "description": "Foreign key to reusable PartnerAddress", "relation": { "fieldName": "address", "targetTable": "partnerAddress" } }, { "name": "purpose", "type": "enum", "required": true, "description": "Customer address purpose: BILL_TO or SHIP_TO", "enumValues": [ "BILL_TO", "SHIP_TO" ] }, { "name": "isDefault", "type": "boolean", "required": true, "description": "Whether this is the default address for the account purpose" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "account", "targetTable": "customerAccount", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "address", "targetTable": "partnerAddress", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "customerBankAccountUsage": { "name": "customerBankAccountUsage", "pluralForm": "customerBankAccountUsages", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "accountId", "type": "uuid", "required": true, "description": "Foreign key to CustomerAccount", "relation": { "fieldName": "account", "targetTable": "customerAccount" } }, { "name": "bankAccountId", "type": "uuid", "required": true, "description": "Foreign key to reusable PartnerBankAccount", "relation": { "fieldName": "bankAccount", "targetTable": "partnerBankAccount" } }, { "name": "purpose", "type": "enum", "required": true, "description": "Customer bank account purpose: RECEIPT or REFUND", "enumValues": [ "RECEIPT", "REFUND" ] }, { "name": "isDefault", "type": "boolean", "required": true, "description": "Whether this is the default bank account for the account purpose" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "account", "targetTable": "customerAccount", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "bankAccount", "targetTable": "partnerBankAccount", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "department": { "name": "department", "pluralForm": "departments", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "code", "type": "string", "required": true, "description": "Department code, unique per company" }, { "name": "name", "type": "string", "required": true, "description": "Department display name" }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "parentDepartmentId", "type": "uuid", "required": false, "description": "Foreign key to parent Department for hierarchy", "relation": { "fieldName": "self", "targetTable": "self" } }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status", "enumValues": [ "ACTIVE", "INACTIVE" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "parentDepartment", "targetTable": "department", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "childDepartments", "targetTable": "department", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "exchangeRate": { "name": "exchangeRate", "pluralForm": "exchangeRates", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "sourceCurrencyId", "type": "uuid", "required": true, "description": "Foreign key to source Currency" }, { "name": "targetCurrencyId", "type": "uuid", "required": true, "description": "Foreign key to target Currency" }, { "name": "rate", "type": "number", "required": true, "description": "Conversion rate (source x rate = target)" }, { "name": "effectiveDate", "type": "date", "required": true, "description": "Date from which this rate applies" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ] }, "fifoCost": { "name": "fifoCost", "pluralForm": "fifoCosts", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "costLayerId", "type": "uuid", "required": true, "description": "Layer this cost row prices", "relation": { "fieldName": "costLayer", "targetTable": "costLayer" } }, { "name": "version", "type": "number", "required": true, "description": "1-based price version within the layer" }, { "name": "unitCost", "type": "number", "required": true, "description": "Unit cost of the layer as of this version" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" } ], "relations": [ { "fieldName": "costLayer", "targetTable": "costLayer", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "fiscalYear": { "name": "fiscalYear", "pluralForm": "fiscalYears", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "name", "type": "string", "required": true, "description": "Display name of the fiscal year" }, { "name": "startDate", "type": "date", "required": true, "description": "Start date of the fiscal year" }, { "name": "endDate", "type": "date", "required": true, "description": "End date of the fiscal year" }, { "name": "yearEndCloseExecuted", "type": "boolean", "required": true, "description": "Tracks whether year-end close has been run for this fiscal year" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accountingPeriods", "targetTable": "accountingPeriod", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "inboundShipment": { "name": "inboundShipment", "pluralForm": "inboundShipments", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "status", "type": "enum", "required": true, "description": "Posting status. DRAFT does not affect stock; POSTED does.", "enumValues": [ "DRAFT", "CANCELLED", "POSTED" ] }, { "name": "effectiveDate", "type": "date", "required": true, "description": "Business effective date used for inventory reporting and period controls" }, { "name": "postedAt", "type": "datetime", "required": false, "description": "System timestamp when stock effects were posted" }, { "name": "docNumber", "type": "string", "required": true, "description": "Auto-generated human-readable inbound-shipment document number (e.g. ISH-10000000)" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "lines", "targetTable": "inboundShipmentLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "inboundShipmentLine": { "name": "inboundShipmentLine", "pluralForm": "inboundShipmentLines", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "inboundShipmentId", "type": "uuid", "required": true, "description": "Foreign key to InboundShipment header", "relation": { "fieldName": "inboundShipment", "targetTable": "inboundShipment" } }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "quantity", "type": "number", "required": true, "description": "Business/input quantity in unitId" }, { "name": "unitId", "type": "uuid", "required": true, "description": "Business/input Unit for quantity", "relation": { "fieldName": "unit", "targetTable": "unit" } }, { "name": "primaryQuantity", "type": "number", "required": true, "description": "Quantity converted to the item's primary unit at line creation time" }, { "name": "primaryUnitId", "type": "uuid", "required": true, "description": "Snapshot of the item's primary Unit at shipment line creation time", "relation": { "fieldName": "primaryUnit", "targetTable": "unit" } }, { "name": "unitConversionRate", "type": "number", "required": true, "description": "Multiplier used to convert quantity into primaryQuantity" }, { "name": "unitCost", "type": "number", "required": false, "description": "Primary-unit cost derived from the purchase-order line price at posting" }, { "name": "storageLocationId", "type": "uuid", "required": true, "description": "Storage location affected by this line", "relation": { "fieldName": "storageLocation", "targetTable": "storageLocation" } }, { "name": "stockType", "type": "enum", "required": true, "description": "Stock type affected by this line", "enumValues": [ "AVAILABLE", "BLOCKED", "IN_TRANSIT" ] }, { "name": "sourceDocumentType", "type": "enum", "required": true, "description": "Source document type. Generic reference, not a typed foreign key.", "enumValues": [ "PURCHASE_ORDER" ] }, { "name": "sourceDocumentId", "type": "uuid", "required": true, "description": "Source document ID. Generic reference, not a typed foreign key." }, { "name": "sourceLineId", "type": "uuid", "required": true, "description": "Source document line ID. Generic reference, not a typed foreign key." }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "inboundShipment", "targetTable": "inboundShipment", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "unit", "targetTable": "unit", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "primaryUnit", "targetTable": "unit", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "storageLocation", "targetTable": "storageLocation", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "incomingPayment": { "name": "incomingPayment", "pluralForm": "incomingPayments", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "customerAccountId", "type": "uuid", "required": true, "description": "Foreign key to CustomerAccount", "relation": { "fieldName": "customerAccount", "targetTable": "customerAccount" } }, { "name": "currencyId", "type": "uuid", "required": true, "description": "Foreign key to payment Currency", "relation": { "fieldName": "currency", "targetTable": "currency" } }, { "name": "paymentAccountId", "type": "uuid", "required": true, "description": "Foreign key to the company-scoped payment counterpart Account", "relation": { "fieldName": "paymentAccount", "targetTable": "account" } }, { "name": "paymentDate", "type": "date", "required": true, "description": "Incoming payment document date" }, { "name": "totalAmount", "type": "number", "required": true, "description": "Incoming payment total in transaction currency" }, { "name": "status", "type": "enum", "required": true, "description": "Incoming payment lifecycle status", "enumValues": [ "DRAFT", "POSTED", "CANCELLED", "REVERSED" ] }, { "name": "postedAt", "type": "datetime", "required": false, "description": "Timestamp when the payment was posted" }, { "name": "reversalDate", "type": "date", "required": false, "description": "Accounting date on which the posted payment was reversed" }, { "name": "reversedAt", "type": "datetime", "required": false, "description": "Timestamp when the posted payment was reversed" }, { "name": "cancelledAt", "type": "datetime", "required": false, "description": "Timestamp when the draft payment was cancelled" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "customerAccount", "targetTable": "customerAccount", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "currency", "targetTable": "currency", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "paymentAccount", "targetTable": "account", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "settlements", "targetTable": "accountReceivableSettlement", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "inventoryLedger": { "name": "inventoryLedger", "pluralForm": "inventoryLedgers", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "sourceType", "type": "enum", "required": true, "description": "Cause-document type: INBOUND_SHIPMENT, OUTBOUND_SHIPMENT, TRANSFER_ORDER, or STOCK_ADJUSTMENT", "enumValues": [ "INBOUND_SHIPMENT", "OUTBOUND_SHIPMENT", "TRANSFER_ORDER", "STOCK_ADJUSTMENT" ] }, { "name": "sourceId", "type": "uuid", "required": true, "description": "Cause-document ID. Generic reference, not a typed foreign key." }, { "name": "sourceLineId", "type": "uuid", "required": false, "description": "Cause-document line ID. Generic reference, not a typed foreign key." }, { "name": "orderDocumentType", "type": "enum", "required": false, "description": "Ordering-document type this movement fulfills", "enumValues": [ "PURCHASE_ORDER", "SALES_ORDER", "TRANSFER_ORDER" ] }, { "name": "orderDocumentId", "type": "uuid", "required": false, "description": "Ordering-document ID" }, { "name": "orderDocumentLineId", "type": "uuid", "required": false, "description": "Ordering-document line ID" }, { "name": "direction", "type": "enum", "required": true, "description": "Whether the row increases or decreases stock", "enumValues": [ "IN", "OUT" ] }, { "name": "action", "type": "enum", "required": true, "description": "What the movement changes; with sourceType and direction it determines the costing treatment", "enumValues": [ "QUANTITY_CHANGE", "TRANSFER", "STOCK_TYPE_CHANGE" ] }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "storageLocationId", "type": "uuid", "required": true, "description": "The storage location where the stock change occurs", "relation": { "fieldName": "storageLocation", "targetTable": "storageLocation" } }, { "name": "stockType", "type": "enum", "required": true, "description": "Stock type affected by this ledger row: AVAILABLE, BLOCKED, or IN_TRANSIT", "enumValues": [ "AVAILABLE", "BLOCKED", "IN_TRANSIT" ] }, { "name": "quantity", "type": "number", "required": true, "description": "Quantity in the item's primary unit (always positive); direction determines the stock effect" }, { "name": "executedAt", "type": "datetime", "required": true, "description": "Timestamp when the stock change was executed" }, { "name": "effectiveDate", "type": "date", "required": true, "description": "Business effective date used for inventory reporting and period controls" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" } ], "relations": [ { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "storageLocation", "targetTable": "storageLocation", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "costLayers", "targetTable": "costLayer", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "costLayerConsumptions", "targetTable": "costLayerConsumption", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "inventorySupplyPlan": { "name": "inventorySupplyPlan", "pluralForm": "inventorySupplyPlans", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "sourceType", "type": "enum", "required": true, "description": "Source document type: PURCHASE_ORDER or TRANSFER_ORDER", "enumValues": [ "PURCHASE_ORDER", "TRANSFER_ORDER" ] }, { "name": "sourceId", "type": "uuid", "required": true, "description": "ID of the source document (e.g., PurchaseOrder.id). Generic reference; not a typed foreign key." }, { "name": "sourceLineId", "type": "uuid", "required": true, "description": "ID of the source supply line (e.g., PurchaseOrderLine.id). In the standard modules this is the unique source unit for one supply projection." }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "siteId", "type": "uuid", "required": true, "description": "Destination site for the expected supply", "relation": { "fieldName": "site", "targetTable": "site" } }, { "name": "expectedQuantity", "type": "number", "required": true, "description": "Committed expected quantity for this ATP supply slice" }, { "name": "receivedQuantity", "type": "number", "required": true, "description": "Cumulative quantity already received against this source line; open quantity is derived as expectedQuantity minus receivedQuantity" }, { "name": "status", "type": "enum", "required": true, "description": "Projection lifecycle status: OPEN while expected supply remains, CLOSED when it no longer contributes open supply", "enumValues": [ "OPEN", "CLOSED" ] }, { "name": "expectedDate", "type": "date", "required": true, "description": "Latest expected receipt date from the source line" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "site", "targetTable": "site", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "invoiceToleranceConfig": { "name": "invoiceToleranceConfig", "pluralForm": "invoiceToleranceConfigs", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "supplierAccountId", "type": "uuid", "required": true, "description": "Foreign key to SupplierAccount", "relation": { "fieldName": "supplierAccount", "targetTable": "supplierAccount" } }, { "name": "quantityAbsoluteTolerance", "type": "number", "required": false, "description": "Optional absolute quantity tolerance for AP invoice checks" }, { "name": "quantityPercentageTolerance", "type": "number", "required": false, "description": "Optional percentage quantity tolerance for AP invoice checks; 0.05 means 5%" }, { "name": "unitPriceAbsoluteTolerance", "type": "number", "required": false, "description": "Optional absolute unit price tolerance for AP invoice checks" }, { "name": "unitPricePercentageTolerance", "type": "number", "required": false, "description": "Optional percentage unit price tolerance for AP invoice checks; 0.05 means 5%" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "supplierAccount", "targetTable": "supplierAccount", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "item": { "name": "item", "pluralForm": "items", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "sku", "type": "string", "required": true, "description": "Globally unique, immutable SKU identifier" }, { "name": "name", "type": "string", "required": true, "description": "Item display name" }, { "name": "barcode", "type": "string", "required": false, "description": "Optional unique barcode" }, { "name": "unitId", "type": "uuid", "required": true, "description": "Foreign key to Unit", "relation": { "fieldName": "unit", "targetTable": "unit" } }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status: DRAFT, ACTIVE, INACTIVE", "enumValues": [ "DRAFT", "ACTIVE", "INACTIVE" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "unit", "targetTable": "unit", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "averageCosts", "targetTable": "averageCost", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "costLayers", "targetTable": "costLayer", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "inboundShipmentLines", "targetTable": "inboundShipmentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "inventoryLedgerEntries", "targetTable": "inventoryLedger", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "inventorySupplyPlans", "targetTable": "inventorySupplyPlan", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "itemTaxonomyAssignments", "targetTable": "itemTaxonomyAssignment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "itemValuations", "targetTable": "itemValuation", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "outboundShipmentLines", "targetTable": "outboundShipmentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "productVariants", "targetTable": "productVariant", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "purchaseItem", "targetTable": "purchaseItem", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "purchaseOrderLines", "targetTable": "purchaseOrderLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "salesItem", "targetTable": "salesItem", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "salesOrderLines", "targetTable": "salesOrderLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "standardCosts", "targetTable": "standardCost", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "stockAdjustmentLines", "targetTable": "stockAdjustmentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "stockLevels", "targetTable": "stockLevel", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "stockReservations", "targetTable": "stockReservation", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "transferOrderLines", "targetTable": "transferOrderLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "itemTaxonomyAssignment": { "name": "itemTaxonomyAssignment", "pluralForm": "itemTaxonomyAssignments", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "taxonomyNodeId", "type": "uuid", "required": true, "description": "Foreign key to TaxonomyNode", "relation": { "fieldName": "taxonomyNode", "targetTable": "taxonomyNode" } }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "taxonomyNode", "targetTable": "taxonomyNode", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "itemValuation": { "name": "itemValuation", "pluralForm": "itemValuations", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "valuationPolicyId", "type": "uuid", "required": true, "description": "Foreign key to ValuationPolicy", "relation": { "fieldName": "valuationPolicy", "targetTable": "valuationPolicy" } }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "valuationPolicy", "targetTable": "valuationPolicy", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "journalEntry": { "name": "journalEntry", "pluralForm": "journalEntries", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "accountingPeriodId", "type": "uuid", "required": true, "description": "Foreign key to AccountingPeriod", "relation": { "fieldName": "accountingPeriod", "targetTable": "accountingPeriod" } }, { "name": "entryDate", "type": "date", "required": true, "description": "Journal entry document date" }, { "name": "status", "type": "enum", "required": true, "description": "Journal entry lifecycle status (DRAFT, CANCELLED, POSTED)", "enumValues": [ "DRAFT", "CANCELLED", "POSTED" ] }, { "name": "description", "type": "string", "required": false, "description": "Optional description of the journal entry" }, { "name": "sourceDocumentType", "type": "enum", "required": false, "description": "Optional source document type that produced the accounting entry", "enumValues": [ "ACCOUNT_PAYABLE_DOCUMENT", "OUTGOING_PAYMENT", "INCOMING_PAYMENT", "BANK_RECONCILIATION", "SALES_INVOICE", "INVENTORY_LEDGER", "STANDARD_COST_REVISION", "ACQUISITION_COST_ADJUSTMENT", "PRODUCTION_ORDER", "YEAR_END_CLOSE" ] }, { "name": "sourceDocumentId", "type": "uuid", "required": false, "description": "Optional source document ID. Generic reference, not a typed foreign key." }, { "name": "reversalOfId", "type": "uuid", "required": false, "description": "Optional self-referencing FK to the original JournalEntry being reversed", "relation": { "fieldName": "self", "targetTable": "self" } }, { "name": "postedAt", "type": "datetime", "required": false, "description": "Timestamp when the entry was posted" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accountingPeriod", "targetTable": "accountingPeriod", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "reversalOf", "targetTable": "journalEntry", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "reversals", "targetTable": "journalEntry", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "lines", "targetTable": "journalLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "journalLine": { "name": "journalLine", "pluralForm": "journalLines", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "journalEntryId", "type": "uuid", "required": true, "description": "Foreign key to JournalEntry", "relation": { "fieldName": "journalEntry", "targetTable": "journalEntry" } }, { "name": "accountId", "type": "uuid", "required": true, "description": "Foreign key to Account (coa-management)", "relation": { "fieldName": "account", "targetTable": "account" } }, { "name": "debitAmount", "type": "number", "required": false, "description": "Debit amount (mutually exclusive with creditAmount)" }, { "name": "creditAmount", "type": "number", "required": false, "description": "Credit amount (mutually exclusive with debitAmount)" }, { "name": "description", "type": "string", "required": false, "description": "Optional line-level description" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "journalEntry", "targetTable": "journalEntry", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "account", "targetTable": "account", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "outboundShipment": { "name": "outboundShipment", "pluralForm": "outboundShipments", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "status", "type": "enum", "required": true, "description": "Posting status. DRAFT does not affect stock; POSTED does.", "enumValues": [ "DRAFT", "CANCELLED", "POSTED" ] }, { "name": "effectiveDate", "type": "date", "required": true, "description": "Business effective date used for inventory reporting and period controls" }, { "name": "postedAt", "type": "datetime", "required": false, "description": "System timestamp when stock effects were posted" }, { "name": "docNumber", "type": "string", "required": true, "description": "Auto-generated human-readable outbound-shipment document number (e.g. OSH-10000000)" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "lines", "targetTable": "outboundShipmentLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "outboundShipmentLine": { "name": "outboundShipmentLine", "pluralForm": "outboundShipmentLines", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "outboundShipmentId", "type": "uuid", "required": true, "description": "Foreign key to OutboundShipment header", "relation": { "fieldName": "outboundShipment", "targetTable": "outboundShipment" } }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "quantity", "type": "number", "required": true, "description": "Business/input quantity in unitId" }, { "name": "unitId", "type": "uuid", "required": true, "description": "Business/input Unit for quantity", "relation": { "fieldName": "unit", "targetTable": "unit" } }, { "name": "primaryQuantity", "type": "number", "required": true, "description": "Quantity converted to the item's primary unit at line creation time" }, { "name": "primaryUnitId", "type": "uuid", "required": true, "description": "Snapshot of the item's primary Unit at shipment line creation time", "relation": { "fieldName": "primaryUnit", "targetTable": "unit" } }, { "name": "unitConversionRate", "type": "number", "required": true, "description": "Multiplier used to convert quantity into primaryQuantity" }, { "name": "storageLocationId", "type": "uuid", "required": true, "description": "Storage location affected by this line", "relation": { "fieldName": "storageLocation", "targetTable": "storageLocation" } }, { "name": "stockType", "type": "enum", "required": true, "description": "Stock type affected by this line", "enumValues": [ "AVAILABLE", "BLOCKED", "IN_TRANSIT" ] }, { "name": "sourceDocumentType", "type": "enum", "required": true, "description": "Source document type. Generic reference, not a typed foreign key.", "enumValues": [ "SALES_ORDER" ] }, { "name": "sourceDocumentId", "type": "uuid", "required": true, "description": "Source document ID. Generic reference, not a typed foreign key." }, { "name": "sourceLineId", "type": "uuid", "required": true, "description": "Source document line ID. Generic reference, not a typed foreign key." }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "outboundShipment", "targetTable": "outboundShipment", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "unit", "targetTable": "unit", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "primaryUnit", "targetTable": "unit", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "storageLocation", "targetTable": "storageLocation", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "outgoingPayment": { "name": "outgoingPayment", "pluralForm": "outgoingPayments", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "supplierAccountId", "type": "uuid", "required": true, "description": "Foreign key to SupplierAccount", "relation": { "fieldName": "supplierAccount", "targetTable": "supplierAccount" } }, { "name": "currencyId", "type": "uuid", "required": true, "description": "Foreign key to payment Currency", "relation": { "fieldName": "currency", "targetTable": "currency" } }, { "name": "paymentAccountId", "type": "uuid", "required": true, "description": "Foreign key to the company-scoped payment counterpart Account", "relation": { "fieldName": "paymentAccount", "targetTable": "account" } }, { "name": "paymentDate", "type": "date", "required": true, "description": "Outgoing payment document date" }, { "name": "totalAmount", "type": "number", "required": true, "description": "Outgoing payment total in transaction currency" }, { "name": "status", "type": "enum", "required": true, "description": "Outgoing payment lifecycle status", "enumValues": [ "DRAFT", "POSTED", "CANCELLED", "REVERSED" ] }, { "name": "postedAt", "type": "datetime", "required": false, "description": "Timestamp when the payment was posted" }, { "name": "reversalDate", "type": "date", "required": false, "description": "Accounting date on which the posted payment was reversed" }, { "name": "reversedAt", "type": "datetime", "required": false, "description": "Timestamp when the posted payment was reversed" }, { "name": "cancelledAt", "type": "datetime", "required": false, "description": "Timestamp when the draft payment was cancelled" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "supplierAccount", "targetTable": "supplierAccount", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "currency", "targetTable": "currency", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "paymentAccount", "targetTable": "account", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "settlements", "targetTable": "accountPayableSettlement", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "partnerAddress": { "name": "partnerAddress", "pluralForm": "partnerAddresses", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "partnerId", "type": "uuid", "required": true, "description": "Foreign key to BusinessPartner", "relation": { "fieldName": "partner", "targetTable": "businessPartner" } }, { "name": "active", "type": "boolean", "required": true, "description": "Whether the address is available for new usages" }, { "name": "line1", "type": "string", "required": true, "description": "Address line 1" }, { "name": "line2", "type": "string", "required": false, "description": "Address line 2" }, { "name": "city", "type": "string", "required": true, "description": "City" }, { "name": "state", "type": "string", "required": false, "description": "State or province" }, { "name": "postalCode", "type": "string", "required": true, "description": "Postal code" }, { "name": "country", "type": "string", "required": true, "description": "ISO 3166-1 alpha-2 country code" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "partner", "targetTable": "businessPartner", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "customerAddressUsages", "targetTable": "customerAddressUsage", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "supplierAddressUsages", "targetTable": "supplierAddressUsage", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "partnerBankAccount": { "name": "partnerBankAccount", "pluralForm": "partnerBankAccounts", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "partnerId", "type": "uuid", "required": true, "description": "Foreign key to BusinessPartner", "relation": { "fieldName": "partner", "targetTable": "businessPartner" } }, { "name": "active", "type": "boolean", "required": true, "description": "Whether the bank account is available for new usages" }, { "name": "bankName", "type": "string", "required": true, "description": "Name of the bank" }, { "name": "accountHolderName", "type": "string", "required": true, "description": "Name of the account holder" }, { "name": "accountNumber", "type": "string", "required": true, "description": "Bank account number" }, { "name": "routingNumber", "type": "string", "required": false, "description": "Domestic routing number" }, { "name": "currencyId", "type": "uuid", "required": true, "description": "Foreign key to Currency from primitives module", "relation": { "fieldName": "currency", "targetTable": "currency" } }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "partner", "targetTable": "businessPartner", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "currency", "targetTable": "currency", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "customerBankAccountUsages", "targetTable": "customerBankAccountUsage", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "supplierBankAccountUsages", "targetTable": "supplierBankAccountUsage", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "product": { "name": "product", "pluralForm": "products", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "code", "type": "string", "required": true, "description": "Globally unique, immutable product code" }, { "name": "name", "type": "string", "required": true, "description": "Product display name" }, { "name": "description", "type": "string", "required": false, "description": "Optional product description" }, { "name": "unitId", "type": "uuid", "required": true, "description": "Foreign key to Unit", "relation": { "fieldName": "unit", "targetTable": "unit" } }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status", "enumValues": [ "DRAFT", "ACTIVE", "ARCHIVED" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "unit", "targetTable": "unit", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "productAttributeAssignments", "targetTable": "productAttributeAssignment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "productCategoryAssignments", "targetTable": "productCategoryAssignment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "productVariants", "targetTable": "productVariant", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "productAttribute": { "name": "productAttribute", "pluralForm": "productAttributes", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "code", "type": "string", "required": true, "description": "Globally unique, immutable attribute code" }, { "name": "name", "type": "string", "required": true, "description": "Attribute display name" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "productAttributeAssignments", "targetTable": "productAttributeAssignment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "productAttributeValues", "targetTable": "productAttributeValue", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "productAttributeAssignment": { "name": "productAttributeAssignment", "pluralForm": "productAttributeAssignments", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "productId", "type": "uuid", "required": true, "description": "Foreign key to Product", "relation": { "fieldName": "product", "targetTable": "product" } }, { "name": "attributeId", "type": "uuid", "required": true, "description": "Foreign key to ProductAttribute", "relation": { "fieldName": "attribute", "targetTable": "productAttribute" } }, { "name": "valueId", "type": "uuid", "required": true, "description": "Foreign key to ProductAttributeValue", "relation": { "fieldName": "value", "targetTable": "productAttributeValue" } }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "product", "targetTable": "product", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "attribute", "targetTable": "productAttribute", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "value", "targetTable": "productAttributeValue", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "productAttributeValue": { "name": "productAttributeValue", "pluralForm": "productAttributeValues", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "attributeId", "type": "uuid", "required": true, "description": "Foreign key to ProductAttribute", "relation": { "fieldName": "attribute", "targetTable": "productAttribute" } }, { "name": "label", "type": "string", "required": true, "description": "Display label for this value option" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "attribute", "targetTable": "productAttribute", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "productAttributeAssignments", "targetTable": "productAttributeAssignment", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "productCategory": { "name": "productCategory", "pluralForm": "productCategories", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "code", "type": "string", "required": true, "description": "Globally unique, immutable category code" }, { "name": "name", "type": "string", "required": true, "description": "Category display name" }, { "name": "parentId", "type": "uuid", "required": false, "description": "Parent category ID (null for root categories)", "relation": { "fieldName": "self", "targetTable": "self" } }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "parent", "targetTable": "productCategory", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "children", "targetTable": "productCategory", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "productCategoryAssignments", "targetTable": "productCategoryAssignment", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "productCategoryAssignment": { "name": "productCategoryAssignment", "pluralForm": "productCategoryAssignments", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "productId", "type": "uuid", "required": true, "description": "Foreign key to Product", "relation": { "fieldName": "product", "targetTable": "product" } }, { "name": "categoryId", "type": "uuid", "required": true, "description": "Foreign key to ProductCategory", "relation": { "fieldName": "category", "targetTable": "productCategory" } }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "product", "targetTable": "product", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "category", "targetTable": "productCategory", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "productVariant": { "name": "productVariant", "pluralForm": "productVariants", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "productId", "type": "uuid", "required": true, "description": "Foreign key to Product", "relation": { "fieldName": "product", "targetTable": "product" } }, { "name": "axisValueKey", "type": "string", "required": true, "description": "Canonical key derived from sorted axis value IDs (e.g., value-1|value-3)" }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to generated Item in item-management", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "product", "targetTable": "product", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "purchaseItem": { "name": "purchaseItem", "pluralForm": "purchaseItems", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to the item-management Item this record adopts", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "requiresPhysicalReceipt", "type": "boolean", "required": true, "description": "Whether ordering this item is expected to produce a goods receipt" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "purchaseOrder": { "name": "purchaseOrder", "pluralForm": "purchaseOrders", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "supplierAccountId", "type": "uuid", "required": true, "description": "Foreign key to SupplierAccount", "relation": { "fieldName": "supplierAccount", "targetTable": "supplierAccount" } }, { "name": "currencyId", "type": "uuid", "required": true, "description": "Transaction currency, which must be the company's base currency", "relation": { "fieldName": "currency", "targetTable": "currency" } }, { "name": "receivingSiteId", "type": "uuid", "required": false, "description": "Default receiving Site for the order", "relation": { "fieldName": "receivingSite", "targetTable": "site" } }, { "name": "orderStatus", "type": "enum", "required": true, "description": "Purchase-order lifecycle status", "enumValues": [ "DRAFT", "SUBMITTED", "ORDERED", "CANCELLED", "CLOSED" ] }, { "name": "receiptStatus", "type": "enum", "required": false, "description": "Receipt fulfillment status — set on approval", "enumValues": [ "NOT_RECEIVED", "PARTIALLY_RECEIVED", "RECEIVED" ] }, { "name": "billingStatus", "type": "enum", "required": false, "description": "Billing fulfillment status — set on approval", "enumValues": [ "NOT_BILLED", "PARTIALLY_BILLED", "BILLED" ] }, { "name": "orderDate", "type": "date", "required": true, "description": "Purchase-order document date" }, { "name": "externalSupplierOrderReference", "type": "string", "required": false, "description": "Optional external supplier order reference" }, { "name": "supplierSnapshotName", "type": "string", "required": false, "description": "Snapshotted supplier display name at order time" }, { "name": "rejectionReason", "type": "string", "required": false, "description": "Latest rejection reason" }, { "name": "closeReason", "type": "string", "required": false, "description": "Close or write-off reason" }, { "name": "docNumber", "type": "string", "required": true, "description": "Auto-generated human-readable document number (e.g. PO-10000000)" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "supplierAccount", "targetTable": "supplierAccount", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "currency", "targetTable": "currency", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "receivingSite", "targetTable": "site", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "lines", "targetTable": "purchaseOrderLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "revisions", "targetTable": "purchaseOrderRevision", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "purchaseOrderFieldChange": { "name": "purchaseOrderFieldChange", "pluralForm": "purchaseOrderFieldChanges", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "revisionId", "type": "uuid", "required": true, "description": "Foreign key to PurchaseOrderRevision (envelope)", "relation": { "fieldName": "revision", "targetTable": "purchaseOrderRevision" } }, { "name": "recordType", "type": "enum", "required": true, "description": "Whether the changed field belongs to the PO header or one of its lines", "enumValues": [ "HEADER", "LINE" ] }, { "name": "recordId", "type": "uuid", "required": true, "description": "ID of the affected PurchaseOrder or PurchaseOrderLine (no FK constraint)" }, { "name": "fieldName", "type": "string", "required": true, "description": "Name of the changed field, including app-extension fields" }, { "name": "changeKind", "type": "enum", "required": true, "description": "ADDED, MODIFIED, or REMOVED — describes the nature of the change", "enumValues": [ "ADDED", "MODIFIED", "REMOVED" ] }, { "name": "oldValue", "type": "string", "required": false, "description": "Pre-change value as a string; null for ADDED entries" }, { "name": "newValue", "type": "string", "required": false, "description": "Post-change value as a string; null for REMOVED entries" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "revision", "targetTable": "purchaseOrderRevision", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "purchaseOrderLine": { "name": "purchaseOrderLine", "pluralForm": "purchaseOrderLines", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "purchaseOrderId", "type": "uuid", "required": true, "description": "Foreign key to PurchaseOrder", "relation": { "fieldName": "purchaseOrder", "targetTable": "purchaseOrder" } }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "itemSnapshotName", "type": "string", "required": false, "description": "Snapshotted item display name at order time" }, { "name": "itemSnapshotSku", "type": "string", "required": false, "description": "Snapshotted item SKU at order time" }, { "name": "quantity", "type": "number", "required": true, "description": "Ordered quantity" }, { "name": "unitPrice", "type": "number", "required": true, "description": "Unit price" }, { "name": "unitId", "type": "uuid", "required": true, "description": "Unit of measure", "relation": { "fieldName": "unit", "targetTable": "unit" } }, { "name": "receivingSiteId", "type": "uuid", "required": false, "description": "Optional line-level receiving Site", "relation": { "fieldName": "receivingSite", "targetTable": "site" } }, { "name": "requiresPhysicalReceipt", "type": "boolean", "required": true, "description": "Whether physical receipt is required for this line" }, { "name": "billedQuantity", "type": "number", "required": true, "description": "Current billed quantity projection from external billing sources" }, { "name": "receivedQuantity", "type": "number", "required": true, "description": "Current received quantity projection from inbound shipments" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "purchaseOrder", "targetTable": "purchaseOrder", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "unit", "targetTable": "unit", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "receivingSite", "targetTable": "site", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accountPayableDocumentLines", "targetTable": "accountPayableDocumentLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "purchaseOrderRevision": { "name": "purchaseOrderRevision", "pluralForm": "purchaseOrderRevisions", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "purchaseOrderId", "type": "uuid", "required": true, "description": "Foreign key to PurchaseOrder", "relation": { "fieldName": "purchaseOrder", "targetTable": "purchaseOrder" } }, { "name": "revisionNumber", "type": "number", "required": true, "description": "Sequential revision number per purchase order, starting at 1 on the first amendment" }, { "name": "reason", "type": "string", "required": false, "description": "Free-text amendment reason" }, { "name": "amendedByUserId", "type": "uuid", "required": false, "description": "User who initiated this amendment. Set explicitly by amendOrderedPurchaseOrder from CommandContext. Optional for backward compatibility with rows written before this column existed.", "relation": { "fieldName": "amendedByUser", "targetTable": "user" } }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "purchaseOrder", "targetTable": "purchaseOrder", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "amendedByUser", "targetTable": "user", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "fieldChanges", "targetTable": "purchaseOrderFieldChange", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "role": { "name": "role", "pluralForm": "roles", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "name", "type": "string", "required": true, "description": "Role name (unique identifier)" }, { "name": "description", "type": "string", "required": false, "description": "Optional description of what this role represents" }, { "name": "status", "type": "enum", "required": true, "description": "Role status (ACTIVE or INACTIVE)", "enumValues": [ "ACTIVE", "INACTIVE" ] }, { "name": "permissions", "type": "array", "required": false, "description": "Array of permission keys in module:scope:command format", "arrayItemType": "string" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "userRoles", "targetTable": "userRole", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "salesItem": { "name": "salesItem", "pluralForm": "salesItems", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to the item-management Item this record adopts", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "requiresPhysicalFulfillment", "type": "boolean", "required": true, "description": "Whether selling this item is expected to produce an outbound shipment" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "salesOrder": { "name": "salesOrder", "pluralForm": "salesOrders", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "customerAccountId", "type": "uuid", "required": true, "description": "Foreign key to CustomerAccount", "relation": { "fieldName": "customerAccount", "targetTable": "customerAccount" } }, { "name": "currencyId", "type": "uuid", "required": true, "description": "Transaction currency, which must be the company's base currency", "relation": { "fieldName": "currency", "targetTable": "currency" } }, { "name": "orderStatus", "type": "enum", "required": true, "description": "Sales-order document-control lifecycle status", "enumValues": [ "DRAFT", "SUBMITTED", "CONFIRMED", "CANCELLED", "CLOSED" ] }, { "name": "fulfillmentStatus", "type": "enum", "required": false, "description": "Fulfillment progress derived from fulfilled quantities", "enumValues": [ "NOT_FULFILLED", "PARTIALLY_FULFILLED", "FULFILLED" ] }, { "name": "billingStatus", "type": "enum", "required": false, "description": "Billing progress derived from billed quantities", "enumValues": [ "NOT_BILLED", "PARTIALLY_BILLED", "BILLED" ] }, { "name": "orderDate", "type": "date", "required": true, "description": "Order date" }, { "name": "shippingAddress", "type": "string", "required": false, "description": "Shipping address" }, { "name": "billingAddress", "type": "string", "required": false, "description": "Billing address" }, { "name": "rejectionReason", "type": "string", "required": false, "description": "Latest rejection reason" }, { "name": "closeReason", "type": "string", "required": false, "description": "Close reason" }, { "name": "docNumber", "type": "string", "required": true, "description": "Auto-generated human-readable document number (e.g. SO-10000000)" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "customerAccount", "targetTable": "customerAccount", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "currency", "targetTable": "currency", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "lines", "targetTable": "salesOrderLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "revisions", "targetTable": "salesOrderRevision", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "salesOrderFieldChange": { "name": "salesOrderFieldChange", "pluralForm": "salesOrderFieldChanges", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "revisionId", "type": "uuid", "required": true, "description": "Foreign key to SalesOrderRevision (envelope)", "relation": { "fieldName": "revision", "targetTable": "salesOrderRevision" } }, { "name": "recordType", "type": "enum", "required": true, "description": "Whether the changed field belongs to the SO header or one of its lines", "enumValues": [ "HEADER", "LINE" ] }, { "name": "recordId", "type": "uuid", "required": true, "description": "ID of the affected SalesOrder or SalesOrderLine (no FK constraint)" }, { "name": "fieldName", "type": "string", "required": true, "description": "Name of the changed field, including app-extension fields" }, { "name": "changeKind", "type": "enum", "required": true, "description": "ADDED, MODIFIED, or REMOVED — describes the nature of the change", "enumValues": [ "ADDED", "MODIFIED", "REMOVED" ] }, { "name": "oldValue", "type": "string", "required": false, "description": "Pre-change value as a string; null for ADDED entries" }, { "name": "newValue", "type": "string", "required": false, "description": "Post-change value as a string; null for REMOVED entries" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "revision", "targetTable": "salesOrderRevision", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "salesOrderLine": { "name": "salesOrderLine", "pluralForm": "salesOrderLines", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "salesOrderId", "type": "uuid", "required": true, "description": "Foreign key to SalesOrder", "relation": { "fieldName": "salesOrder", "targetTable": "salesOrder" } }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "description", "type": "string", "required": false, "description": "Optional line description" }, { "name": "quantity", "type": "number", "required": true, "description": "Ordered quantity" }, { "name": "unitPrice", "type": "number", "required": true, "description": "Unit price" }, { "name": "unitId", "type": "uuid", "required": false, "description": "Optional unit", "relation": { "fieldName": "unit", "targetTable": "unit" } }, { "name": "requiresPhysicalFulfillment", "type": "boolean", "required": true, "description": "Whether physical shipment is required" }, { "name": "fulfilledQuantity", "type": "number", "required": true, "description": "Cumulative fulfilled-quantity projection from outbound shipments" }, { "name": "billedQuantity", "type": "number", "required": true, "description": "Cumulative billed-quantity projection from receivables" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "salesOrder", "targetTable": "salesOrder", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "unit", "targetTable": "unit", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accountReceivableDocumentLines", "targetTable": "accountReceivableDocumentLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "salesOrderRevision": { "name": "salesOrderRevision", "pluralForm": "salesOrderRevisions", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "salesOrderId", "type": "uuid", "required": true, "description": "Foreign key to SalesOrder", "relation": { "fieldName": "salesOrder", "targetTable": "salesOrder" } }, { "name": "revisionNumber", "type": "number", "required": true, "description": "Sequential revision number per sales order, starting at 1 on the first amendment" }, { "name": "reason", "type": "string", "required": false, "description": "Free-text amendment reason" }, { "name": "amendedByUserId", "type": "uuid", "required": false, "description": "User who initiated this amendment. Set explicitly by amendConfirmedSalesOrder from CommandContext. Optional for backward compatibility with rows written before this column existed." }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "salesOrder", "targetTable": "salesOrder", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "fieldChanges", "targetTable": "salesOrderFieldChange", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "site": { "name": "site", "pluralForm": "sites", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "name", "type": "string", "required": true, "description": "Site display name" }, { "name": "type", "type": "string", "required": true, "description": "Site type: OFFICE, WAREHOUSE, STORE, FACTORY, DISTRIBUTION_CENTER" }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "street", "type": "string", "required": true, "description": "Site address street" }, { "name": "city", "type": "string", "required": true, "description": "Site address city" }, { "name": "state", "type": "string", "required": false, "description": "Site address state/province" }, { "name": "postalCode", "type": "string", "required": true, "description": "Site address postal code" }, { "name": "country", "type": "string", "required": true, "description": "Site address country code" }, { "name": "timezone", "type": "string", "required": true, "description": "IANA timezone identifier" }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status", "enumValues": [ "ACTIVE", "INACTIVE" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "inventorySupplyPlans", "targetTable": "inventorySupplyPlan", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "purchaseOrders", "targetTable": "purchaseOrder", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "purchaseOrderLines", "targetTable": "purchaseOrderLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "stockReservations", "targetTable": "stockReservation", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "storageLocations", "targetTable": "storageLocation", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "sourceTransferOrders", "targetTable": "transferOrder", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "destinationTransferOrders", "targetTable": "transferOrder", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "standardCost": { "name": "standardCost", "pluralForm": "standardCosts", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "version", "type": "number", "required": true, "description": "1-based generation number within the item" }, { "name": "unitCost", "type": "number", "required": true, "description": "Standard cost per unit, stored unrounded" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" } ], "relations": [ { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "stockAdjustment": { "name": "stockAdjustment", "pluralForm": "stockAdjustments", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "adjustmentType", "type": "enum", "required": true, "description": "Adjustment type: CORRECTION, SCRAP, BLOCK, UNBLOCK", "enumValues": [ "CORRECTION", "SCRAP", "BLOCK", "UNBLOCK" ] }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status: DRAFT, SUBMITTED, REJECTED, CONFIRMED, CANCELLED", "enumValues": [ "DRAFT", "SUBMITTED", "CANCELLED", "CONFIRMED", "REJECTED" ] }, { "name": "reasonCode", "type": "string", "required": true, "description": "Reason code explaining why the adjustment is being made" }, { "name": "adjustmentDate", "type": "date", "required": true, "description": "Business date when the stock adjustment should affect inventory" }, { "name": "rejectionReason", "type": "string", "required": false, "description": "Optional reason captured when the adjustment is rejected" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "stockAdjustmentLines", "targetTable": "stockAdjustmentLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "stockAdjustmentLine": { "name": "stockAdjustmentLine", "pluralForm": "stockAdjustmentLines", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "stockAdjustmentId", "type": "uuid", "required": true, "description": "Foreign key to StockAdjustment", "relation": { "fieldName": "stockAdjustment", "targetTable": "stockAdjustment" } }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "storageLocationId", "type": "uuid", "required": true, "description": "Storage location where the adjustment occurs", "relation": { "fieldName": "storageLocation", "targetTable": "storageLocation" } }, { "name": "quantity", "type": "number", "required": true, "description": "Quantity (always positive)" }, { "name": "adjustmentDirection", "type": "enum", "required": false, "description": "Direction of stock adjustment (required for CORRECTION): INCREASE or DECREASE", "enumValues": [ "INCREASE", "DECREASE" ] }, { "name": "fromStockCategory", "type": "enum", "required": false, "description": "Source stock category (only used for SCRAP): AVAILABLE (default) or BLOCKED for scrapping blocked stock", "enumValues": [ "AVAILABLE", "BLOCKED" ] }, { "name": "unitCost", "type": "number", "required": false, "description": "Cost per unit (optional)" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "stockAdjustment", "targetTable": "stockAdjustment", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "storageLocation", "targetTable": "storageLocation", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "stockLevel": { "name": "stockLevel", "pluralForm": "stockLevels", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "storageLocationId", "type": "uuid", "required": true, "description": "Foreign key to StorageLocation", "relation": { "fieldName": "storageLocation", "targetTable": "storageLocation" } }, { "name": "stockType", "type": "enum", "required": true, "description": "Current stock type: AVAILABLE, BLOCKED, or IN_TRANSIT", "enumValues": [ "AVAILABLE", "BLOCKED", "IN_TRANSIT" ] }, { "name": "quantity", "type": "number", "required": true, "description": "Current quantity in this stock type and dimension set" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "storageLocation", "targetTable": "storageLocation", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "stockReservation": { "name": "stockReservation", "pluralForm": "stockReservations", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "sourceType", "type": "enum", "required": true, "description": "Source document type: SALES_ORDER or TRANSFER_ORDER", "enumValues": [ "SALES_ORDER", "TRANSFER_ORDER" ] }, { "name": "sourceId", "type": "uuid", "required": true, "description": "ID of the source document. Generic reference; not a typed foreign key." }, { "name": "sourceLineId", "type": "uuid", "required": true, "description": "ID of the source-document line. Non-unique trace key; one source line may create multiple ATP reservation slices." }, { "name": "itemId", "type": "uuid", "required": true, "description": "Foreign key to Item", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "siteId", "type": "uuid", "required": true, "description": "Site where stock is reserved", "relation": { "fieldName": "site", "targetTable": "site" } }, { "name": "storageLocationId", "type": "uuid", "required": false, "description": "Optional allocated storage location within the site", "relation": { "fieldName": "storageLocation", "targetTable": "storageLocation" } }, { "name": "reservedQuantity", "type": "number", "required": true, "description": "Reserved demand quantity for this ATP reservation slice" }, { "name": "consumedQuantity", "type": "number", "required": true, "description": "Cumulative quantity consumed by shipment or issue against this reservation" }, { "name": "status", "type": "enum", "required": true, "description": "Reservation lifecycle status: OPEN while reservation demand remains, CLOSED when it no longer contributes to ATP", "enumValues": [ "OPEN", "CLOSED" ] }, { "name": "requiredDate", "type": "date", "required": true, "description": "Demand date from the source line" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "site", "targetTable": "site", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "storageLocation", "targetTable": "storageLocation", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "storageLocation": { "name": "storageLocation", "pluralForm": "storageLocations", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "name", "type": "string", "required": true, "description": "Location display name, unique within site" }, { "name": "code", "type": "string", "required": false, "description": "Location code, unique within site" }, { "name": "siteId", "type": "uuid", "required": true, "description": "Foreign key to Site", "relation": { "fieldName": "site", "targetTable": "site" } }, { "name": "storageCondition", "type": "string", "required": false, "description": "Storage condition: ambient, cold, hazardous" }, { "name": "capacity", "type": "number", "required": false, "description": "Optional storage capacity" }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status", "enumValues": [ "ACTIVE", "INACTIVE" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "site", "targetTable": "site", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "inboundShipmentLines", "targetTable": "inboundShipmentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "inventoryLedgerEntries", "targetTable": "inventoryLedger", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "outboundShipmentLines", "targetTable": "outboundShipmentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "stockAdjustmentLines", "targetTable": "stockAdjustmentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "stockLevels", "targetTable": "stockLevel", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "stockReservations", "targetTable": "stockReservation", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "supplierAccount": { "name": "supplierAccount", "pluralForm": "supplierAccounts", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "partnerId", "type": "uuid", "required": true, "description": "Foreign key to BusinessPartner", "relation": { "fieldName": "partner", "targetTable": "businessPartner" } }, { "name": "companyId", "type": "uuid", "required": true, "description": "Foreign key to Company", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "code", "type": "string", "required": true, "description": "Supplier account code unique within the company" }, { "name": "name", "type": "string", "required": true, "description": "Supplier account display name" }, { "name": "preferredCurrencyId", "type": "uuid", "required": false, "description": "Optional preferred transaction currency", "relation": { "fieldName": "preferredCurrency", "targetTable": "currency" } }, { "name": "defaultExpenseAccountId", "type": "uuid", "required": false, "description": "Default expense account for non-PO supplier invoices", "relation": { "fieldName": "defaultExpenseAccount", "targetTable": "account" } }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status", "enumValues": [ "ACTIVE", "INACTIVE" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "partner", "targetTable": "businessPartner", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "preferredCurrency", "targetTable": "currency", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "defaultExpenseAccount", "targetTable": "account", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accountPayableDocuments", "targetTable": "accountPayableDocument", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "invoiceToleranceConfigs", "targetTable": "invoiceToleranceConfig", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "outgoingPayments", "targetTable": "outgoingPayment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "purchaseOrders", "targetTable": "purchaseOrder", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "addressUsages", "targetTable": "supplierAddressUsage", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "bankAccountUsages", "targetTable": "supplierBankAccountUsage", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "supplierAddressUsage": { "name": "supplierAddressUsage", "pluralForm": "supplierAddressUsages", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "accountId", "type": "uuid", "required": true, "description": "Foreign key to SupplierAccount", "relation": { "fieldName": "account", "targetTable": "supplierAccount" } }, { "name": "addressId", "type": "uuid", "required": true, "description": "Foreign key to reusable PartnerAddress", "relation": { "fieldName": "address", "targetTable": "partnerAddress" } }, { "name": "purpose", "type": "enum", "required": true, "description": "Supplier address purpose: ORDER_FROM, REMIT_TO, SHIP_FROM, or RETURN_TO", "enumValues": [ "ORDER_FROM", "REMIT_TO", "SHIP_FROM", "RETURN_TO" ] }, { "name": "isDefault", "type": "boolean", "required": true, "description": "Whether this is the default address for the account purpose" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "account", "targetTable": "supplierAccount", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "address", "targetTable": "partnerAddress", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "supplierBankAccountUsage": { "name": "supplierBankAccountUsage", "pluralForm": "supplierBankAccountUsages", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "accountId", "type": "uuid", "required": true, "description": "Foreign key to SupplierAccount", "relation": { "fieldName": "account", "targetTable": "supplierAccount" } }, { "name": "bankAccountId", "type": "uuid", "required": true, "description": "Foreign key to reusable PartnerBankAccount", "relation": { "fieldName": "bankAccount", "targetTable": "partnerBankAccount" } }, { "name": "purpose", "type": "enum", "required": true, "description": "Supplier bank account purpose: PAYMENT or REFUND", "enumValues": [ "PAYMENT", "REFUND" ] }, { "name": "isDefault", "type": "boolean", "required": true, "description": "Whether this is the default bank account for the account purpose" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "account", "targetTable": "supplierAccount", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "bankAccount", "targetTable": "partnerBankAccount", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "taxonomyNode": { "name": "taxonomyNode", "pluralForm": "taxonomyNodes", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "code", "type": "string", "required": true, "description": "Globally unique, immutable node code" }, { "name": "name", "type": "string", "required": true, "description": "Display name for the taxonomy node" }, { "name": "parentId", "type": "uuid", "required": false, "description": "Parent node ID (null for root nodes)", "relation": { "fieldName": "self", "targetTable": "self" } }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "parent", "targetTable": "taxonomyNode", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "itemTaxonomyAssignments", "targetTable": "itemTaxonomyAssignment", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "children", "targetTable": "taxonomyNode", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "transferOrder": { "name": "transferOrder", "pluralForm": "transferOrders", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "sourceSiteId", "type": "uuid", "required": true, "description": "Site where the transfer order originates", "relation": { "fieldName": "sourceSite", "targetTable": "site" } }, { "name": "destinationSiteId", "type": "uuid", "required": true, "description": "Site where the transfer order is received", "relation": { "fieldName": "destinationSite", "targetTable": "site" } }, { "name": "plannedShipmentDate", "type": "date", "required": true, "description": "Planned source-site shipping date used for stock reservation demand" }, { "name": "expectedReceiptDate", "type": "date", "required": true, "description": "Planned destination-site receiving date used for inbound supply planning" }, { "name": "status", "type": "enum", "required": true, "description": "Document-control status: DRAFT, OPEN, or CLOSED", "enumValues": [ "DRAFT", "OPEN", "CLOSED" ] }, { "name": "closedAt", "type": "datetime", "required": false, "description": "Timestamp set when the order is closed" }, { "name": "docNumber", "type": "string", "required": true, "description": "Auto-generated human-readable document number (e.g. TO-10000000)" }, { "name": "notes", "type": "string", "required": false, "description": "Free-form operator notes." }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "sourceSite", "targetTable": "site", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "destinationSite", "targetTable": "site", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "lines", "targetTable": "transferOrderLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "transferOrderLine": { "name": "transferOrderLine", "pluralForm": "transferOrderLines", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "transferOrderId", "type": "uuid", "required": true, "description": "Foreign key to TransferOrder header", "relation": { "fieldName": "transferOrder", "targetTable": "transferOrder" } }, { "name": "itemId", "type": "uuid", "required": true, "description": "Item being transferred", "relation": { "fieldName": "item", "targetTable": "item" } }, { "name": "unitId", "type": "uuid", "required": true, "description": "Business unit for ordered, shipped, and received quantities", "relation": { "fieldName": "unit", "targetTable": "unit" } }, { "name": "orderedQuantity", "type": "number", "required": true, "description": "Quantity requested for transfer" }, { "name": "shippedQuantity", "type": "number", "required": true, "description": "Cumulative quantity shipped" }, { "name": "receivedQuantity", "type": "number", "required": true, "description": "Cumulative quantity received" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "transferOrder", "targetTable": "transferOrder", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "item", "targetTable": "item", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "unit", "targetTable": "unit", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "unit": { "name": "unit", "pluralForm": "units", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "name", "type": "string", "required": true, "description": "Unit display name (e.g., Kilogram)" }, { "name": "symbol", "type": "string", "required": true, "description": "Short symbol (e.g., kg)" }, { "name": "categoryId", "type": "uuid", "required": true, "description": "Foreign key to UoMCategory", "relation": { "fieldName": "category", "targetTable": "uoMCategory" } }, { "name": "conversionFactor", "type": "number", "required": true, "description": "Multiplier relative to reference unit (reference unit = 1.0)" }, { "name": "roundingPrecision", "type": "number", "required": true, "description": "Decimal places for rounding" }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status", "enumValues": [ "ACTIVE", "INACTIVE" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "category", "targetTable": "uoMCategory", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "accountPayableDocumentLines", "targetTable": "accountPayableDocumentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "accountReceivableDocumentLines", "targetTable": "accountReceivableDocumentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "inboundShipmentLines", "targetTable": "inboundShipmentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "primaryInboundShipmentLines", "targetTable": "inboundShipmentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "items", "targetTable": "item", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "outboundShipmentLines", "targetTable": "outboundShipmentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "primaryOutboundShipmentLines", "targetTable": "outboundShipmentLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "products", "targetTable": "product", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "purchaseOrderLines", "targetTable": "purchaseOrderLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "salesOrderLines", "targetTable": "salesOrderLine", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "transferOrderLines", "targetTable": "transferOrderLine", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "uoMCategory": { "name": "uoMCategory", "pluralForm": "uoMCategories", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "name", "type": "string", "required": true, "description": "Category name (e.g., Weight, Volume, Length)" }, { "name": "description", "type": "string", "required": false, "description": "Optional description of the category" }, { "name": "referenceUnitId", "type": "uuid", "required": false, "description": "Foreign key to the reference Unit for conversions" }, { "name": "status", "type": "enum", "required": true, "description": "Lifecycle status", "enumValues": [ "ACTIVE", "INACTIVE" ] }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "units", "targetTable": "unit", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "user": { "name": "user", "pluralForm": "users", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "email", "type": "string", "required": true, "description": "User email address (unique identifier)" }, { "name": "name", "type": "string", "required": true, "description": "User display name" }, { "name": "status", "type": "enum", "required": true, "description": "User status", "enumValues": [ "PENDING", "ACTIVE", "INACTIVE" ] }, { "name": "permissions", "type": "array", "required": false, "description": "Flattened permission keys from all assigned roles", "arrayItemType": "string" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "amendedPurchaseOrderRevisions", "targetTable": "purchaseOrderRevision", "relationType": "oneToMany", "foreignKeyField": "id" }, { "fieldName": "userRoles", "targetTable": "userRole", "relationType": "oneToMany", "foreignKeyField": "id" } ] }, "userRole": { "name": "userRole", "pluralForm": "userRoles", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "userId", "type": "uuid", "required": true, "description": "Foreign key to User", "relation": { "fieldName": "user", "targetTable": "user" } }, { "name": "roleId", "type": "uuid", "required": true, "description": "Foreign key to Role", "relation": { "fieldName": "role", "targetTable": "role" } }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "user", "targetTable": "user", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "role", "targetTable": "role", "relationType": "manyToOne", "foreignKeyField": "id" } ] }, "valuationPolicy": { "name": "valuationPolicy", "pluralForm": "valuationPolicies", "fields": [ { "name": "id", "type": "uuid", "required": true }, { "name": "name", "type": "string", "required": true, "description": "Policy display name" }, { "name": "companyId", "type": "uuid", "required": true, "description": "Company whose accounts and ledger the policy's costing posts to", "relation": { "fieldName": "company", "targetTable": "company" } }, { "name": "costingMethod", "type": "enum", "required": true, "description": "Costing method", "enumValues": [ "STANDARD", "FIFO", "AVERAGE" ] }, { "name": "defaultCompanyId", "type": "uuid", "required": false, "description": "Set to the owning company's id when this policy is the company's default, null otherwise; items without an ItemValuation record are auto-assigned the default on their first valuation-affecting movement in the company" }, { "name": "inventoryAccountId", "type": "uuid", "required": true, "description": "Posting account for the inventory asset side" }, { "name": "accrualAccountId", "type": "uuid", "required": true, "description": "Posting account for the uninvoiced-receipt accrual (GR/IR clearing)" }, { "name": "invoicePriceVarianceAccountId", "type": "uuid", "required": true, "description": "Posting account for the invoice-versus-order price difference (clearing)" }, { "name": "cogsAccountId", "type": "uuid", "required": true, "description": "Posting account for cost of goods sold on issues" }, { "name": "ppvAccountId", "type": "uuid", "required": true, "description": "Posting account for purchase price variance" }, { "name": "adjustmentAccountId", "type": "uuid", "required": true, "description": "Posting account for inventory gain/loss: correction adjustments and scrap write-offs" }, { "name": "standardCostAdjustmentAccountId", "type": "uuid", "required": true, "description": "Posting account for standard cost revision revaluations" }, { "name": "consumedPriceVarianceAccountId", "type": "uuid", "required": true, "description": "Posting account for acquisition price variances that cannot be restated to their consumption" }, { "name": "createdAt", "type": "datetime", "required": true, "description": "Record creation timestamp" }, { "name": "updatedAt", "type": "datetime", "required": true, "description": "Record update timestamp" } ], "relations": [ { "fieldName": "company", "targetTable": "company", "relationType": "manyToOne", "foreignKeyField": "id" }, { "fieldName": "itemValuations", "targetTable": "itemValuation", "relationType": "oneToMany", "foreignKeyField": "id" } ] } } as const; export const tableNames = [ "account", "accountPayableDistributionLine", "accountPayableDocument", "accountPayableDocumentAttachment", "accountPayableDocumentHold", "accountPayableDocumentLine", "accountPayableDueScheduleLine", "accountPayableSettlement", "accountReceivableDistributionLine", "accountReceivableDocument", "accountReceivableDocumentLine", "accountReceivableDueScheduleLine", "accountReceivableSettlement", "accountingPeriod", "acquisitionCostAdjustment", "acquisitionCostAdjustmentAllocation", "averageCost", "businessPartner", "company", "costLayer", "costLayerConsumption", "currency", "customerAccount", "customerAddressUsage", "customerBankAccountUsage", "department", "exchangeRate", "fifoCost", "fiscalYear", "inboundShipment", "inboundShipmentLine", "incomingPayment", "inventoryLedger", "inventorySupplyPlan", "invoiceToleranceConfig", "item", "itemTaxonomyAssignment", "itemValuation", "journalEntry", "journalLine", "outboundShipment", "outboundShipmentLine", "outgoingPayment", "partnerAddress", "partnerBankAccount", "product", "productAttribute", "productAttributeAssignment", "productAttributeValue", "productCategory", "productCategoryAssignment", "productVariant", "purchaseItem", "purchaseOrder", "purchaseOrderFieldChange", "purchaseOrderLine", "purchaseOrderRevision", "role", "salesItem", "salesOrder", "salesOrderFieldChange", "salesOrderLine", "salesOrderRevision", "site", "standardCost", "stockAdjustment", "stockAdjustmentLine", "stockLevel", "stockReservation", "storageLocation", "supplierAccount", "supplierAddressUsage", "supplierBankAccountUsage", "taxonomyNode", "transferOrder", "transferOrderLine", "unit", "uoMCategory", "user", "userRole", "valuationPolicy" ] as const; export type TableName = (typeof tableNames)[number];