@happyvertical/smrt-commerce 0.51.26 → 0.51.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +17 -1
- package/README.md +72 -3
- package/dist/billing/cycles.d.ts +31 -0
- package/dist/billing/cycles.d.ts.map +1 -0
- package/dist/billing/index.d.ts +1 -0
- package/dist/billing/index.d.ts.map +1 -1
- package/dist/billing/jobs.d.ts +4 -2
- package/dist/billing/jobs.d.ts.map +1 -1
- package/dist/billing/period-close.d.ts +18 -2
- package/dist/billing/period-close.d.ts.map +1 -1
- package/dist/billing/runtime.d.ts +22 -1
- package/dist/billing/runtime.d.ts.map +1 -1
- package/dist/billing/units.d.ts +2 -0
- package/dist/billing/units.d.ts.map +1 -1
- package/dist/chunks/{units--tTn2ps8.js → units-Bk_o7kRV.js} +5 -2
- package/dist/chunks/{units--tTn2ps8.js.map → units-Bk_o7kRV.js.map} +1 -1
- package/dist/index.js +419 -69
- package/dist/index.js.map +1 -1
- package/dist/manifest.json +83 -9
- package/dist/models/billing.d.ts +34 -5
- package/dist/models/billing.d.ts.map +1 -1
- package/dist/smrt-knowledge.json +25 -5
- package/package.json +9 -9
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as FulfillmentStatus, c as PaymentInstrumentStatus, d as PaymentStatus, f as PayoutStatus, i as CustomerType, l as PaymentIntentStatus, n as ContractType, o as FulfillmentType, p as VendorStatus, r as CustomerStatus, s as InvoiceStatus, t as ContractStatus, u as PaymentMethod } from "./chunks/types-CRnln577.js";
|
|
2
|
-
import { a as
|
|
2
|
+
import { a as majorToMinorUnits, c as tenantKey, i as isTenantId, n as currencyMinorUnitExponent, o as minorToMajorUnits, r as deterministicId, s as normalizeCurrency, t as canonicalTenantId } from "./chunks/units-Bk_o7kRV.js";
|
|
3
3
|
import { t as assertIntegerMinorUnits } from "./chunks/money-WSMvSgWq.js";
|
|
4
4
|
import { COMMERCE_MODULE_META, COMMERCE_UI_SLOTS } from "./ui.js";
|
|
5
5
|
import { ObjectRegistry, SmrtCollection, SmrtObject, crossPackageRef, field, foreignKey, smrt } from "@happyvertical/smrt-core";
|
|
@@ -21,7 +21,77 @@ var __exportAll = (all, no_symbols) => {
|
|
|
21
21
|
};
|
|
22
22
|
//#endregion
|
|
23
23
|
//#region src/__smrt-register__.ts
|
|
24
|
-
ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-commerce\",\"packageVersion\":\"0.51.26\",\"objects\":{\"@happyvertical/smrt-commerce:ContractCollection\":{\"name\":\"contractcollection\",\"className\":\"ContractCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:ContractCollection\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/ContractCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByCustomer\":{\"name\":\"findByCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findByVendor\":{\"name\":\"findByVendor\",\"async\":true,\"parameters\":[{\"name\":\"vendorId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findByType\":{\"name\":\"findByType\",\"async\":true,\"parameters\":[{\"name\":\"contractType\",\"type\":\"ContractType\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"ContractStatus\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findDrafts\":{\"name\":\"findDrafts\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findAccepted\":{\"name\":\"findAccepted\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findOverdue\":{\"name\":\"findOverdue\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findExpired\":{\"name\":\"findExpired\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Contract\",\"exportName\":\"ContractCollection\",\"collectionExportName\":\"ContractCollectionCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"9c2e9c49\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:ContractLineItemCollection\":{\"name\":\"contractlineitemcollection\",\"className\":\"ContractLineItemCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:ContractLineItemCollection\",\"collection\":\"contractlineitems\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/ContractLineItemCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByContract\":{\"name\":\"findByContract\",\"async\":true,\"parameters\":[{\"name\":\"contractId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<ContractLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<ContractLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<ContractLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<ContractLineItem[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"ContractLineItem\",\"exportName\":\"ContractLineItemCollection\",\"collectionExportName\":\"ContractLineItemCollectionCollection\",\"schema\":{\"tableName\":\"contract_line_items\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contract_line_items\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"quantity\\\" REAL DEFAULT 1,\\n \\\"unit_price\\\" INTEGER DEFAULT 0,\\n \\\"discount\\\" INTEGER DEFAULT 0,\\n \\\"tax_rate\\\" REAL DEFAULT 0,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"product_id\\\" UUID,\\n \\\"sku\\\" TEXT DEFAULT '',\\n \\\"start_date\\\" TIMESTAMP,\\n \\\"end_date\\\" TIMESTAMP,\\n \\\"billing_period\\\" TEXT DEFAULT '',\\n \\\"sort_order\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"quantity\":{\"type\":\"REAL\",\"notNull\":false,\"default\":1},\"unit_price\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"discount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_rate\":{\"type\":\"REAL\",\"notNull\":false,\"default\":0},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"product_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"sku\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"start_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"end_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"billing_period\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"sort_order\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0}},\"indexes\":[{\"name\":\"contract_line_items_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contract_line_items_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contract_line_items_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contract_line_items_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"contract_line_items_product_id_idx\",\"columns\":[\"product_id\"]}],\"version\":\"be2b46cd\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:CustomerCollection\":{\"name\":\"customercollection\",\"className\":\"CustomerCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:CustomerCollection\",\"collection\":\"customers\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/CustomerCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByProfile\":{\"name\":\"findByProfile\",\"async\":true,\"parameters\":[{\"name\":\"profileId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Customer[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Customer[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"CustomerStatus\",\"optional\":false}],\"returnType\":\"Promise<Customer[]>\",\"isStatic\":false,\"isPublic\":true},\"getOrCreateForProfile\":{\"name\":\"getOrCreateForProfile\",\"async\":true,\"parameters\":[{\"name\":\"profileId\",\"type\":\"string\",\"optional\":false},{\"name\":\"defaults\",\"type\":\"Partial<object>\",\"optional\":true,\"memberTypes\":[\"number\",\"string\"]}],\"returnType\":\"Promise<Customer>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Customer[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Customer[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Customer[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Customer\",\"exportName\":\"CustomerCollection\",\"collectionExportName\":\"CustomerCollectionCollection\",\"schema\":{\"tableName\":\"customers\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"customers\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"profile_id\\\" UUID,\\n \\\"credit_limit\\\" INTEGER DEFAULT 0,\\n \\\"payment_terms\\\" TEXT DEFAULT '',\\n \\\"tax_exempt\\\" BOOLEAN DEFAULT FALSE,\\n \\\"tax_id\\\" TEXT DEFAULT '',\\n \\\"default_shipping_address\\\" JSON,\\n \\\"default_billing_address\\\" JSON,\\n \\\"status\\\" TEXT,\\n \\\"customer_type\\\" TEXT,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"credit_limit\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"payment_terms\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"tax_exempt\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false},\"tax_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"default_shipping_address\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false},\"default_billing_address\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"customer_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"customers_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"customers_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"customers_profile_id_idx\",\"columns\":[\"profile_id\"]}],\"version\":\"ad1b9967\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:FulfillmentCollection\":{\"name\":\"fulfillmentcollection\",\"className\":\"FulfillmentCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:FulfillmentCollection\",\"collection\":\"fulfillments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/FulfillmentCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByContract\":{\"name\":\"findByContract\",\"async\":true,\"parameters\":[{\"name\":\"contractId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"FulfillmentStatus\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByType\":{\"name\":\"findByType\",\"async\":true,\"parameters\":[{\"name\":\"fulfillmentType\",\"type\":\"FulfillmentType\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findPending\":{\"name\":\"findPending\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findInTransit\":{\"name\":\"findInTransit\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTracking\":{\"name\":\"findByTracking\",\"async\":true,\"parameters\":[{\"name\":\"trackingNumber\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment | null>\",\"isStatic\":false,\"isPublic\":true},\"findShippedInRange\":{\"name\":\"findShippedInRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Fulfillment\",\"exportName\":\"FulfillmentCollection\",\"collectionExportName\":\"FulfillmentCollectionCollection\",\"schema\":{\"tableName\":\"fulfillments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"fulfillments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"fulfillment_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"tracking_number\\\" TEXT DEFAULT '',\\n \\\"carrier\\\" TEXT DEFAULT '',\\n \\\"shipping_address\\\" JSON,\\n \\\"shipped_at\\\" TIMESTAMP,\\n \\\"delivered_at\\\" TIMESTAMP,\\n \\\"estimated_delivery\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"fulfillment_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"tracking_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"carrier\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"shipping_address\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false},\"shipped_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"delivered_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"estimated_delivery\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"fulfillments_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"fulfillments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"fulfillments_contract_id_idx\",\"columns\":[\"contract_id\"]}],\"version\":\"2f708fc5\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:FulfillmentLineItemCollection\":{\"name\":\"fulfillmentlineitemcollection\",\"className\":\"FulfillmentLineItemCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:FulfillmentLineItemCollection\",\"collection\":\"fulfillmentlineitems\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/FulfillmentLineItemCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByFulfillment\":{\"name\":\"findByFulfillment\",\"async\":true,\"parameters\":[{\"name\":\"fulfillmentId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FulfillmentLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findByContractLineItem\":{\"name\":\"findByContractLineItem\",\"async\":true,\"parameters\":[{\"name\":\"contractLineItemId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FulfillmentLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"getTotalFulfilledForContractLine\":{\"name\":\"getTotalFulfilledForContractLine\",\"async\":true,\"parameters\":[{\"name\":\"contractLineItemId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FulfillmentLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<FulfillmentLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FulfillmentLineItem[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"FulfillmentLineItem\",\"exportName\":\"FulfillmentLineItemCollection\",\"collectionExportName\":\"FulfillmentLineItemCollectionCollection\",\"schema\":{\"tableName\":\"fulfillment_line_items\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"fulfillment_line_items\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"fulfillment_id\\\" UUID,\\n \\\"contract_line_item_id\\\" UUID,\\n \\\"quantity_fulfilled\\\" REAL DEFAULT 1,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"fulfillment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"fulfillments\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"contract_line_item_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contract_line_items\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"quantity_fulfilled\":{\"type\":\"REAL\",\"notNull\":false,\"unique\":false,\"default\":1},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"fulfillment_line_items_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"fulfillment_line_items_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"fulfillment_line_items_fulfillment_id_idx\",\"columns\":[\"fulfillment_id\"]},{\"name\":\"fulfillment_line_items_contract_line_item_id_idx\",\"columns\":[\"contract_line_item_id\"]}],\"version\":\"14537dbe\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:InvoiceCollection\":{\"name\":\"invoicecollection\",\"className\":\"InvoiceCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:InvoiceCollection\",\"collection\":\"invoices\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/InvoiceCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByCustomer\":{\"name\":\"findByCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findByContract\":{\"name\":\"findByContract\",\"async\":true,\"parameters\":[{\"name\":\"contractId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"InvoiceStatus\",\"optional\":false}],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findDrafts\":{\"name\":\"findDrafts\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findSent\":{\"name\":\"findSent\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findPaid\":{\"name\":\"findPaid\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findPartial\":{\"name\":\"findPartial\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findOverdue\":{\"name\":\"findOverdue\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findByExternalId\":{\"name\":\"findByExternalId\",\"async\":true,\"parameters\":[{\"name\":\"externalId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Invoice | null>\",\"isStatic\":false,\"isPublic\":true},\"findNeedingSync\":{\"name\":\"findNeedingSync\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findByNumber\":{\"name\":\"findByNumber\",\"async\":true,\"parameters\":[{\"name\":\"invoiceNumber\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Invoice | null>\",\"isStatic\":false,\"isPublic\":true},\"countForYear\":{\"name\":\"countForYear\",\"async\":true,\"parameters\":[{\"name\":\"year\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"generateInvoiceNumber\":{\"name\":\"generateInvoiceNumber\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"InvoiceNumberOptions\",\"optional\":true}],\"returnType\":\"Promise<string>\",\"isStatic\":false,\"isPublic\":true},\"getTotalOutstandingForCustomer\":{\"name\":\"getTotalOutstandingForCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Invoice\",\"exportName\":\"InvoiceCollection\",\"collectionExportName\":\"InvoiceCollectionCollection\",\"schema\":{\"tableName\":\"invoices\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"invoices\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"customer_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"invoice_number\\\" TEXT DEFAULT '',\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"paid_date\\\" TIMESTAMP,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"provider_tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"amount_paid\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'CAD',\\n \\\"status\\\" TEXT,\\n \\\"ar_journal_id\\\" UUID,\\n \\\"revenue_journal_id\\\" UUID,\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"customer_external_id\\\" TEXT DEFAULT '',\\n \\\"external_provider\\\" TEXT DEFAULT '',\\n \\\"synced_at\\\" TIMESTAMP,\\n \\\"sent_at\\\" TIMESTAMP,\\n \\\"viewed_at\\\" TIMESTAMP,\\n \\\"reminders_sent\\\" INTEGER DEFAULT 0,\\n \\\"last_reminder_at\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"customer_notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"invoice_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"paid_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"provider_tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"amount_paid\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"CAD\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"ar_journal_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"revenue_journal_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"customer_external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"external_provider\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"synced_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"viewed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"reminders_sent\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"last_reminder_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"customer_notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"invoices_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"invoices_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"invoices_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"invoices_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"invoices_ar_journal_id_idx\",\"columns\":[\"ar_journal_id\"]},{\"name\":\"invoices_revenue_journal_id_idx\",\"columns\":[\"revenue_journal_id\"]}],\"version\":\"40c25b56\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:InvoiceLineItemCollection\":{\"name\":\"invoicelineitemcollection\",\"className\":\"InvoiceLineItemCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:InvoiceLineItemCollection\",\"collection\":\"invoicelineitems\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/InvoiceLineItemCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByInvoice\":{\"name\":\"findByInvoice\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findBySource\":{\"name\":\"findBySource\",\"async\":true,\"parameters\":[{\"name\":\"sourceType\",\"type\":\"string\",\"optional\":false},{\"name\":\"sourceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findBySourceType\":{\"name\":\"findBySourceType\",\"async\":true,\"parameters\":[{\"name\":\"sourceType\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"getTotalForInvoice\":{\"name\":\"getTotalForInvoice\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"getSubtotalForInvoice\":{\"name\":\"getSubtotalForInvoice\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"getTaxForInvoice\":{\"name\":\"getTaxForInvoice\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"getNextSortOrder\":{\"name\":\"getNextSortOrder\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"recalculateAmounts\":{\"name\":\"recalculateAmounts\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"toAccountingLineItems\":{\"name\":\"toAccountingLineItems\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AccountingLineItemInput[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"InvoiceLineItem\",\"exportName\":\"InvoiceLineItemCollection\",\"collectionExportName\":\"InvoiceLineItemCollectionCollection\",\"schema\":{\"tableName\":\"invoice_line_items\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"invoice_line_items\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"invoice_id\\\" UUID,\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"sku\\\" TEXT DEFAULT '',\\n \\\"quantity\\\" INTEGER DEFAULT 1,\\n \\\"unit_price\\\" INTEGER DEFAULT 0,\\n \\\"discount\\\" INTEGER DEFAULT 0,\\n \\\"tax_rate\\\" REAL DEFAULT 0,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"source_type\\\" TEXT DEFAULT '',\\n \\\"source_id\\\" TEXT DEFAULT '',\\n \\\"period_start\\\" TIMESTAMP,\\n \\\"period_end\\\" TIMESTAMP,\\n \\\"revenue_account_id\\\" UUID,\\n \\\"sort_order\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"invoice_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"invoices\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"sku\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"quantity\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":1},\"unit_price\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"discount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"tax_rate\":{\"type\":\"REAL\",\"notNull\":false,\"unique\":false,\"default\":0},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"source_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"source_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"period_start\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"period_end\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"revenue_account_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"sort_order\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0}},\"indexes\":[{\"name\":\"invoice_line_items_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"invoice_line_items_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"invoice_line_items_invoice_id_idx\",\"columns\":[\"invoice_id\"]},{\"name\":\"invoice_line_items_revenue_account_id_idx\",\"columns\":[\"revenue_account_id\"]}],\"version\":\"f96d2656\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentAllocationCollection\":{\"name\":\"paymentallocationcollection\",\"className\":\"PaymentAllocationCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentAllocationCollection\",\"collection\":\"paymentallocations\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/PaymentAllocationCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByPayment\":{\"name\":\"findByPayment\",\"async\":true,\"parameters\":[{\"name\":\"paymentId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true},\"findByInvoice\":{\"name\":\"findByInvoice\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true},\"getTotalAllocatedToInvoice\":{\"name\":\"getTotalAllocatedToInvoice\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"getTotalAllocatedFromPayment\":{\"name\":\"getTotalAllocatedFromPayment\",\"async\":true,\"parameters\":[{\"name\":\"paymentId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"getUnallocatedFromPayment\":{\"name\":\"getUnallocatedFromPayment\",\"async\":true,\"parameters\":[{\"name\":\"paymentId\",\"type\":\"string\",\"optional\":false},{\"name\":\"paymentAmount\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"findByPaymentAndInvoice\":{\"name\":\"findByPaymentAndInvoice\",\"async\":true,\"parameters\":[{\"name\":\"paymentId\",\"type\":\"string\",\"optional\":false},{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation | null>\",\"isStatic\":false,\"isPublic\":true},\"findByAllocator\":{\"name\":\"findByAllocator\",\"async\":true,\"parameters\":[{\"name\":\"allocatedBy\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"PaymentAllocation\",\"exportName\":\"PaymentAllocationCollection\",\"collectionExportName\":\"PaymentAllocationCollectionCollection\",\"schema\":{\"tableName\":\"payment_allocations\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payment_allocations\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"payment_id\\\" UUID,\\n \\\"invoice_id\\\" UUID,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"allocated_at\\\" TIMESTAMP,\\n \\\"allocated_by\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"payment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"payments\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"invoice_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"invoices\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"allocated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"allocated_by\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"payment_allocations_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payment_allocations_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payment_allocations_payment_id_idx\",\"columns\":[\"payment_id\"]},{\"name\":\"payment_allocations_invoice_id_idx\",\"columns\":[\"invoice_id\"]}],\"version\":\"102e6fbc\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentCollection\":{\"name\":\"paymentcollection\",\"className\":\"PaymentCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentCollection\",\"collection\":\"payments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/PaymentCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByContract\":{\"name\":\"findByContract\",\"async\":true,\"parameters\":[{\"name\":\"contractId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByCustomer\":{\"name\":\"findByCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"PaymentStatus\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByMethod\":{\"name\":\"findByMethod\",\"async\":true,\"parameters\":[{\"name\":\"method\",\"type\":\"PaymentMethod\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findPending\":{\"name\":\"findPending\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findCompleted\":{\"name\":\"findCompleted\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTransactionId\":{\"name\":\"findByTransactionId\",\"async\":true,\"parameters\":[{\"name\":\"transactionId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payment | null>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"getTotalForContract\":{\"name\":\"getTotalForContract\",\"async\":true,\"parameters\":[{\"name\":\"contractId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"findByJournal\":{\"name\":\"findByJournal\",\"async\":true,\"parameters\":[{\"name\":\"journalId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payment | null>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Payment\",\"exportName\":\"PaymentCollection\",\"collectionExportName\":\"PaymentCollectionCollection\",\"schema\":{\"tableName\":\"payments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"customer_id\\\" UUID,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"method\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"transaction_id\\\" TEXT DEFAULT '',\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"journal_id\\\" UUID,\\n \\\"paid_at\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"external_provider\\\" TEXT DEFAULT '',\\n \\\"synced_at\\\" TIMESTAMP,\\n \\\"backend_id\\\" TEXT DEFAULT '',\\n \\\"backend_tx_ref\\\" TEXT DEFAULT '',\\n \\\"native_amount\\\" INTEGER DEFAULT 0,\\n \\\"native_currency\\\" TEXT DEFAULT '',\\n \\\"usd_at_quote\\\" INTEGER DEFAULT 0,\\n \\\"usd_at_confirmation\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"method\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"transaction_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"journal_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"paid_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"external_provider\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"synced_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"backend_tx_ref\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"native_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"native_currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"usd_at_quote\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"usd_at_confirmation\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0}},\"indexes\":[{\"name\":\"payments_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payments_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"payments_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"payments_journal_id_idx\",\"columns\":[\"journal_id\"]}],\"version\":\"33f80e50\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentInstrumentCollection\":{\"name\":\"paymentinstrumentcollection\",\"className\":\"PaymentInstrumentCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentInstrumentCollection\",\"collection\":\"paymentinstruments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/PaymentInstrumentCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByCustomer\":{\"name\":\"findByCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentInstrument[]>\",\"isStatic\":false,\"isPublic\":true},\"findActiveByCustomer\":{\"name\":\"findActiveByCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentInstrument[]>\",\"isStatic\":false,\"isPublic\":true},\"findDefaultForCustomer\":{\"name\":\"findDefaultForCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentInstrument | null>\",\"isStatic\":false,\"isPublic\":true},\"findByProviderPaymentMethodId\":{\"name\":\"findByProviderPaymentMethodId\",\"async\":true,\"parameters\":[{\"name\":\"providerPaymentMethodId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentInstrument | null>\",\"isStatic\":false,\"isPublic\":true},\"setDefaultForCustomer\":{\"name\":\"setDefaultForCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false},{\"name\":\"instrumentId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentInstrument[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<PaymentInstrument[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentInstrument[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"PaymentInstrument\",\"exportName\":\"PaymentInstrumentCollection\",\"collectionExportName\":\"PaymentInstrumentCollectionCollection\",\"schema\":{\"tableName\":\"payment_instruments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payment_instruments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"customer_id\\\" UUID,\\n \\\"backend_id\\\" TEXT DEFAULT '',\\n \\\"provider_customer_id\\\" TEXT DEFAULT '',\\n \\\"provider_payment_method_id\\\" TEXT DEFAULT '',\\n \\\"type\\\" TEXT DEFAULT 'card',\\n \\\"brand\\\" TEXT DEFAULT '',\\n \\\"last4\\\" TEXT DEFAULT '',\\n \\\"exp_month\\\" INTEGER DEFAULT 0,\\n \\\"exp_year\\\" INTEGER DEFAULT 0,\\n \\\"is_default\\\" BOOLEAN DEFAULT FALSE,\\n \\\"status\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider_customer_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider_payment_method_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"card\"},\"brand\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"last4\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"exp_month\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"exp_year\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"is_default\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"payment_instruments_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payment_instruments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payment_instruments_customer_id_idx\",\"columns\":[\"customer_id\"]}],\"version\":\"722393fe\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentIntentCollection\":{\"name\":\"paymentintentcollection\",\"className\":\"PaymentIntentCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentIntentCollection\",\"collection\":\"paymentintents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/PaymentIntentCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByIdempotencyKey\":{\"name\":\"findByIdempotencyKey\",\"async\":true,\"parameters\":[{\"name\":\"args\",\"type\":\"PaymentIntentIdempotencyArgs\",\"optional\":false}],\"returnType\":\"Promise<PaymentIntent | null>\",\"isStatic\":false,\"isPublic\":true},\"getOrCreateByIdempotencyKey\":{\"name\":\"getOrCreateByIdempotencyKey\",\"async\":true,\"parameters\":[{\"name\":\"seed\",\"type\":\"PaymentIntentSeed\",\"optional\":false}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"findOpen\":{\"name\":\"findOpen\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findStale\":{\"name\":\"findStale\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByLicenseeEmail\":{\"name\":\"findByLicenseeEmail\",\"async\":true,\"parameters\":[{\"name\":\"email\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByOfferingRef\":{\"name\":\"findByOfferingRef\",\"async\":true,\"parameters\":[{\"name\":\"offeringRef\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"PaymentIntentStatus\",\"optional\":false}],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"PaymentIntent\",\"exportName\":\"PaymentIntentCollection\",\"collectionExportName\":\"PaymentIntentCollectionCollection\",\"schema\":{\"tableName\":\"payment_intents\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payment_intents\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"sku_id\\\" TEXT DEFAULT '',\\n \\\"offering_ref\\\" TEXT DEFAULT '',\\n \\\"licensee_email\\\" TEXT DEFAULT '',\\n \\\"customer_id\\\" TEXT DEFAULT '',\\n \\\"payment_options\\\" JSON DEFAULT '[]',\\n \\\"usd_price_locked\\\" INTEGER DEFAULT 0,\\n \\\"price_lock_window_ms\\\" INTEGER,\\n \\\"price_lock_expires_at\\\" TIMESTAMP,\\n \\\"status\\\" TEXT,\\n \\\"idempotency_key\\\" TEXT DEFAULT '',\\n \\\"paid_option_backend_id\\\" TEXT DEFAULT '',\\n \\\"payment_id\\\" TEXT DEFAULT '',\\n \\\"paid_at\\\" TIMESTAMP,\\n \\\"issued_at\\\" TIMESTAMP,\\n \\\"expired_at\\\" TIMESTAMP,\\n \\\"cancelled_at\\\" TIMESTAMP,\\n \\\"retired_at\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"sku_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"offering_ref\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"licensee_email\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"customer_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"payment_options\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false,\"default\":[]},\"usd_price_locked\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"price_lock_window_ms\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"price_lock_expires_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"idempotency_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"paid_option_backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"payment_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"paid_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"issued_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"expired_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"cancelled_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"retired_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"payment_intents_tenant_id_offering_ref_idx\",\"columns\":[\"tenant_id\",\"offering_ref\",\"licensee_email\",\"idempotency_key\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payment_intents_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"payment_intents_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"c565aaef\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PayoutCollection\":{\"name\":\"payoutcollection\",\"className\":\"PayoutCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PayoutCollection\",\"collection\":\"payouts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/PayoutCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"createFromPayment\":{\"name\":\"createFromPayment\",\"async\":true,\"parameters\":[{\"name\":\"args\",\"type\":\"CreatePayoutFromPaymentArgs\",\"optional\":false}],\"returnType\":\"Promise<Payout>\",\"isStatic\":false,\"isPublic\":true},\"findByPayment\":{\"name\":\"findByPayment\",\"async\":true,\"parameters\":[{\"name\":\"paymentId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findByVendor\":{\"name\":\"findByVendor\",\"async\":true,\"parameters\":[{\"name\":\"vendorId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"PayoutStatus\",\"optional\":false}],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findPending\":{\"name\":\"findPending\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findFailed\":{\"name\":\"findFailed\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findByBackendTxRef\":{\"name\":\"findByBackendTxRef\",\"async\":true,\"parameters\":[{\"name\":\"backendTxRef\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payout | null>\",\"isStatic\":false,\"isPublic\":true},\"getConfirmedTotalForVendor\":{\"name\":\"getConfirmedTotalForVendor\",\"async\":true,\"parameters\":[{\"name\":\"vendorId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Payout\",\"exportName\":\"PayoutCollection\",\"collectionExportName\":\"PayoutCollectionCollection\",\"schema\":{\"tableName\":\"payouts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payouts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"payment_id\\\" TEXT DEFAULT '',\\n \\\"vendor_id\\\" UUID,\\n \\\"gross_amount\\\" INTEGER DEFAULT 0,\\n \\\"operator_fee\\\" INTEGER DEFAULT 0,\\n \\\"supplier_net\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT '',\\n \\\"backend_id\\\" TEXT DEFAULT '',\\n \\\"backend_tx_ref\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT,\\n \\\"sent_at\\\" TIMESTAMP,\\n \\\"confirmed_at\\\" TIMESTAMP,\\n \\\"failed_at\\\" TIMESTAMP,\\n \\\"failure_reason\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"payment_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"gross_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"operator_fee\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"supplier_net\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"backend_tx_ref\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"confirmed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"failed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"failure_reason\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"payouts_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payouts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payouts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"98fa81d5\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:VendorCollection\":{\"name\":\"vendorcollection\",\"className\":\"VendorCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:VendorCollection\",\"collection\":\"vendors\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/VendorCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByProfile\":{\"name\":\"findByProfile\",\"async\":true,\"parameters\":[{\"name\":\"profileId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Vendor[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Vendor[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"VendorStatus\",\"optional\":false}],\"returnType\":\"Promise<Vendor[]>\",\"isStatic\":false,\"isPublic\":true},\"getOrCreateForProfile\":{\"name\":\"getOrCreateForProfile\",\"async\":true,\"parameters\":[{\"name\":\"profileId\",\"type\":\"string\",\"optional\":false},{\"name\":\"defaults\",\"type\":\"Partial<object>\",\"optional\":true,\"memberTypes\":[\"number\",\"string\"]}],\"returnType\":\"Promise<Vendor>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Vendor[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Vendor[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Vendor[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Vendor\",\"exportName\":\"VendorCollection\",\"collectionExportName\":\"VendorCollectionCollection\",\"schema\":{\"tableName\":\"vendors\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"vendors\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"profile_id\\\" UUID,\\n \\\"lead_time_days\\\" INTEGER DEFAULT 0,\\n \\\"minimum_order_amount\\\" INTEGER DEFAULT 0,\\n \\\"payment_terms\\\" TEXT DEFAULT '',\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"default_contact_email\\\" TEXT DEFAULT '',\\n \\\"default_contact_phone\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT,\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"payout_addresses\\\" JSON DEFAULT '{}'\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"lead_time_days\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"minimum_order_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"payment_terms\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"default_contact_email\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"default_contact_phone\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"payout_addresses\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false,\"default\":{}}},\"indexes\":[{\"name\":\"vendors_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"vendors_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"vendors_profile_id_idx\",\"columns\":[\"profile_id\"]}],\"version\":\"1dc2b65e\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Contract\":{\"name\":\"contract\",\"className\":\"Contract\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Contract\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Contract\",\"collectionExportName\":\"ContractCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"9c2e9c49\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Estimate\":{\"name\":\"estimate\",\"className\":\"Estimate\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Estimate\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"Estimate\",\"collectionExportName\":\"EstimateCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"2f1624b2\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Order\":{\"name\":\"order\",\"className\":\"Order\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Order\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"Order\",\"collectionExportName\":\"OrderCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"b7667cf3\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Lease\":{\"name\":\"lease\",\"className\":\"Lease\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Lease\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"Lease\",\"collectionExportName\":\"LeaseCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"b24cdace\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Agreement\":{\"name\":\"agreement\",\"className\":\"Agreement\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Agreement\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"Agreement\",\"collectionExportName\":\"AgreementCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"28f0c394\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PurchaseOrder\":{\"name\":\"purchaseorder\",\"className\":\"PurchaseOrder\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PurchaseOrder\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"PurchaseOrder\",\"collectionExportName\":\"PurchaseOrderCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"91ec64bb\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:WholesaleOrder\":{\"name\":\"wholesaleorder\",\"className\":\"WholesaleOrder\",\"qualifiedName\":\"@happyvertical/smrt-commerce:WholesaleOrder\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"WholesaleOrder\",\"collectionExportName\":\"WholesaleOrderCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"ccb8a3ae\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:ProductionOrder\":{\"name\":\"productionorder\",\"className\":\"ProductionOrder\",\"qualifiedName\":\"@happyvertical/smrt-commerce:ProductionOrder\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"productId\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"bomId\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"ProductionOrder\",\"collectionExportName\":\"ProductionOrderCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"c6b977a5\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Cart\":{\"name\":\"cart\",\"className\":\"Cart\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Cart\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"Cart\",\"collectionExportName\":\"CartCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"fba16d4f\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:LicenseSale\":{\"name\":\"licensesale\",\"className\":\"LicenseSale\",\"qualifiedName\":\"@happyvertical/smrt-commerce:LicenseSale\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"skuId\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"paymentId\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"licenseeEmail\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"licenseeLegalEntity\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"licenseeJurisdiction\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"rightsMedium\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"rightsDistributionScope\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"rightsExclusivity\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"rightsDuration\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"rightsTerritory\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"rightsSublicensing\":{\"type\":\"meta\",\"required\":false,\"default\":false,\"_meta\":{\"underlyingType\":\"boolean\"}},\"rightsDerivatives\":{\"type\":\"meta\",\"required\":false,\"default\":false,\"_meta\":{\"underlyingType\":\"boolean\"}},\"pdfUrl\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"pdfHash\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"onChainHashRegistryRef\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"getRightsSnapshot\":{\"name\":\"getRightsSnapshot\",\"async\":false,\"parameters\":[],\"returnType\":\"LicenseRightsSnapshot\",\"isStatic\":false,\"isPublic\":true},\"revoke\":{\"name\":\"revoke\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"LicenseSale\",\"collectionExportName\":\"LicenseSaleCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"d6d82bad\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:ContractLineItem\":{\"name\":\"contractlineitem\",\"className\":\"ContractLineItem\",\"qualifiedName\":\"@happyvertical/smrt-commerce:ContractLineItem\",\"collection\":\"contractlineitems\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/ContractLineItem.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Contract\"},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"quantity\":{\"type\":\"decimal\",\"required\":false,\"default\":1},\"unitPrice\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"discount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxRate\":{\"type\":\"decimal\",\"required\":false,\"default\":0},\"amount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"productId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-products:Product\"},\"sku\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"startDate\":{\"type\":\"datetime\",\"required\":false},\"endDate\":{\"type\":\"datetime\",\"required\":false},\"billingPeriod\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"sortOrder\":{\"type\":\"integer\",\"required\":false,\"default\":0}},\"methods\":{\"calculateAmount\":{\"name\":\"calculateAmount\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"isRecurring\":{\"name\":\"isRecurring\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isSubscriptionActive\":{\"name\":\"isSubscriptionActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"delete\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"ContractLineItem\",\"collectionExportName\":\"ContractLineItemCollection\",\"schema\":{\"tableName\":\"contract_line_items\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contract_line_items\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"quantity\\\" REAL DEFAULT 1,\\n \\\"unit_price\\\" INTEGER DEFAULT 0,\\n \\\"discount\\\" INTEGER DEFAULT 0,\\n \\\"tax_rate\\\" REAL DEFAULT 0,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"product_id\\\" UUID,\\n \\\"sku\\\" TEXT DEFAULT '',\\n \\\"start_date\\\" TIMESTAMP,\\n \\\"end_date\\\" TIMESTAMP,\\n \\\"billing_period\\\" TEXT DEFAULT '',\\n \\\"sort_order\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"quantity\":{\"type\":\"REAL\",\"notNull\":false,\"default\":1},\"unit_price\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"discount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_rate\":{\"type\":\"REAL\",\"notNull\":false,\"default\":0},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"product_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"sku\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"start_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"end_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"billing_period\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"sort_order\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0}},\"indexes\":[{\"name\":\"contract_line_items_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contract_line_items_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contract_line_items_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contract_line_items_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"contract_line_items_product_id_idx\",\"columns\":[\"product_id\"]}],\"version\":\"be2b46cd\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Customer\":{\"name\":\"customer\",\"className\":\"Customer\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Customer\",\"collection\":\"customers\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Customer.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"profileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\"},\"creditLimit\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"paymentTerms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"taxExempt\":{\"type\":\"boolean\",\"required\":false,\"default\":false},\"taxId\":{\"type\":\"text\",\"required\":false,\"default\":\"\",\"_meta\":{\"sensitive\":true},\"sensitive\":true},\"defaultShippingAddress\":{\"type\":\"json\",\"required\":false},\"defaultBillingAddress\":{\"type\":\"json\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerType\":{\"type\":\"text\",\"required\":false},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isWholesale\":{\"name\":\"isWholesale\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isActive\":{\"name\":\"isActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"hasAvailableCredit\":{\"name\":\"hasAvailableCredit\",\"async\":false,\"parameters\":[{\"name\":\"amount\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getProfileId\":{\"name\":\"getProfileId\",\"async\":false,\"parameters\":[],\"returnType\":\"string\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Customer\",\"collectionExportName\":\"CustomerCollection\",\"schema\":{\"tableName\":\"customers\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"customers\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"profile_id\\\" UUID,\\n \\\"credit_limit\\\" INTEGER DEFAULT 0,\\n \\\"payment_terms\\\" TEXT DEFAULT '',\\n \\\"tax_exempt\\\" BOOLEAN DEFAULT FALSE,\\n \\\"tax_id\\\" TEXT DEFAULT '',\\n \\\"default_shipping_address\\\" JSON,\\n \\\"default_billing_address\\\" JSON,\\n \\\"status\\\" TEXT,\\n \\\"customer_type\\\" TEXT,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"credit_limit\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"payment_terms\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"tax_exempt\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false},\"tax_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"default_shipping_address\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false},\"default_billing_address\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"customer_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"customers_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"customers_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"customers_profile_id_idx\",\"columns\":[\"profile_id\"]}],\"version\":\"ad1b9967\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Fulfillment\":{\"name\":\"fulfillment\",\"className\":\"Fulfillment\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Fulfillment\",\"collection\":\"fulfillments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Fulfillment.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Contract\"},\"fulfillmentType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"trackingNumber\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"carrier\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"shippingAddress\":{\"type\":\"json\",\"required\":false},\"shippedAt\":{\"type\":\"datetime\",\"required\":false},\"deliveredAt\":{\"type\":\"datetime\",\"required\":false},\"estimatedDelivery\":{\"type\":\"datetime\",\"required\":false},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"isDelivered\":{\"name\":\"isDelivered\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isInTransit\":{\"name\":\"isInTransit\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPending\":{\"name\":\"isPending\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"markShipped\":{\"name\":\"markShipped\",\"async\":false,\"parameters\":[{\"name\":\"trackingNumber\",\"type\":\"string\",\"optional\":true},{\"name\":\"carrier\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markDelivered\":{\"name\":\"markDelivered\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"cancel\":{\"name\":\"cancel\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Fulfillment\",\"collectionExportName\":\"FulfillmentCollection\",\"schema\":{\"tableName\":\"fulfillments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"fulfillments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"fulfillment_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"tracking_number\\\" TEXT DEFAULT '',\\n \\\"carrier\\\" TEXT DEFAULT '',\\n \\\"shipping_address\\\" JSON,\\n \\\"shipped_at\\\" TIMESTAMP,\\n \\\"delivered_at\\\" TIMESTAMP,\\n \\\"estimated_delivery\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"fulfillment_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"tracking_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"carrier\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"shipping_address\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false},\"shipped_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"delivered_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"estimated_delivery\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"fulfillments_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"fulfillments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"fulfillments_contract_id_idx\",\"columns\":[\"contract_id\"]}],\"version\":\"2f708fc5\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:FulfillmentLineItem\":{\"name\":\"fulfillmentlineitem\",\"className\":\"FulfillmentLineItem\",\"qualifiedName\":\"@happyvertical/smrt-commerce:FulfillmentLineItem\",\"collection\":\"fulfillmentlineitems\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/FulfillmentLineItem.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"fulfillmentId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Fulfillment\"},\"contractLineItemId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"ContractLineItem\"},\"quantityFulfilled\":{\"type\":\"decimal\",\"required\":false,\"default\":1},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"delete\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":true,\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"FulfillmentLineItem\",\"collectionExportName\":\"FulfillmentLineItemCollection\",\"schema\":{\"tableName\":\"fulfillment_line_items\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"fulfillment_line_items\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"fulfillment_id\\\" UUID,\\n \\\"contract_line_item_id\\\" UUID,\\n \\\"quantity_fulfilled\\\" REAL DEFAULT 1,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"fulfillment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"fulfillments\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"contract_line_item_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contract_line_items\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"quantity_fulfilled\":{\"type\":\"REAL\",\"notNull\":false,\"unique\":false,\"default\":1},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"fulfillment_line_items_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"fulfillment_line_items_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"fulfillment_line_items_fulfillment_id_idx\",\"columns\":[\"fulfillment_id\"]},{\"name\":\"fulfillment_line_items_contract_line_item_id_idx\",\"columns\":[\"contract_line_item_id\"]}],\"version\":\"14537dbe\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Invoice\":{\"name\":\"invoice\",\"className\":\"Invoice\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Invoice\",\"collection\":\"invoices\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Invoice.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"contractId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Contract\"},\"invoiceNumber\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"paidDate\":{\"type\":\"datetime\",\"required\":false},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"providerTaxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"amountPaid\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"CAD\"},\"status\":{\"type\":\"text\",\"required\":false},\"arJournalId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-ledgers:Journal\"},\"revenueJournalId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-ledgers:Journal\"},\"externalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"customerExternalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"externalProvider\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"syncedAt\":{\"type\":\"datetime\",\"required\":false},\"sentAt\":{\"type\":\"datetime\",\"required\":false},\"viewedAt\":{\"type\":\"datetime\",\"required\":false},\"remindersSent\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"lastReminderAt\":{\"type\":\"datetime\",\"required\":false},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"customerNotes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isSent\":{\"name\":\"isSent\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPaid\":{\"name\":\"isPaid\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPartial\":{\"name\":\"isPartial\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getAmountDue\":{\"name\":\"getAmountDue\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"markSent\":{\"name\":\"markSent\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markViewed\":{\"name\":\"markViewed\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"updatePaymentStatus\":{\"name\":\"updatePaymentStatus\",\"async\":false,\"parameters\":[{\"name\":\"amountPaid\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"cancel\":{\"name\":\"cancel\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"writeOff\":{\"name\":\"writeOff\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"recognizeRevenue\":{\"name\":\"recognizeRevenue\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"RecognizeRevenueOptions\",\"optional\":false}],\"returnType\":\"Promise<Journal>\",\"isStatic\":false,\"isPublic\":true},\"getArJournal\":{\"name\":\"getArJournal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Journal | null>\",\"isStatic\":false,\"isPublic\":true},\"toAccountingInput\":{\"name\":\"toAccountingInput\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AccountingInvoiceInput>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"],\"writable\":[\"customerId\",\"contractId\",\"invoiceNumber\",\"reference\",\"issueDate\",\"dueDate\",\"currency\",\"notes\",\"customerNotes\",\"terms\",\"externalId\",\"customerExternalId\",\"externalProvider\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Invoice\",\"collectionExportName\":\"InvoiceCollection\",\"schema\":{\"tableName\":\"invoices\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"invoices\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"customer_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"invoice_number\\\" TEXT DEFAULT '',\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"paid_date\\\" TIMESTAMP,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"provider_tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"amount_paid\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'CAD',\\n \\\"status\\\" TEXT,\\n \\\"ar_journal_id\\\" UUID,\\n \\\"revenue_journal_id\\\" UUID,\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"customer_external_id\\\" TEXT DEFAULT '',\\n \\\"external_provider\\\" TEXT DEFAULT '',\\n \\\"synced_at\\\" TIMESTAMP,\\n \\\"sent_at\\\" TIMESTAMP,\\n \\\"viewed_at\\\" TIMESTAMP,\\n \\\"reminders_sent\\\" INTEGER DEFAULT 0,\\n \\\"last_reminder_at\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"customer_notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"invoice_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"paid_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"provider_tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"amount_paid\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"CAD\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"ar_journal_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"revenue_journal_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"customer_external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"external_provider\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"synced_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"viewed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"reminders_sent\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"last_reminder_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"customer_notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"invoices_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"invoices_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"invoices_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"invoices_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"invoices_ar_journal_id_idx\",\"columns\":[\"ar_journal_id\"]},{\"name\":\"invoices_revenue_journal_id_idx\",\"columns\":[\"revenue_journal_id\"]}],\"version\":\"40c25b56\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:InvoiceLineItem\":{\"name\":\"invoicelineitem\",\"className\":\"InvoiceLineItem\",\"qualifiedName\":\"@happyvertical/smrt-commerce:InvoiceLineItem\",\"collection\":\"invoicelineitems\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/InvoiceLineItem.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"invoiceId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Invoice\"},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"sku\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"quantity\":{\"type\":\"integer\",\"required\":false,\"default\":1},\"unitPrice\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"discount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxRate\":{\"type\":\"decimal\",\"required\":false,\"default\":0},\"amount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"sourceType\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"sourceId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"periodStart\":{\"type\":\"datetime\",\"required\":false},\"periodEnd\":{\"type\":\"datetime\",\"required\":false},\"revenueAccountId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-ledgers:Account\"},\"sortOrder\":{\"type\":\"integer\",\"required\":false,\"default\":0}},\"methods\":{\"calculateAmount\":{\"name\":\"calculateAmount\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"getSubtotal\":{\"name\":\"getSubtotal\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"getTaxAmount\":{\"name\":\"getTaxAmount\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"hasSource\":{\"name\":\"hasSource\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"hasPeriod\":{\"name\":\"hasPeriod\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"toAccountingLineItem\":{\"name\":\"toAccountingLineItem\",\"async\":false,\"parameters\":[{\"name\":\"currency\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"AccountingLineItemInput\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"delete\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"InvoiceLineItem\",\"collectionExportName\":\"InvoiceLineItemCollection\",\"schema\":{\"tableName\":\"invoice_line_items\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"invoice_line_items\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"invoice_id\\\" UUID,\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"sku\\\" TEXT DEFAULT '',\\n \\\"quantity\\\" INTEGER DEFAULT 1,\\n \\\"unit_price\\\" INTEGER DEFAULT 0,\\n \\\"discount\\\" INTEGER DEFAULT 0,\\n \\\"tax_rate\\\" REAL DEFAULT 0,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"source_type\\\" TEXT DEFAULT '',\\n \\\"source_id\\\" TEXT DEFAULT '',\\n \\\"period_start\\\" TIMESTAMP,\\n \\\"period_end\\\" TIMESTAMP,\\n \\\"revenue_account_id\\\" UUID,\\n \\\"sort_order\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"invoice_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"invoices\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"sku\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"quantity\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":1},\"unit_price\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"discount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"tax_rate\":{\"type\":\"REAL\",\"notNull\":false,\"unique\":false,\"default\":0},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"source_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"source_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"period_start\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"period_end\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"revenue_account_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"sort_order\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0}},\"indexes\":[{\"name\":\"invoice_line_items_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"invoice_line_items_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"invoice_line_items_invoice_id_idx\",\"columns\":[\"invoice_id\"]},{\"name\":\"invoice_line_items_revenue_account_id_idx\",\"columns\":[\"revenue_account_id\"]}],\"version\":\"f96d2656\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Payment\":{\"name\":\"payment\",\"className\":\"Payment\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Payment\",\"collection\":\"payments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Payment.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Contract\"},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"amount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"method\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"transactionId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"journalId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-ledgers:Journal\"},\"paidAt\":{\"type\":\"datetime\",\"required\":false},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"externalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"externalProvider\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"syncedAt\":{\"type\":\"datetime\",\"required\":false},\"backendId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"backendTxRef\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"nativeAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"nativeCurrency\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"usdAtQuote\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"usdAtConfirmation\":{\"type\":\"integer\",\"required\":false,\"default\":0}},\"methods\":{\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"usdDrift\":{\"name\":\"usdDrift\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"isPending\":{\"name\":\"isPending\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isRefunded\":{\"name\":\"isRefunded\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recordPayment\":{\"name\":\"recordPayment\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"RecordPaymentOptions\",\"optional\":false}],\"returnType\":\"Promise<Journal>\",\"isStatic\":false,\"isPublic\":true},\"getJournal\":{\"name\":\"getJournal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Journal | null>\",\"isStatic\":false,\"isPublic\":true},\"markFailed\":{\"name\":\"markFailed\",\"async\":false,\"parameters\":[{\"name\":\"reason\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"cancel\":{\"name\":\"cancel\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"],\"writable\":[\"contractId\",\"customerId\",\"amount\",\"currency\",\"method\",\"transactionId\",\"reference\",\"notes\",\"externalId\",\"externalProvider\",\"backendId\",\"backendTxRef\",\"nativeAmount\",\"nativeCurrency\",\"usdAtQuote\",\"usdAtConfirmation\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Payment\",\"collectionExportName\":\"PaymentCollection\",\"schema\":{\"tableName\":\"payments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"customer_id\\\" UUID,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"method\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"transaction_id\\\" TEXT DEFAULT '',\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"journal_id\\\" UUID,\\n \\\"paid_at\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"external_provider\\\" TEXT DEFAULT '',\\n \\\"synced_at\\\" TIMESTAMP,\\n \\\"backend_id\\\" TEXT DEFAULT '',\\n \\\"backend_tx_ref\\\" TEXT DEFAULT '',\\n \\\"native_amount\\\" INTEGER DEFAULT 0,\\n \\\"native_currency\\\" TEXT DEFAULT '',\\n \\\"usd_at_quote\\\" INTEGER DEFAULT 0,\\n \\\"usd_at_confirmation\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"method\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"transaction_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"journal_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"paid_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"external_provider\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"synced_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"backend_tx_ref\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"native_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"native_currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"usd_at_quote\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"usd_at_confirmation\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0}},\"indexes\":[{\"name\":\"payments_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payments_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"payments_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"payments_journal_id_idx\",\"columns\":[\"journal_id\"]}],\"version\":\"33f80e50\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentAllocation\":{\"name\":\"paymentallocation\",\"className\":\"PaymentAllocation\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentAllocation\",\"collection\":\"paymentallocations\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/PaymentAllocation.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"paymentId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Payment\"},\"invoiceId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Invoice\"},\"amount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"allocatedAt\":{\"type\":\"datetime\",\"required\":false},\"allocatedBy\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"include\":[\"list\",\"get\"]},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"PaymentAllocation\",\"collectionExportName\":\"PaymentAllocationCollection\",\"schema\":{\"tableName\":\"payment_allocations\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payment_allocations\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"payment_id\\\" UUID,\\n \\\"invoice_id\\\" UUID,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"allocated_at\\\" TIMESTAMP,\\n \\\"allocated_by\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"payment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"payments\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"invoice_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"invoices\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"allocated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"allocated_by\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"payment_allocations_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payment_allocations_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payment_allocations_payment_id_idx\",\"columns\":[\"payment_id\"]},{\"name\":\"payment_allocations_invoice_id_idx\",\"columns\":[\"invoice_id\"]}],\"version\":\"102e6fbc\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentInstrument\":{\"name\":\"paymentinstrument\",\"className\":\"PaymentInstrument\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentInstrument\",\"collection\":\"paymentinstruments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/PaymentInstrument.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"backendId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"providerCustomerId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"providerPaymentMethodId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"type\":{\"type\":\"text\",\"required\":false,\"default\":\"card\"},\"brand\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"last4\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"expMonth\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"expYear\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"isDefault\":{\"type\":\"boolean\",\"required\":false,\"default\":false},\"status\":{\"type\":\"text\",\"required\":false}},\"methods\":{\"isActive\":{\"name\":\"isActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isRemoved\":{\"name\":\"isRemoved\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"markExpired\":{\"name\":\"markExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markRemoved\":{\"name\":\"markRemoved\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"],\"writable\":[\"customerId\",\"backendId\",\"providerCustomerId\",\"providerPaymentMethodId\",\"type\",\"brand\",\"last4\",\"expMonth\",\"expYear\",\"status\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"PaymentInstrument\",\"collectionExportName\":\"PaymentInstrumentCollection\",\"schema\":{\"tableName\":\"payment_instruments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payment_instruments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"customer_id\\\" UUID,\\n \\\"backend_id\\\" TEXT DEFAULT '',\\n \\\"provider_customer_id\\\" TEXT DEFAULT '',\\n \\\"provider_payment_method_id\\\" TEXT DEFAULT '',\\n \\\"type\\\" TEXT DEFAULT 'card',\\n \\\"brand\\\" TEXT DEFAULT '',\\n \\\"last4\\\" TEXT DEFAULT '',\\n \\\"exp_month\\\" INTEGER DEFAULT 0,\\n \\\"exp_year\\\" INTEGER DEFAULT 0,\\n \\\"is_default\\\" BOOLEAN DEFAULT FALSE,\\n \\\"status\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider_customer_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider_payment_method_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"card\"},\"brand\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"last4\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"exp_month\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"exp_year\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"is_default\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"payment_instruments_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payment_instruments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payment_instruments_customer_id_idx\",\"columns\":[\"customer_id\"]}],\"version\":\"722393fe\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentIntent\":{\"name\":\"paymentintent\",\"className\":\"PaymentIntent\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentIntent\",\"collection\":\"paymentintents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/PaymentIntent.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"skuId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"offeringRef\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"licenseeEmail\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"customerId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"paymentOptions\":{\"type\":\"json\",\"required\":false,\"default\":[]},\"usdPriceLocked\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"priceLockWindowMs\":{\"type\":\"integer\",\"required\":false},\"priceLockExpiresAt\":{\"type\":\"datetime\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"idempotencyKey\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"paidOptionBackendId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"paymentId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"paidAt\":{\"type\":\"datetime\",\"required\":false},\"issuedAt\":{\"type\":\"datetime\",\"required\":false},\"expiredAt\":{\"type\":\"datetime\",\"required\":false},\"cancelledAt\":{\"type\":\"datetime\",\"required\":false},\"retiredAt\":{\"type\":\"datetime\",\"required\":false},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"isAwaitingPayment\":{\"name\":\"isAwaitingPayment\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPaid\":{\"name\":\"isPaid\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isIssued\":{\"name\":\"isIssued\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCancelled\":{\"name\":\"isCancelled\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isRetired\":{\"name\":\"isRetired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isTerminal\":{\"name\":\"isTerminal\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"markPaid\":{\"name\":\"markPaid\",\"async\":false,\"parameters\":[{\"name\":\"args\",\"type\":\"object\",\"optional\":false,\"memberTypes\":[\"string\"]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"verifyAndMarkPaid\":{\"name\":\"verifyAndMarkPaid\",\"async\":true,\"parameters\":[{\"name\":\"args\",\"type\":\"object\",\"optional\":false,\"memberTypes\":[\"string\"]}],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"markIssued\":{\"name\":\"markIssued\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"expire\":{\"name\":\"expire\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"cancel\":{\"name\":\"cancel\",\"async\":false,\"parameters\":[{\"name\":\"reason\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"retire\":{\"name\":\"retire\",\"async\":false,\"parameters\":[{\"name\":\"reason\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"getOption\":{\"name\":\"getOption\",\"async\":false,\"parameters\":[{\"name\":\"backendId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"PaymentOption | undefined\",\"isStatic\":false,\"isPublic\":true},\"isOptionRetired\":{\"name\":\"isOptionRetired\",\"async\":false,\"parameters\":[{\"name\":\"backendId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getRetiredOptions\":{\"name\":\"getRetiredOptions\",\"async\":false,\"parameters\":[],\"returnType\":\"PaymentOption[]\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"conflictColumns\":[\"tenant_id\",\"offering_ref\",\"licensee_email\",\"idempotency_key\"],\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"],\"writable\":[\"skuId\",\"offeringRef\",\"licenseeEmail\",\"customerId\",\"paymentOptions\",\"usdPriceLocked\",\"priceLockWindowMs\",\"idempotencyKey\",\"notes\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"}},\"extends\":\"SmrtObject\",\"exportName\":\"PaymentIntent\",\"collectionExportName\":\"PaymentIntentCollection\",\"schema\":{\"tableName\":\"payment_intents\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payment_intents\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"sku_id\\\" TEXT DEFAULT '',\\n \\\"offering_ref\\\" TEXT DEFAULT '',\\n \\\"licensee_email\\\" TEXT DEFAULT '',\\n \\\"customer_id\\\" TEXT DEFAULT '',\\n \\\"payment_options\\\" JSON DEFAULT '[]',\\n \\\"usd_price_locked\\\" INTEGER DEFAULT 0,\\n \\\"price_lock_window_ms\\\" INTEGER,\\n \\\"price_lock_expires_at\\\" TIMESTAMP,\\n \\\"status\\\" TEXT,\\n \\\"idempotency_key\\\" TEXT DEFAULT '',\\n \\\"paid_option_backend_id\\\" TEXT DEFAULT '',\\n \\\"payment_id\\\" TEXT DEFAULT '',\\n \\\"paid_at\\\" TIMESTAMP,\\n \\\"issued_at\\\" TIMESTAMP,\\n \\\"expired_at\\\" TIMESTAMP,\\n \\\"cancelled_at\\\" TIMESTAMP,\\n \\\"retired_at\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"sku_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"offering_ref\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"licensee_email\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"customer_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"payment_options\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false,\"default\":[]},\"usd_price_locked\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"price_lock_window_ms\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"price_lock_expires_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"idempotency_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"paid_option_backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"payment_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"paid_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"issued_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"expired_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"cancelled_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"retired_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"payment_intents_tenant_id_offering_ref_idx\",\"columns\":[\"tenant_id\",\"offering_ref\",\"licensee_email\",\"idempotency_key\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payment_intents_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"payment_intents_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"c565aaef\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Payout\":{\"name\":\"payout\",\"className\":\"Payout\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Payout\",\"collection\":\"payouts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Payout.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"paymentId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"grossAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"operatorFee\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"supplierNet\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"backendId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"backendTxRef\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"status\":{\"type\":\"text\",\"required\":false},\"sentAt\":{\"type\":\"datetime\",\"required\":false},\"confirmedAt\":{\"type\":\"datetime\",\"required\":false},\"failedAt\":{\"type\":\"datetime\",\"required\":false},\"failureReason\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"isPending\":{\"name\":\"isPending\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isSent\":{\"name\":\"isSent\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isConfirmed\":{\"name\":\"isConfirmed\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isFailed\":{\"name\":\"isFailed\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"markSent\":{\"name\":\"markSent\",\"async\":false,\"parameters\":[{\"name\":\"backendTxRef\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markConfirmed\":{\"name\":\"markConfirmed\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markFailed\":{\"name\":\"markFailed\",\"async\":false,\"parameters\":[{\"name\":\"reason\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"resetFromFailed\":{\"name\":\"resetFromFailed\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"validateAmounts\":{\"name\":\"validateAmounts\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"include\":[\"list\",\"get\"]},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Payout\",\"collectionExportName\":\"PayoutCollection\",\"schema\":{\"tableName\":\"payouts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payouts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"payment_id\\\" TEXT DEFAULT '',\\n \\\"vendor_id\\\" UUID,\\n \\\"gross_amount\\\" INTEGER DEFAULT 0,\\n \\\"operator_fee\\\" INTEGER DEFAULT 0,\\n \\\"supplier_net\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT '',\\n \\\"backend_id\\\" TEXT DEFAULT '',\\n \\\"backend_tx_ref\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT,\\n \\\"sent_at\\\" TIMESTAMP,\\n \\\"confirmed_at\\\" TIMESTAMP,\\n \\\"failed_at\\\" TIMESTAMP,\\n \\\"failure_reason\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"payment_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"gross_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"operator_fee\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"supplier_net\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"backend_tx_ref\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"confirmed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"failed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"failure_reason\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"payouts_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payouts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payouts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"98fa81d5\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Vendor\":{\"name\":\"vendor\",\"className\":\"Vendor\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Vendor\",\"collection\":\"vendors\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Vendor.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"profileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\"},\"leadTimeDays\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"minimumOrderAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"paymentTerms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"defaultContactEmail\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"defaultContactPhone\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"status\":{\"type\":\"text\",\"required\":false},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"payoutAddresses\":{\"type\":\"json\",\"required\":false,\"default\":{},\"_meta\":{\"sensitive\":true},\"sensitive\":true}},\"methods\":{\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"isActive\":{\"name\":\"isActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"meetsMinimumOrder\":{\"name\":\"meetsMinimumOrder\",\"async\":false,\"parameters\":[{\"name\":\"amount\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getProfileId\":{\"name\":\"getProfileId\",\"async\":false,\"parameters\":[],\"returnType\":\"string\",\"isStatic\":false,\"isPublic\":true},\"getPayoutAddress\":{\"name\":\"getPayoutAddress\",\"async\":false,\"parameters\":[{\"name\":\"currency\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"string | undefined\",\"isStatic\":false,\"isPublic\":true},\"setPayoutAddress\":{\"name\":\"setPayoutAddress\",\"async\":false,\"parameters\":[{\"name\":\"currency\",\"type\":\"string\",\"optional\":false},{\"name\":\"destination\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"this\",\"isStatic\":false,\"isPublic\":true},\"clearPayoutAddress\":{\"name\":\"clearPayoutAddress\",\"async\":false,\"parameters\":[{\"name\":\"currency\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"this\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Vendor\",\"collectionExportName\":\"VendorCollection\",\"schema\":{\"tableName\":\"vendors\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"vendors\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"profile_id\\\" UUID,\\n \\\"lead_time_days\\\" INTEGER DEFAULT 0,\\n \\\"minimum_order_amount\\\" INTEGER DEFAULT 0,\\n \\\"payment_terms\\\" TEXT DEFAULT '',\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"default_contact_email\\\" TEXT DEFAULT '',\\n \\\"default_contact_phone\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT,\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"payout_addresses\\\" JSON DEFAULT '{}'\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"lead_time_days\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"minimum_order_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"payment_terms\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"default_contact_email\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"default_contact_phone\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"payout_addresses\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false,\"default\":{}}},\"indexes\":[{\"name\":\"vendors_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"vendors_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"vendors_profile_id_idx\",\"columns\":[\"profile_id\"]}],\"version\":\"1dc2b65e\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:BillingAccount\":{\"name\":\"billingaccount\",\"className\":\"BillingAccount\",\"qualifiedName\":\"@happyvertical/smrt-commerce:BillingAccount\",\"collection\":\"billingaccounts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/billing.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"sellerTenantId\":{\"type\":\"crossPackageRef\",\"required\":true,\"related\":\"@happyvertical/smrt-users:Tenant\",\"_meta\":{\"required\":true}},\"payerTenantId\":{\"type\":\"crossPackageRef\",\"required\":true,\"related\":\"@happyvertical/smrt-users:Tenant\",\"_meta\":{\"required\":true}},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"email\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"provider\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"providerCustomerId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"automaticTax\":{\"type\":\"boolean\",\"required\":false,\"default\":true},\"flatDiscountBasisPoints\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"paymentTermsDays\":{\"type\":\"integer\",\"required\":false,\"default\":30},\"standing\":{\"type\":\"text\",\"required\":false,\"default\":\"current\"}},\"methods\":{},\"decoratorConfig\":{\"tableName\":\"_smrt_billing_accounts\",\"conflictColumns\":[\"seller_tenant_id\",\"payer_tenant_id\"],\"api\":false,\"cli\":false,\"mcp\":false},\"extends\":\"SmrtObject\",\"exportName\":\"BillingAccount\",\"collectionExportName\":\"BillingAccountCollection\",\"validationRules\":[{\"field\":\"sellerTenantId\",\"rule\":\"required\",\"fieldType\":\"crossPackageRef\"},{\"field\":\"payerTenantId\",\"rule\":\"required\",\"fieldType\":\"crossPackageRef\"}],\"schema\":{\"tableName\":\"_smrt_billing_accounts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_billing_accounts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"seller_tenant_id\\\" UUID NOT NULL,\\n \\\"payer_tenant_id\\\" UUID NOT NULL,\\n \\\"customer_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"email\\\" TEXT DEFAULT '',\\n \\\"provider\\\" TEXT DEFAULT '',\\n \\\"provider_customer_id\\\" TEXT DEFAULT '',\\n \\\"automatic_tax\\\" BOOLEAN DEFAULT TRUE,\\n \\\"flat_discount_basis_points\\\" INTEGER DEFAULT 0,\\n \\\"payment_terms_days\\\" INTEGER DEFAULT 30,\\n \\\"standing\\\" TEXT DEFAULT 'current'\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"seller_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"payer_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"email\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider_customer_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"automatic_tax\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":true},\"flat_discount_basis_points\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"payment_terms_days\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":30},\"standing\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"current\"}},\"indexes\":[{\"name\":\"_smrt_billing_accounts_seller_tenant_id_payer_tenant_id_idx\",\"columns\":[\"seller_tenant_id\",\"payer_tenant_id\"],\"unique\":true},{\"name\":\"_smrt_billing_accounts_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_billing_accounts_created_at_idx\",\"columns\":[\"created_at\"]},{\"name\":\"_smrt_billing_accounts_payer_tenant_id_idx\",\"columns\":[\"payer_tenant_id\"]},{\"name\":\"_smrt_billing_accounts_customer_id_idx\",\"columns\":[\"customer_id\"]}],\"version\":\"c9e78d38\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:BillingPeriodClose\":{\"name\":\"billingperiodclose\",\"className\":\"BillingPeriodClose\",\"qualifiedName\":\"@happyvertical/smrt-commerce:BillingPeriodClose\",\"collection\":\"billingperiodcloses\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/billing.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"sellerTenantId\":{\"type\":\"crossPackageRef\",\"required\":true,\"related\":\"@happyvertical/smrt-users:Tenant\",\"_meta\":{\"required\":true}},\"kind\":{\"type\":\"text\",\"required\":false,\"default\":\"provider\"},\"payerTenantId\":{\"type\":\"crossPackageRef\",\"required\":true,\"related\":\"@happyvertical/smrt-users:Tenant\",\"_meta\":{\"required\":true}},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"periodStart\":{\"type\":\"datetime\",\"required\":false},\"periodEnd\":{\"type\":\"datetime\",\"required\":false},\"billingAccountId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"BillingAccount\"},\"status\":{\"type\":\"text\",\"required\":false,\"default\":\"collecting\"},\"invoiceId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Invoice\"},\"providerInvoiceId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"lineCount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"issuedAt\":{\"type\":\"datetime\",\"required\":false},\"leaseToken\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"nullable\":true}},\"leaseExpiresAt\":{\"type\":\"datetime\",\"required\":false,\"_meta\":{\"nullable\":true}},\"attempts\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"lastError\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"runPeriodClose\":{\"name\":\"runPeriodClose\",\"async\":true,\"parameters\":[{\"name\":\"args\",\"type\":\"Record<string, unknown>\",\"optional\":true},{\"name\":\"_context\",\"type\":\"JobExecutionContext\",\"optional\":true}],\"returnType\":\"Promise<unknown>\",\"isStatic\":false,\"isPublic\":true},\"processBillingEvents\":{\"name\":\"processBillingEvents\",\"async\":true,\"parameters\":[{\"name\":\"args\",\"type\":\"Record<string, unknown>\",\"optional\":true},{\"name\":\"_context\",\"type\":\"JobExecutionContext\",\"optional\":true}],\"returnType\":\"Promise<unknown>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_billing_period_closes\",\"conflictColumns\":[\"seller_tenant_id\",\"kind\",\"payer_tenant_id\",\"currency\",\"period_start\",\"period_end\"],\"api\":false,\"cli\":false,\"mcp\":false},\"extends\":\"SmrtObject\",\"exportName\":\"BillingPeriodClose\",\"collectionExportName\":\"BillingPeriodCloseCollection\",\"validationRules\":[{\"field\":\"sellerTenantId\",\"rule\":\"required\",\"fieldType\":\"crossPackageRef\"},{\"field\":\"payerTenantId\",\"rule\":\"required\",\"fieldType\":\"crossPackageRef\"}],\"schema\":{\"tableName\":\"_smrt_billing_period_closes\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_billing_period_closes\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"seller_tenant_id\\\" UUID NOT NULL,\\n \\\"kind\\\" TEXT DEFAULT 'provider',\\n \\\"payer_tenant_id\\\" UUID NOT NULL,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"period_start\\\" TIMESTAMP,\\n \\\"period_end\\\" TIMESTAMP,\\n \\\"billing_account_id\\\" UUID,\\n \\\"status\\\" TEXT DEFAULT 'collecting',\\n \\\"invoice_id\\\" UUID,\\n \\\"provider_invoice_id\\\" TEXT DEFAULT '',\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"line_count\\\" INTEGER DEFAULT 0,\\n \\\"issued_at\\\" TIMESTAMP,\\n \\\"lease_token\\\" TEXT,\\n \\\"lease_expires_at\\\" TIMESTAMP,\\n \\\"attempts\\\" INTEGER DEFAULT 0,\\n \\\"last_error\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"seller_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"provider\"},\"payer_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"period_start\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"period_end\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"billing_account_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"_smrt_billing_accounts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"collecting\"},\"invoice_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"invoices\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"provider_invoice_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"line_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"issued_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"lease_token\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"lease_expires_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"attempts\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"last_error\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"_smrt_billing_period_closes_seller_tenant_id_kind_idx\",\"columns\":[\"seller_tenant_id\",\"kind\",\"payer_tenant_id\",\"currency\",\"period_start\",\"period_end\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_billing_period_closes_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_billing_period_closes_created_at_idx\",\"columns\":[\"created_at\"]},{\"name\":\"_smrt_billing_period_closes_payer_tenant_id_idx\",\"columns\":[\"payer_tenant_id\"]},{\"name\":\"_smrt_billing_period_closes_billing_account_id_idx\",\"columns\":[\"billing_account_id\"]},{\"name\":\"_smrt_billing_period_closes_invoice_id_idx\",\"columns\":[\"invoice_id\"]}],\"version\":\"753d2e86\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:BillingLineSource\":{\"name\":\"billinglinesource\",\"className\":\"BillingLineSource\",\"qualifiedName\":\"@happyvertical/smrt-commerce:BillingLineSource\",\"collection\":\"billinglinesources\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/billing.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"sellerTenantId\":{\"type\":\"crossPackageRef\",\"required\":true,\"related\":\"@happyvertical/smrt-users:Tenant\",\"_meta\":{\"required\":true}},\"periodCloseId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"BillingPeriodClose\"},\"sourceType\":{\"type\":\"text\",\"required\":false,\"default\":\"client_charge\"},\"sourceId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"lineKey\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"lineDescription\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"amount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"discount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"quantity\":{\"type\":\"decimal\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"periodStart\":{\"type\":\"datetime\",\"required\":false},\"periodEnd\":{\"type\":\"datetime\",\"required\":false}},\"methods\":{},\"decoratorConfig\":{\"tableName\":\"_smrt_billing_line_sources\",\"conflictColumns\":[\"source_type\",\"source_id\"],\"api\":false,\"cli\":false,\"mcp\":false},\"extends\":\"SmrtObject\",\"exportName\":\"BillingLineSource\",\"collectionExportName\":\"BillingLineSourceCollection\",\"validationRules\":[{\"field\":\"sellerTenantId\",\"rule\":\"required\",\"fieldType\":\"crossPackageRef\"}],\"schema\":{\"tableName\":\"_smrt_billing_line_sources\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_billing_line_sources\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"seller_tenant_id\\\" UUID NOT NULL,\\n \\\"period_close_id\\\" UUID,\\n \\\"source_type\\\" TEXT DEFAULT 'client_charge',\\n \\\"source_id\\\" TEXT DEFAULT '',\\n \\\"line_key\\\" TEXT DEFAULT '',\\n \\\"line_description\\\" TEXT DEFAULT '',\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"discount\\\" INTEGER DEFAULT 0,\\n \\\"quantity\\\" REAL DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"period_start\\\" TIMESTAMP,\\n \\\"period_end\\\" TIMESTAMP\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"seller_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"period_close_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"_smrt_billing_period_closes\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"source_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"client_charge\"},\"source_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"line_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"line_description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"discount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"quantity\":{\"type\":\"REAL\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"period_start\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"period_end\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"_smrt_billing_line_sources_source_type_source_id_idx\",\"columns\":[\"source_type\",\"source_id\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_billing_line_sources_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_billing_line_sources_created_at_idx\",\"columns\":[\"created_at\"]},{\"name\":\"_smrt_billing_line_sources_seller_tenant_id_idx\",\"columns\":[\"seller_tenant_id\"]},{\"name\":\"_smrt_billing_line_sources_period_close_id_idx\",\"columns\":[\"period_close_id\"]}],\"version\":\"60dec9a2\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:BillingAccountCollection\":{\"name\":\"billingaccountcollection\",\"className\":\"BillingAccountCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:BillingAccountCollection\",\"collection\":\"billingaccounts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/billing.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"tableName\":\"_smrt_billing_accounts\",\"api\":false,\"mcp\":false,\"cli\":false},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"BillingAccount\",\"exportName\":\"BillingAccountCollection\",\"collectionExportName\":\"BillingAccountCollectionCollection\",\"schema\":{\"tableName\":\"_smrt_billing_accounts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_billing_accounts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"seller_tenant_id\\\" UUID NOT NULL,\\n \\\"payer_tenant_id\\\" UUID NOT NULL,\\n \\\"customer_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"email\\\" TEXT DEFAULT '',\\n \\\"provider\\\" TEXT DEFAULT '',\\n \\\"provider_customer_id\\\" TEXT DEFAULT '',\\n \\\"automatic_tax\\\" BOOLEAN DEFAULT TRUE,\\n \\\"flat_discount_basis_points\\\" INTEGER DEFAULT 0,\\n \\\"payment_terms_days\\\" INTEGER DEFAULT 30,\\n \\\"standing\\\" TEXT DEFAULT 'current'\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"seller_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"payer_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"email\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider_customer_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"automatic_tax\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":true},\"flat_discount_basis_points\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"payment_terms_days\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":30},\"standing\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"current\"}},\"indexes\":[{\"name\":\"_smrt_billing_accounts_seller_tenant_id_payer_tenant_id_idx\",\"columns\":[\"seller_tenant_id\",\"payer_tenant_id\"],\"unique\":true},{\"name\":\"_smrt_billing_accounts_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_billing_accounts_created_at_idx\",\"columns\":[\"created_at\"]},{\"name\":\"_smrt_billing_accounts_payer_tenant_id_idx\",\"columns\":[\"payer_tenant_id\"]},{\"name\":\"_smrt_billing_accounts_customer_id_idx\",\"columns\":[\"customer_id\"]}],\"version\":\"c9e78d38\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:BillingPeriodCloseCollection\":{\"name\":\"billingperiodclosecollection\",\"className\":\"BillingPeriodCloseCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:BillingPeriodCloseCollection\",\"collection\":\"billingperiodcloses\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/billing.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"tableName\":\"_smrt_billing_period_closes\",\"api\":false,\"mcp\":false,\"cli\":false},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"BillingPeriodClose\",\"exportName\":\"BillingPeriodCloseCollection\",\"collectionExportName\":\"BillingPeriodCloseCollectionCollection\",\"schema\":{\"tableName\":\"_smrt_billing_period_closes\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_billing_period_closes\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"seller_tenant_id\\\" UUID NOT NULL,\\n \\\"kind\\\" TEXT DEFAULT 'provider',\\n \\\"payer_tenant_id\\\" UUID NOT NULL,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"period_start\\\" TIMESTAMP,\\n \\\"period_end\\\" TIMESTAMP,\\n \\\"billing_account_id\\\" UUID,\\n \\\"status\\\" TEXT DEFAULT 'collecting',\\n \\\"invoice_id\\\" UUID,\\n \\\"provider_invoice_id\\\" TEXT DEFAULT '',\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"line_count\\\" INTEGER DEFAULT 0,\\n \\\"issued_at\\\" TIMESTAMP,\\n \\\"lease_token\\\" TEXT,\\n \\\"lease_expires_at\\\" TIMESTAMP,\\n \\\"attempts\\\" INTEGER DEFAULT 0,\\n \\\"last_error\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"seller_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"provider\"},\"payer_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"period_start\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"period_end\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"billing_account_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"_smrt_billing_accounts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"collecting\"},\"invoice_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"invoices\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"provider_invoice_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"line_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"issued_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"lease_token\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"lease_expires_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"attempts\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"last_error\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"_smrt_billing_period_closes_seller_tenant_id_kind_idx\",\"columns\":[\"seller_tenant_id\",\"kind\",\"payer_tenant_id\",\"currency\",\"period_start\",\"period_end\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_billing_period_closes_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_billing_period_closes_created_at_idx\",\"columns\":[\"created_at\"]},{\"name\":\"_smrt_billing_period_closes_payer_tenant_id_idx\",\"columns\":[\"payer_tenant_id\"]},{\"name\":\"_smrt_billing_period_closes_billing_account_id_idx\",\"columns\":[\"billing_account_id\"]},{\"name\":\"_smrt_billing_period_closes_invoice_id_idx\",\"columns\":[\"invoice_id\"]}],\"version\":\"753d2e86\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:BillingLineSourceCollection\":{\"name\":\"billinglinesourcecollection\",\"className\":\"BillingLineSourceCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:BillingLineSourceCollection\",\"collection\":\"billinglinesources\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/billing.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"tableName\":\"_smrt_billing_line_sources\",\"api\":false,\"mcp\":false,\"cli\":false},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"BillingLineSource\",\"exportName\":\"BillingLineSourceCollection\",\"collectionExportName\":\"BillingLineSourceCollectionCollection\",\"schema\":{\"tableName\":\"_smrt_billing_line_sources\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_billing_line_sources\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"seller_tenant_id\\\" UUID NOT NULL,\\n \\\"period_close_id\\\" UUID,\\n \\\"source_type\\\" TEXT DEFAULT 'client_charge',\\n \\\"source_id\\\" TEXT DEFAULT '',\\n \\\"line_key\\\" TEXT DEFAULT '',\\n \\\"line_description\\\" TEXT DEFAULT '',\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"discount\\\" INTEGER DEFAULT 0,\\n \\\"quantity\\\" REAL DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"period_start\\\" TIMESTAMP,\\n \\\"period_end\\\" TIMESTAMP\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"seller_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"period_close_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"_smrt_billing_period_closes\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"source_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"client_charge\"},\"source_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"line_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"line_description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"discount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"quantity\":{\"type\":\"REAL\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"period_start\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"period_end\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"_smrt_billing_line_sources_source_type_source_id_idx\",\"columns\":[\"source_type\",\"source_id\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_billing_line_sources_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_billing_line_sources_created_at_idx\",\"columns\":[\"created_at\"]},{\"name\":\"_smrt_billing_line_sources_seller_tenant_id_idx\",\"columns\":[\"seller_tenant_id\"]},{\"name\":\"_smrt_billing_line_sources_period_close_id_idx\",\"columns\":[\"period_close_id\"]}],\"version\":\"60dec9a2\"},\"importPath\":\"@happyvertical/smrt-commerce\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-ledgers\",\"@happyvertical/smrt-subscriptions\",\"@happyvertical/smrt-tenancy\"]}"));
|
|
24
|
+
ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-commerce\",\"packageVersion\":\"0.51.27\",\"objects\":{\"@happyvertical/smrt-commerce:ContractCollection\":{\"name\":\"contractcollection\",\"className\":\"ContractCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:ContractCollection\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/ContractCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByCustomer\":{\"name\":\"findByCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findByVendor\":{\"name\":\"findByVendor\",\"async\":true,\"parameters\":[{\"name\":\"vendorId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findByType\":{\"name\":\"findByType\",\"async\":true,\"parameters\":[{\"name\":\"contractType\",\"type\":\"ContractType\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"ContractStatus\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findDrafts\":{\"name\":\"findDrafts\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findAccepted\":{\"name\":\"findAccepted\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findOverdue\":{\"name\":\"findOverdue\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findExpired\":{\"name\":\"findExpired\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Contract[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Contract\",\"exportName\":\"ContractCollection\",\"collectionExportName\":\"ContractCollectionCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"9c2e9c49\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:ContractLineItemCollection\":{\"name\":\"contractlineitemcollection\",\"className\":\"ContractLineItemCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:ContractLineItemCollection\",\"collection\":\"contractlineitems\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/ContractLineItemCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByContract\":{\"name\":\"findByContract\",\"async\":true,\"parameters\":[{\"name\":\"contractId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<ContractLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<ContractLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<ContractLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<ContractLineItem[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"ContractLineItem\",\"exportName\":\"ContractLineItemCollection\",\"collectionExportName\":\"ContractLineItemCollectionCollection\",\"schema\":{\"tableName\":\"contract_line_items\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contract_line_items\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"quantity\\\" REAL DEFAULT 1,\\n \\\"unit_price\\\" INTEGER DEFAULT 0,\\n \\\"discount\\\" INTEGER DEFAULT 0,\\n \\\"tax_rate\\\" REAL DEFAULT 0,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"product_id\\\" UUID,\\n \\\"sku\\\" TEXT DEFAULT '',\\n \\\"start_date\\\" TIMESTAMP,\\n \\\"end_date\\\" TIMESTAMP,\\n \\\"billing_period\\\" TEXT DEFAULT '',\\n \\\"sort_order\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"quantity\":{\"type\":\"REAL\",\"notNull\":false,\"default\":1},\"unit_price\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"discount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_rate\":{\"type\":\"REAL\",\"notNull\":false,\"default\":0},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"product_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"sku\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"start_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"end_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"billing_period\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"sort_order\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0}},\"indexes\":[{\"name\":\"contract_line_items_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contract_line_items_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contract_line_items_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contract_line_items_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"contract_line_items_product_id_idx\",\"columns\":[\"product_id\"]}],\"version\":\"be2b46cd\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:CustomerCollection\":{\"name\":\"customercollection\",\"className\":\"CustomerCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:CustomerCollection\",\"collection\":\"customers\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/CustomerCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByProfile\":{\"name\":\"findByProfile\",\"async\":true,\"parameters\":[{\"name\":\"profileId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Customer[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Customer[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"CustomerStatus\",\"optional\":false}],\"returnType\":\"Promise<Customer[]>\",\"isStatic\":false,\"isPublic\":true},\"getOrCreateForProfile\":{\"name\":\"getOrCreateForProfile\",\"async\":true,\"parameters\":[{\"name\":\"profileId\",\"type\":\"string\",\"optional\":false},{\"name\":\"defaults\",\"type\":\"Partial<object>\",\"optional\":true,\"memberTypes\":[\"number\",\"string\"]}],\"returnType\":\"Promise<Customer>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Customer[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Customer[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Customer[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Customer\",\"exportName\":\"CustomerCollection\",\"collectionExportName\":\"CustomerCollectionCollection\",\"schema\":{\"tableName\":\"customers\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"customers\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"profile_id\\\" UUID,\\n \\\"credit_limit\\\" INTEGER DEFAULT 0,\\n \\\"payment_terms\\\" TEXT DEFAULT '',\\n \\\"tax_exempt\\\" BOOLEAN DEFAULT FALSE,\\n \\\"tax_id\\\" TEXT DEFAULT '',\\n \\\"default_shipping_address\\\" JSON,\\n \\\"default_billing_address\\\" JSON,\\n \\\"status\\\" TEXT,\\n \\\"customer_type\\\" TEXT,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"credit_limit\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"payment_terms\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"tax_exempt\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false},\"tax_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"default_shipping_address\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false},\"default_billing_address\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"customer_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"customers_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"customers_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"customers_profile_id_idx\",\"columns\":[\"profile_id\"]}],\"version\":\"ad1b9967\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:FulfillmentCollection\":{\"name\":\"fulfillmentcollection\",\"className\":\"FulfillmentCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:FulfillmentCollection\",\"collection\":\"fulfillments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/FulfillmentCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByContract\":{\"name\":\"findByContract\",\"async\":true,\"parameters\":[{\"name\":\"contractId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"FulfillmentStatus\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByType\":{\"name\":\"findByType\",\"async\":true,\"parameters\":[{\"name\":\"fulfillmentType\",\"type\":\"FulfillmentType\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findPending\":{\"name\":\"findPending\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findInTransit\":{\"name\":\"findInTransit\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTracking\":{\"name\":\"findByTracking\",\"async\":true,\"parameters\":[{\"name\":\"trackingNumber\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment | null>\",\"isStatic\":false,\"isPublic\":true},\"findShippedInRange\":{\"name\":\"findShippedInRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Fulfillment[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Fulfillment\",\"exportName\":\"FulfillmentCollection\",\"collectionExportName\":\"FulfillmentCollectionCollection\",\"schema\":{\"tableName\":\"fulfillments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"fulfillments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"fulfillment_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"tracking_number\\\" TEXT DEFAULT '',\\n \\\"carrier\\\" TEXT DEFAULT '',\\n \\\"shipping_address\\\" JSON,\\n \\\"shipped_at\\\" TIMESTAMP,\\n \\\"delivered_at\\\" TIMESTAMP,\\n \\\"estimated_delivery\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"fulfillment_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"tracking_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"carrier\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"shipping_address\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false},\"shipped_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"delivered_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"estimated_delivery\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"fulfillments_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"fulfillments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"fulfillments_contract_id_idx\",\"columns\":[\"contract_id\"]}],\"version\":\"2f708fc5\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:FulfillmentLineItemCollection\":{\"name\":\"fulfillmentlineitemcollection\",\"className\":\"FulfillmentLineItemCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:FulfillmentLineItemCollection\",\"collection\":\"fulfillmentlineitems\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/FulfillmentLineItemCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByFulfillment\":{\"name\":\"findByFulfillment\",\"async\":true,\"parameters\":[{\"name\":\"fulfillmentId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FulfillmentLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findByContractLineItem\":{\"name\":\"findByContractLineItem\",\"async\":true,\"parameters\":[{\"name\":\"contractLineItemId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FulfillmentLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"getTotalFulfilledForContractLine\":{\"name\":\"getTotalFulfilledForContractLine\",\"async\":true,\"parameters\":[{\"name\":\"contractLineItemId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FulfillmentLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<FulfillmentLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FulfillmentLineItem[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"FulfillmentLineItem\",\"exportName\":\"FulfillmentLineItemCollection\",\"collectionExportName\":\"FulfillmentLineItemCollectionCollection\",\"schema\":{\"tableName\":\"fulfillment_line_items\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"fulfillment_line_items\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"fulfillment_id\\\" UUID,\\n \\\"contract_line_item_id\\\" UUID,\\n \\\"quantity_fulfilled\\\" REAL DEFAULT 1,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"fulfillment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"fulfillments\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"contract_line_item_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contract_line_items\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"quantity_fulfilled\":{\"type\":\"REAL\",\"notNull\":false,\"unique\":false,\"default\":1},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"fulfillment_line_items_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"fulfillment_line_items_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"fulfillment_line_items_fulfillment_id_idx\",\"columns\":[\"fulfillment_id\"]},{\"name\":\"fulfillment_line_items_contract_line_item_id_idx\",\"columns\":[\"contract_line_item_id\"]}],\"version\":\"14537dbe\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:InvoiceCollection\":{\"name\":\"invoicecollection\",\"className\":\"InvoiceCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:InvoiceCollection\",\"collection\":\"invoices\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/InvoiceCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByCustomer\":{\"name\":\"findByCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findByContract\":{\"name\":\"findByContract\",\"async\":true,\"parameters\":[{\"name\":\"contractId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"InvoiceStatus\",\"optional\":false}],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findDrafts\":{\"name\":\"findDrafts\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findSent\":{\"name\":\"findSent\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findPaid\":{\"name\":\"findPaid\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findPartial\":{\"name\":\"findPartial\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findOverdue\":{\"name\":\"findOverdue\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findByExternalId\":{\"name\":\"findByExternalId\",\"async\":true,\"parameters\":[{\"name\":\"externalId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Invoice | null>\",\"isStatic\":false,\"isPublic\":true},\"findNeedingSync\":{\"name\":\"findNeedingSync\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findByNumber\":{\"name\":\"findByNumber\",\"async\":true,\"parameters\":[{\"name\":\"invoiceNumber\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Invoice | null>\",\"isStatic\":false,\"isPublic\":true},\"countForYear\":{\"name\":\"countForYear\",\"async\":true,\"parameters\":[{\"name\":\"year\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"generateInvoiceNumber\":{\"name\":\"generateInvoiceNumber\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"InvoiceNumberOptions\",\"optional\":true}],\"returnType\":\"Promise<string>\",\"isStatic\":false,\"isPublic\":true},\"getTotalOutstandingForCustomer\":{\"name\":\"getTotalOutstandingForCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Invoice[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Invoice\",\"exportName\":\"InvoiceCollection\",\"collectionExportName\":\"InvoiceCollectionCollection\",\"schema\":{\"tableName\":\"invoices\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"invoices\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"customer_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"invoice_number\\\" TEXT DEFAULT '',\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"paid_date\\\" TIMESTAMP,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"provider_tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"amount_paid\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'CAD',\\n \\\"status\\\" TEXT,\\n \\\"ar_journal_id\\\" UUID,\\n \\\"revenue_journal_id\\\" UUID,\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"customer_external_id\\\" TEXT DEFAULT '',\\n \\\"external_provider\\\" TEXT DEFAULT '',\\n \\\"synced_at\\\" TIMESTAMP,\\n \\\"sent_at\\\" TIMESTAMP,\\n \\\"viewed_at\\\" TIMESTAMP,\\n \\\"reminders_sent\\\" INTEGER DEFAULT 0,\\n \\\"last_reminder_at\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"customer_notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"invoice_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"paid_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"provider_tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"amount_paid\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"CAD\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"ar_journal_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"revenue_journal_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"customer_external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"external_provider\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"synced_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"viewed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"reminders_sent\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"last_reminder_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"customer_notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"invoices_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"invoices_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"invoices_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"invoices_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"invoices_ar_journal_id_idx\",\"columns\":[\"ar_journal_id\"]},{\"name\":\"invoices_revenue_journal_id_idx\",\"columns\":[\"revenue_journal_id\"]}],\"version\":\"40c25b56\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:InvoiceLineItemCollection\":{\"name\":\"invoicelineitemcollection\",\"className\":\"InvoiceLineItemCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:InvoiceLineItemCollection\",\"collection\":\"invoicelineitems\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/InvoiceLineItemCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByInvoice\":{\"name\":\"findByInvoice\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findBySource\":{\"name\":\"findBySource\",\"async\":true,\"parameters\":[{\"name\":\"sourceType\",\"type\":\"string\",\"optional\":false},{\"name\":\"sourceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findBySourceType\":{\"name\":\"findBySourceType\",\"async\":true,\"parameters\":[{\"name\":\"sourceType\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"getTotalForInvoice\":{\"name\":\"getTotalForInvoice\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"getSubtotalForInvoice\":{\"name\":\"getSubtotalForInvoice\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"getTaxForInvoice\":{\"name\":\"getTaxForInvoice\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"getNextSortOrder\":{\"name\":\"getNextSortOrder\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"recalculateAmounts\":{\"name\":\"recalculateAmounts\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"toAccountingLineItems\":{\"name\":\"toAccountingLineItems\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AccountingLineItemInput[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<InvoiceLineItem[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"InvoiceLineItem\",\"exportName\":\"InvoiceLineItemCollection\",\"collectionExportName\":\"InvoiceLineItemCollectionCollection\",\"schema\":{\"tableName\":\"invoice_line_items\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"invoice_line_items\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"invoice_id\\\" UUID,\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"sku\\\" TEXT DEFAULT '',\\n \\\"quantity\\\" INTEGER DEFAULT 1,\\n \\\"unit_price\\\" INTEGER DEFAULT 0,\\n \\\"discount\\\" INTEGER DEFAULT 0,\\n \\\"tax_rate\\\" REAL DEFAULT 0,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"source_type\\\" TEXT DEFAULT '',\\n \\\"source_id\\\" TEXT DEFAULT '',\\n \\\"period_start\\\" TIMESTAMP,\\n \\\"period_end\\\" TIMESTAMP,\\n \\\"revenue_account_id\\\" UUID,\\n \\\"sort_order\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"invoice_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"invoices\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"sku\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"quantity\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":1},\"unit_price\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"discount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"tax_rate\":{\"type\":\"REAL\",\"notNull\":false,\"unique\":false,\"default\":0},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"source_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"source_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"period_start\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"period_end\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"revenue_account_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"sort_order\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0}},\"indexes\":[{\"name\":\"invoice_line_items_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"invoice_line_items_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"invoice_line_items_invoice_id_idx\",\"columns\":[\"invoice_id\"]},{\"name\":\"invoice_line_items_revenue_account_id_idx\",\"columns\":[\"revenue_account_id\"]}],\"version\":\"f96d2656\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentAllocationCollection\":{\"name\":\"paymentallocationcollection\",\"className\":\"PaymentAllocationCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentAllocationCollection\",\"collection\":\"paymentallocations\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/PaymentAllocationCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByPayment\":{\"name\":\"findByPayment\",\"async\":true,\"parameters\":[{\"name\":\"paymentId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true},\"findByInvoice\":{\"name\":\"findByInvoice\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true},\"getTotalAllocatedToInvoice\":{\"name\":\"getTotalAllocatedToInvoice\",\"async\":true,\"parameters\":[{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"getTotalAllocatedFromPayment\":{\"name\":\"getTotalAllocatedFromPayment\",\"async\":true,\"parameters\":[{\"name\":\"paymentId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"getUnallocatedFromPayment\":{\"name\":\"getUnallocatedFromPayment\",\"async\":true,\"parameters\":[{\"name\":\"paymentId\",\"type\":\"string\",\"optional\":false},{\"name\":\"paymentAmount\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"findByPaymentAndInvoice\":{\"name\":\"findByPaymentAndInvoice\",\"async\":true,\"parameters\":[{\"name\":\"paymentId\",\"type\":\"string\",\"optional\":false},{\"name\":\"invoiceId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation | null>\",\"isStatic\":false,\"isPublic\":true},\"findByAllocator\":{\"name\":\"findByAllocator\",\"async\":true,\"parameters\":[{\"name\":\"allocatedBy\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentAllocation[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"PaymentAllocation\",\"exportName\":\"PaymentAllocationCollection\",\"collectionExportName\":\"PaymentAllocationCollectionCollection\",\"schema\":{\"tableName\":\"payment_allocations\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payment_allocations\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"payment_id\\\" UUID,\\n \\\"invoice_id\\\" UUID,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"allocated_at\\\" TIMESTAMP,\\n \\\"allocated_by\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"payment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"payments\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"invoice_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"invoices\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"allocated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"allocated_by\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"payment_allocations_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payment_allocations_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payment_allocations_payment_id_idx\",\"columns\":[\"payment_id\"]},{\"name\":\"payment_allocations_invoice_id_idx\",\"columns\":[\"invoice_id\"]}],\"version\":\"102e6fbc\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentCollection\":{\"name\":\"paymentcollection\",\"className\":\"PaymentCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentCollection\",\"collection\":\"payments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/PaymentCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByContract\":{\"name\":\"findByContract\",\"async\":true,\"parameters\":[{\"name\":\"contractId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByCustomer\":{\"name\":\"findByCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"PaymentStatus\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByMethod\":{\"name\":\"findByMethod\",\"async\":true,\"parameters\":[{\"name\":\"method\",\"type\":\"PaymentMethod\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findPending\":{\"name\":\"findPending\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findCompleted\":{\"name\":\"findCompleted\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTransactionId\":{\"name\":\"findByTransactionId\",\"async\":true,\"parameters\":[{\"name\":\"transactionId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payment | null>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"getTotalForContract\":{\"name\":\"getTotalForContract\",\"async\":true,\"parameters\":[{\"name\":\"contractId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"findByJournal\":{\"name\":\"findByJournal\",\"async\":true,\"parameters\":[{\"name\":\"journalId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payment | null>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payment[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Payment\",\"exportName\":\"PaymentCollection\",\"collectionExportName\":\"PaymentCollectionCollection\",\"schema\":{\"tableName\":\"payments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"customer_id\\\" UUID,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"method\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"transaction_id\\\" TEXT DEFAULT '',\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"journal_id\\\" UUID,\\n \\\"paid_at\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"external_provider\\\" TEXT DEFAULT '',\\n \\\"synced_at\\\" TIMESTAMP,\\n \\\"backend_id\\\" TEXT DEFAULT '',\\n \\\"backend_tx_ref\\\" TEXT DEFAULT '',\\n \\\"native_amount\\\" INTEGER DEFAULT 0,\\n \\\"native_currency\\\" TEXT DEFAULT '',\\n \\\"usd_at_quote\\\" INTEGER DEFAULT 0,\\n \\\"usd_at_confirmation\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"method\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"transaction_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"journal_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"paid_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"external_provider\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"synced_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"backend_tx_ref\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"native_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"native_currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"usd_at_quote\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"usd_at_confirmation\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0}},\"indexes\":[{\"name\":\"payments_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payments_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"payments_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"payments_journal_id_idx\",\"columns\":[\"journal_id\"]}],\"version\":\"33f80e50\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentInstrumentCollection\":{\"name\":\"paymentinstrumentcollection\",\"className\":\"PaymentInstrumentCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentInstrumentCollection\",\"collection\":\"paymentinstruments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/PaymentInstrumentCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByCustomer\":{\"name\":\"findByCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentInstrument[]>\",\"isStatic\":false,\"isPublic\":true},\"findActiveByCustomer\":{\"name\":\"findActiveByCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentInstrument[]>\",\"isStatic\":false,\"isPublic\":true},\"findDefaultForCustomer\":{\"name\":\"findDefaultForCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentInstrument | null>\",\"isStatic\":false,\"isPublic\":true},\"findByProviderPaymentMethodId\":{\"name\":\"findByProviderPaymentMethodId\",\"async\":true,\"parameters\":[{\"name\":\"providerPaymentMethodId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentInstrument | null>\",\"isStatic\":false,\"isPublic\":true},\"setDefaultForCustomer\":{\"name\":\"setDefaultForCustomer\",\"async\":true,\"parameters\":[{\"name\":\"customerId\",\"type\":\"string\",\"optional\":false},{\"name\":\"instrumentId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentInstrument[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<PaymentInstrument[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentInstrument[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"PaymentInstrument\",\"exportName\":\"PaymentInstrumentCollection\",\"collectionExportName\":\"PaymentInstrumentCollectionCollection\",\"schema\":{\"tableName\":\"payment_instruments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payment_instruments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"customer_id\\\" UUID,\\n \\\"backend_id\\\" TEXT DEFAULT '',\\n \\\"provider_customer_id\\\" TEXT DEFAULT '',\\n \\\"provider_payment_method_id\\\" TEXT DEFAULT '',\\n \\\"type\\\" TEXT DEFAULT 'card',\\n \\\"brand\\\" TEXT DEFAULT '',\\n \\\"last4\\\" TEXT DEFAULT '',\\n \\\"exp_month\\\" INTEGER DEFAULT 0,\\n \\\"exp_year\\\" INTEGER DEFAULT 0,\\n \\\"is_default\\\" BOOLEAN DEFAULT FALSE,\\n \\\"status\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider_customer_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider_payment_method_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"card\"},\"brand\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"last4\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"exp_month\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"exp_year\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"is_default\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"payment_instruments_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payment_instruments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payment_instruments_customer_id_idx\",\"columns\":[\"customer_id\"]}],\"version\":\"722393fe\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentIntentCollection\":{\"name\":\"paymentintentcollection\",\"className\":\"PaymentIntentCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentIntentCollection\",\"collection\":\"paymentintents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/PaymentIntentCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByIdempotencyKey\":{\"name\":\"findByIdempotencyKey\",\"async\":true,\"parameters\":[{\"name\":\"args\",\"type\":\"PaymentIntentIdempotencyArgs\",\"optional\":false}],\"returnType\":\"Promise<PaymentIntent | null>\",\"isStatic\":false,\"isPublic\":true},\"getOrCreateByIdempotencyKey\":{\"name\":\"getOrCreateByIdempotencyKey\",\"async\":true,\"parameters\":[{\"name\":\"seed\",\"type\":\"PaymentIntentSeed\",\"optional\":false}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"findOpen\":{\"name\":\"findOpen\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findStale\":{\"name\":\"findStale\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByLicenseeEmail\":{\"name\":\"findByLicenseeEmail\",\"async\":true,\"parameters\":[{\"name\":\"email\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByOfferingRef\":{\"name\":\"findByOfferingRef\",\"async\":true,\"parameters\":[{\"name\":\"offeringRef\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"PaymentIntentStatus\",\"optional\":false}],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<PaymentIntent[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"PaymentIntent\",\"exportName\":\"PaymentIntentCollection\",\"collectionExportName\":\"PaymentIntentCollectionCollection\",\"schema\":{\"tableName\":\"payment_intents\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payment_intents\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"sku_id\\\" TEXT DEFAULT '',\\n \\\"offering_ref\\\" TEXT DEFAULT '',\\n \\\"licensee_email\\\" TEXT DEFAULT '',\\n \\\"customer_id\\\" TEXT DEFAULT '',\\n \\\"payment_options\\\" JSON DEFAULT '[]',\\n \\\"usd_price_locked\\\" INTEGER DEFAULT 0,\\n \\\"price_lock_window_ms\\\" INTEGER,\\n \\\"price_lock_expires_at\\\" TIMESTAMP,\\n \\\"status\\\" TEXT,\\n \\\"idempotency_key\\\" TEXT DEFAULT '',\\n \\\"paid_option_backend_id\\\" TEXT DEFAULT '',\\n \\\"payment_id\\\" TEXT DEFAULT '',\\n \\\"paid_at\\\" TIMESTAMP,\\n \\\"issued_at\\\" TIMESTAMP,\\n \\\"expired_at\\\" TIMESTAMP,\\n \\\"cancelled_at\\\" TIMESTAMP,\\n \\\"retired_at\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"sku_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"offering_ref\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"licensee_email\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"customer_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"payment_options\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false,\"default\":[]},\"usd_price_locked\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"price_lock_window_ms\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"price_lock_expires_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"idempotency_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"paid_option_backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"payment_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"paid_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"issued_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"expired_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"cancelled_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"retired_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"payment_intents_tenant_id_offering_ref_idx\",\"columns\":[\"tenant_id\",\"offering_ref\",\"licensee_email\",\"idempotency_key\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payment_intents_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"payment_intents_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"c565aaef\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PayoutCollection\":{\"name\":\"payoutcollection\",\"className\":\"PayoutCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PayoutCollection\",\"collection\":\"payouts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/PayoutCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"createFromPayment\":{\"name\":\"createFromPayment\",\"async\":true,\"parameters\":[{\"name\":\"args\",\"type\":\"CreatePayoutFromPaymentArgs\",\"optional\":false}],\"returnType\":\"Promise<Payout>\",\"isStatic\":false,\"isPublic\":true},\"findByPayment\":{\"name\":\"findByPayment\",\"async\":true,\"parameters\":[{\"name\":\"paymentId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findByVendor\":{\"name\":\"findByVendor\",\"async\":true,\"parameters\":[{\"name\":\"vendorId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"PayoutStatus\",\"optional\":false}],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findPending\":{\"name\":\"findPending\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findFailed\":{\"name\":\"findFailed\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findByBackendTxRef\":{\"name\":\"findByBackendTxRef\",\"async\":true,\"parameters\":[{\"name\":\"backendTxRef\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payout | null>\",\"isStatic\":false,\"isPublic\":true},\"getConfirmedTotalForVendor\":{\"name\":\"getConfirmedTotalForVendor\",\"async\":true,\"parameters\":[{\"name\":\"vendorId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Payout[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Payout\",\"exportName\":\"PayoutCollection\",\"collectionExportName\":\"PayoutCollectionCollection\",\"schema\":{\"tableName\":\"payouts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payouts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"payment_id\\\" TEXT DEFAULT '',\\n \\\"vendor_id\\\" UUID,\\n \\\"gross_amount\\\" INTEGER DEFAULT 0,\\n \\\"operator_fee\\\" INTEGER DEFAULT 0,\\n \\\"supplier_net\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT '',\\n \\\"backend_id\\\" TEXT DEFAULT '',\\n \\\"backend_tx_ref\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT,\\n \\\"sent_at\\\" TIMESTAMP,\\n \\\"confirmed_at\\\" TIMESTAMP,\\n \\\"failed_at\\\" TIMESTAMP,\\n \\\"failure_reason\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"payment_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"gross_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"operator_fee\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"supplier_net\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"backend_tx_ref\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"confirmed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"failed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"failure_reason\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"payouts_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payouts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payouts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"98fa81d5\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:VendorCollection\":{\"name\":\"vendorcollection\",\"className\":\"VendorCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:VendorCollection\",\"collection\":\"vendors\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/collections/VendorCollection.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{\"findByProfile\":{\"name\":\"findByProfile\",\"async\":true,\"parameters\":[{\"name\":\"profileId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Vendor[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Vendor[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"VendorStatus\",\"optional\":false}],\"returnType\":\"Promise<Vendor[]>\",\"isStatic\":false,\"isPublic\":true},\"getOrCreateForProfile\":{\"name\":\"getOrCreateForProfile\",\"async\":true,\"parameters\":[{\"name\":\"profileId\",\"type\":\"string\",\"optional\":false},{\"name\":\"defaults\",\"type\":\"Partial<object>\",\"optional\":true,\"memberTypes\":[\"number\",\"string\"]}],\"returnType\":\"Promise<Vendor>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Vendor[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Vendor[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Vendor[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Vendor\",\"exportName\":\"VendorCollection\",\"collectionExportName\":\"VendorCollectionCollection\",\"schema\":{\"tableName\":\"vendors\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"vendors\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"profile_id\\\" UUID,\\n \\\"lead_time_days\\\" INTEGER DEFAULT 0,\\n \\\"minimum_order_amount\\\" INTEGER DEFAULT 0,\\n \\\"payment_terms\\\" TEXT DEFAULT '',\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"default_contact_email\\\" TEXT DEFAULT '',\\n \\\"default_contact_phone\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT,\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"payout_addresses\\\" JSON DEFAULT '{}'\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"lead_time_days\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"minimum_order_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"payment_terms\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"default_contact_email\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"default_contact_phone\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"payout_addresses\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false,\"default\":{}}},\"indexes\":[{\"name\":\"vendors_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"vendors_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"vendors_profile_id_idx\",\"columns\":[\"profile_id\"]}],\"version\":\"1dc2b65e\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Contract\":{\"name\":\"contract\",\"className\":\"Contract\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Contract\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Contract\",\"collectionExportName\":\"ContractCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"9c2e9c49\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Estimate\":{\"name\":\"estimate\",\"className\":\"Estimate\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Estimate\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"Estimate\",\"collectionExportName\":\"EstimateCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"2f1624b2\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Order\":{\"name\":\"order\",\"className\":\"Order\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Order\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"Order\",\"collectionExportName\":\"OrderCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"b7667cf3\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Lease\":{\"name\":\"lease\",\"className\":\"Lease\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Lease\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"Lease\",\"collectionExportName\":\"LeaseCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"b24cdace\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Agreement\":{\"name\":\"agreement\",\"className\":\"Agreement\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Agreement\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"Agreement\",\"collectionExportName\":\"AgreementCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"28f0c394\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PurchaseOrder\":{\"name\":\"purchaseorder\",\"className\":\"PurchaseOrder\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PurchaseOrder\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"PurchaseOrder\",\"collectionExportName\":\"PurchaseOrderCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"91ec64bb\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:WholesaleOrder\":{\"name\":\"wholesaleorder\",\"className\":\"WholesaleOrder\",\"qualifiedName\":\"@happyvertical/smrt-commerce:WholesaleOrder\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"WholesaleOrder\",\"collectionExportName\":\"WholesaleOrderCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"ccb8a3ae\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:ProductionOrder\":{\"name\":\"productionorder\",\"className\":\"ProductionOrder\",\"qualifiedName\":\"@happyvertical/smrt-commerce:ProductionOrder\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"productId\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"bomId\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"ProductionOrder\",\"collectionExportName\":\"ProductionOrderCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"c6b977a5\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Cart\":{\"name\":\"cart\",\"className\":\"Cart\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Cart\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"Cart\",\"collectionExportName\":\"CartCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"fba16d4f\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:LicenseSale\":{\"name\":\"licensesale\",\"className\":\"LicenseSale\",\"qualifiedName\":\"@happyvertical/smrt-commerce:LicenseSale\",\"collection\":\"contracts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Contract.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"expiryDate\":{\"type\":\"datetime\",\"required\":false},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"channelId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"skuId\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"paymentId\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"licenseeEmail\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"licenseeLegalEntity\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"licenseeJurisdiction\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"rightsMedium\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"rightsDistributionScope\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"rightsExclusivity\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"rightsDuration\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"rightsTerritory\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"rightsSublicensing\":{\"type\":\"meta\",\"required\":false,\"default\":false,\"_meta\":{\"underlyingType\":\"boolean\"}},\"rightsDerivatives\":{\"type\":\"meta\",\"required\":false,\"default\":false,\"_meta\":{\"underlyingType\":\"boolean\"}},\"pdfUrl\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"pdfHash\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}},\"onChainHashRegistryRef\":{\"type\":\"meta\",\"required\":false,\"default\":\"\",\"_meta\":{\"underlyingType\":\"text\"}}},\"methods\":{\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAccepted\":{\"name\":\"isAccepted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recalculateTotals\":{\"name\":\"recalculateTotals\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"getRightsSnapshot\":{\"name\":\"getRightsSnapshot\",\"async\":false,\"parameters\":[],\"returnType\":\"LicenseRightsSnapshot\",\"isStatic\":false,\"isPublic\":true},\"revoke\":{\"name\":\"revoke\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"contracts\",\"tableStrategy\":\"sti\"},\"extends\":\"Contract\",\"exportName\":\"LicenseSale\",\"collectionExportName\":\"LicenseSaleCollection\",\"schema\":{\"tableName\":\"contracts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contracts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"customer_id\\\" UUID,\\n \\\"vendor_id\\\" UUID,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"expiry_date\\\" TIMESTAMP,\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT '',\\n \\\"channel_id\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_type\":{\"type\":\"TEXT\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"expiry_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"channel_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"contracts_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contracts_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contracts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contracts_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"contracts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"d6d82bad\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:ContractLineItem\":{\"name\":\"contractlineitem\",\"className\":\"ContractLineItem\",\"qualifiedName\":\"@happyvertical/smrt-commerce:ContractLineItem\",\"collection\":\"contractlineitems\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/ContractLineItem.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Contract\"},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"quantity\":{\"type\":\"decimal\",\"required\":false,\"default\":1},\"unitPrice\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"discount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxRate\":{\"type\":\"decimal\",\"required\":false,\"default\":0},\"amount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"productId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-products:Product\"},\"sku\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"startDate\":{\"type\":\"datetime\",\"required\":false},\"endDate\":{\"type\":\"datetime\",\"required\":false},\"billingPeriod\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"sortOrder\":{\"type\":\"integer\",\"required\":false,\"default\":0}},\"methods\":{\"calculateAmount\":{\"name\":\"calculateAmount\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"isRecurring\":{\"name\":\"isRecurring\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isSubscriptionActive\":{\"name\":\"isSubscriptionActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"delete\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"ContractLineItem\",\"collectionExportName\":\"ContractLineItemCollection\",\"schema\":{\"tableName\":\"contract_line_items\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"contract_line_items\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"quantity\\\" REAL DEFAULT 1,\\n \\\"unit_price\\\" INTEGER DEFAULT 0,\\n \\\"discount\\\" INTEGER DEFAULT 0,\\n \\\"tax_rate\\\" REAL DEFAULT 0,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"product_id\\\" UUID,\\n \\\"sku\\\" TEXT DEFAULT '',\\n \\\"start_date\\\" TIMESTAMP,\\n \\\"end_date\\\" TIMESTAMP,\\n \\\"billing_period\\\" TEXT DEFAULT '',\\n \\\"sort_order\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"quantity\":{\"type\":\"REAL\",\"notNull\":false,\"default\":1},\"unit_price\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"discount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"tax_rate\":{\"type\":\"REAL\",\"notNull\":false,\"default\":0},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"product_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"sku\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"start_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"end_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"billing_period\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"sort_order\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0}},\"indexes\":[{\"name\":\"contract_line_items_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"contract_line_items_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"contract_line_items_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"contract_line_items_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"contract_line_items_product_id_idx\",\"columns\":[\"product_id\"]}],\"version\":\"be2b46cd\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Customer\":{\"name\":\"customer\",\"className\":\"Customer\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Customer\",\"collection\":\"customers\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Customer.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"profileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\"},\"creditLimit\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"paymentTerms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"taxExempt\":{\"type\":\"boolean\",\"required\":false,\"default\":false},\"taxId\":{\"type\":\"text\",\"required\":false,\"default\":\"\",\"_meta\":{\"sensitive\":true},\"sensitive\":true},\"defaultShippingAddress\":{\"type\":\"json\",\"required\":false},\"defaultBillingAddress\":{\"type\":\"json\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"customerType\":{\"type\":\"text\",\"required\":false},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isWholesale\":{\"name\":\"isWholesale\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isActive\":{\"name\":\"isActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"hasAvailableCredit\":{\"name\":\"hasAvailableCredit\",\"async\":false,\"parameters\":[{\"name\":\"amount\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getProfileId\":{\"name\":\"getProfileId\",\"async\":false,\"parameters\":[],\"returnType\":\"string\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Customer\",\"collectionExportName\":\"CustomerCollection\",\"schema\":{\"tableName\":\"customers\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"customers\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"profile_id\\\" UUID,\\n \\\"credit_limit\\\" INTEGER DEFAULT 0,\\n \\\"payment_terms\\\" TEXT DEFAULT '',\\n \\\"tax_exempt\\\" BOOLEAN DEFAULT FALSE,\\n \\\"tax_id\\\" TEXT DEFAULT '',\\n \\\"default_shipping_address\\\" JSON,\\n \\\"default_billing_address\\\" JSON,\\n \\\"status\\\" TEXT,\\n \\\"customer_type\\\" TEXT,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"credit_limit\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"payment_terms\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"tax_exempt\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false},\"tax_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"default_shipping_address\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false},\"default_billing_address\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"customer_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"customers_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"customers_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"customers_profile_id_idx\",\"columns\":[\"profile_id\"]}],\"version\":\"ad1b9967\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Fulfillment\":{\"name\":\"fulfillment\",\"className\":\"Fulfillment\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Fulfillment\",\"collection\":\"fulfillments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Fulfillment.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Contract\"},\"fulfillmentType\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"trackingNumber\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"carrier\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"shippingAddress\":{\"type\":\"json\",\"required\":false},\"shippedAt\":{\"type\":\"datetime\",\"required\":false},\"deliveredAt\":{\"type\":\"datetime\",\"required\":false},\"estimatedDelivery\":{\"type\":\"datetime\",\"required\":false},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"isDelivered\":{\"name\":\"isDelivered\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isInTransit\":{\"name\":\"isInTransit\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPending\":{\"name\":\"isPending\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"markShipped\":{\"name\":\"markShipped\",\"async\":false,\"parameters\":[{\"name\":\"trackingNumber\",\"type\":\"string\",\"optional\":true},{\"name\":\"carrier\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markDelivered\":{\"name\":\"markDelivered\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"cancel\":{\"name\":\"cancel\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Fulfillment\",\"collectionExportName\":\"FulfillmentCollection\",\"schema\":{\"tableName\":\"fulfillments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"fulfillments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"fulfillment_type\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"tracking_number\\\" TEXT DEFAULT '',\\n \\\"carrier\\\" TEXT DEFAULT '',\\n \\\"shipping_address\\\" JSON,\\n \\\"shipped_at\\\" TIMESTAMP,\\n \\\"delivered_at\\\" TIMESTAMP,\\n \\\"estimated_delivery\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"fulfillment_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"tracking_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"carrier\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"shipping_address\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false},\"shipped_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"delivered_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"estimated_delivery\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"fulfillments_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"fulfillments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"fulfillments_contract_id_idx\",\"columns\":[\"contract_id\"]}],\"version\":\"2f708fc5\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:FulfillmentLineItem\":{\"name\":\"fulfillmentlineitem\",\"className\":\"FulfillmentLineItem\",\"qualifiedName\":\"@happyvertical/smrt-commerce:FulfillmentLineItem\",\"collection\":\"fulfillmentlineitems\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/FulfillmentLineItem.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"fulfillmentId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Fulfillment\"},\"contractLineItemId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"ContractLineItem\"},\"quantityFulfilled\":{\"type\":\"decimal\",\"required\":false,\"default\":1},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"delete\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":true,\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"FulfillmentLineItem\",\"collectionExportName\":\"FulfillmentLineItemCollection\",\"schema\":{\"tableName\":\"fulfillment_line_items\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"fulfillment_line_items\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"fulfillment_id\\\" UUID,\\n \\\"contract_line_item_id\\\" UUID,\\n \\\"quantity_fulfilled\\\" REAL DEFAULT 1,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"fulfillment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"fulfillments\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"contract_line_item_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contract_line_items\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"quantity_fulfilled\":{\"type\":\"REAL\",\"notNull\":false,\"unique\":false,\"default\":1},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"fulfillment_line_items_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"fulfillment_line_items_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"fulfillment_line_items_fulfillment_id_idx\",\"columns\":[\"fulfillment_id\"]},{\"name\":\"fulfillment_line_items_contract_line_item_id_idx\",\"columns\":[\"contract_line_item_id\"]}],\"version\":\"14537dbe\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Invoice\":{\"name\":\"invoice\",\"className\":\"Invoice\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Invoice\",\"collection\":\"invoices\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Invoice.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"contractId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Contract\"},\"invoiceNumber\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"issueDate\":{\"type\":\"datetime\",\"required\":false},\"dueDate\":{\"type\":\"datetime\",\"required\":false},\"paidDate\":{\"type\":\"datetime\",\"required\":false},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"providerTaxAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"totalAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"amountPaid\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"CAD\"},\"status\":{\"type\":\"text\",\"required\":false},\"arJournalId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-ledgers:Journal\"},\"revenueJournalId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-ledgers:Journal\"},\"externalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"customerExternalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"externalProvider\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"syncedAt\":{\"type\":\"datetime\",\"required\":false},\"sentAt\":{\"type\":\"datetime\",\"required\":false},\"viewedAt\":{\"type\":\"datetime\",\"required\":false},\"remindersSent\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"lastReminderAt\":{\"type\":\"datetime\",\"required\":false},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"customerNotes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"terms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isSent\":{\"name\":\"isSent\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPaid\":{\"name\":\"isPaid\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPartial\":{\"name\":\"isPartial\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isOverdue\":{\"name\":\"isOverdue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getAmountDue\":{\"name\":\"getAmountDue\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"markSent\":{\"name\":\"markSent\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markViewed\":{\"name\":\"markViewed\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"updatePaymentStatus\":{\"name\":\"updatePaymentStatus\",\"async\":false,\"parameters\":[{\"name\":\"amountPaid\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"cancel\":{\"name\":\"cancel\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"writeOff\":{\"name\":\"writeOff\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"recognizeRevenue\":{\"name\":\"recognizeRevenue\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"RecognizeRevenueOptions\",\"optional\":false}],\"returnType\":\"Promise<Journal>\",\"isStatic\":false,\"isPublic\":true},\"getArJournal\":{\"name\":\"getArJournal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Journal | null>\",\"isStatic\":false,\"isPublic\":true},\"toAccountingInput\":{\"name\":\"toAccountingInput\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AccountingInvoiceInput>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"],\"writable\":[\"customerId\",\"contractId\",\"invoiceNumber\",\"reference\",\"issueDate\",\"dueDate\",\"currency\",\"notes\",\"customerNotes\",\"terms\",\"externalId\",\"customerExternalId\",\"externalProvider\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Invoice\",\"collectionExportName\":\"InvoiceCollection\",\"schema\":{\"tableName\":\"invoices\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"invoices\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"customer_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"invoice_number\\\" TEXT DEFAULT '',\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"issue_date\\\" TIMESTAMP,\\n \\\"due_date\\\" TIMESTAMP,\\n \\\"paid_date\\\" TIMESTAMP,\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"provider_tax_amount\\\" INTEGER DEFAULT 0,\\n \\\"total_amount\\\" INTEGER DEFAULT 0,\\n \\\"amount_paid\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'CAD',\\n \\\"status\\\" TEXT,\\n \\\"ar_journal_id\\\" UUID,\\n \\\"revenue_journal_id\\\" UUID,\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"customer_external_id\\\" TEXT DEFAULT '',\\n \\\"external_provider\\\" TEXT DEFAULT '',\\n \\\"synced_at\\\" TIMESTAMP,\\n \\\"sent_at\\\" TIMESTAMP,\\n \\\"viewed_at\\\" TIMESTAMP,\\n \\\"reminders_sent\\\" INTEGER DEFAULT 0,\\n \\\"last_reminder_at\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"customer_notes\\\" TEXT DEFAULT '',\\n \\\"terms\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"invoice_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"issue_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"due_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"paid_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"provider_tax_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"total_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"amount_paid\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"CAD\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"ar_journal_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"revenue_journal_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"customer_external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"external_provider\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"synced_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"viewed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"reminders_sent\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"last_reminder_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"customer_notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"terms\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"invoices_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"invoices_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"invoices_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"invoices_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"invoices_ar_journal_id_idx\",\"columns\":[\"ar_journal_id\"]},{\"name\":\"invoices_revenue_journal_id_idx\",\"columns\":[\"revenue_journal_id\"]}],\"version\":\"40c25b56\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:InvoiceLineItem\":{\"name\":\"invoicelineitem\",\"className\":\"InvoiceLineItem\",\"qualifiedName\":\"@happyvertical/smrt-commerce:InvoiceLineItem\",\"collection\":\"invoicelineitems\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/InvoiceLineItem.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"invoiceId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Invoice\"},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"sku\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"quantity\":{\"type\":\"integer\",\"required\":false,\"default\":1},\"unitPrice\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"discount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"taxRate\":{\"type\":\"decimal\",\"required\":false,\"default\":0},\"amount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"sourceType\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"sourceId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"periodStart\":{\"type\":\"datetime\",\"required\":false},\"periodEnd\":{\"type\":\"datetime\",\"required\":false},\"revenueAccountId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-ledgers:Account\"},\"sortOrder\":{\"type\":\"integer\",\"required\":false,\"default\":0}},\"methods\":{\"calculateAmount\":{\"name\":\"calculateAmount\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"getSubtotal\":{\"name\":\"getSubtotal\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"getTaxAmount\":{\"name\":\"getTaxAmount\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"hasSource\":{\"name\":\"hasSource\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"hasPeriod\":{\"name\":\"hasPeriod\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"toAccountingLineItem\":{\"name\":\"toAccountingLineItem\",\"async\":false,\"parameters\":[{\"name\":\"currency\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"AccountingLineItemInput\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"delete\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"InvoiceLineItem\",\"collectionExportName\":\"InvoiceLineItemCollection\",\"schema\":{\"tableName\":\"invoice_line_items\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"invoice_line_items\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"invoice_id\\\" UUID,\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"sku\\\" TEXT DEFAULT '',\\n \\\"quantity\\\" INTEGER DEFAULT 1,\\n \\\"unit_price\\\" INTEGER DEFAULT 0,\\n \\\"discount\\\" INTEGER DEFAULT 0,\\n \\\"tax_rate\\\" REAL DEFAULT 0,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"source_type\\\" TEXT DEFAULT '',\\n \\\"source_id\\\" TEXT DEFAULT '',\\n \\\"period_start\\\" TIMESTAMP,\\n \\\"period_end\\\" TIMESTAMP,\\n \\\"revenue_account_id\\\" UUID,\\n \\\"sort_order\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"invoice_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"invoices\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"sku\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"quantity\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":1},\"unit_price\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"discount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"tax_rate\":{\"type\":\"REAL\",\"notNull\":false,\"unique\":false,\"default\":0},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"source_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"source_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"period_start\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"period_end\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"revenue_account_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"sort_order\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0}},\"indexes\":[{\"name\":\"invoice_line_items_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"invoice_line_items_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"invoice_line_items_invoice_id_idx\",\"columns\":[\"invoice_id\"]},{\"name\":\"invoice_line_items_revenue_account_id_idx\",\"columns\":[\"revenue_account_id\"]}],\"version\":\"f96d2656\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Payment\":{\"name\":\"payment\",\"className\":\"Payment\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Payment\",\"collection\":\"payments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Payment.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Contract\"},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"amount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"method\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"transactionId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"reference\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"journalId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-ledgers:Journal\"},\"paidAt\":{\"type\":\"datetime\",\"required\":false},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"externalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"externalProvider\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"syncedAt\":{\"type\":\"datetime\",\"required\":false},\"backendId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"backendTxRef\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"nativeAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"nativeCurrency\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"usdAtQuote\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"usdAtConfirmation\":{\"type\":\"integer\",\"required\":false,\"default\":0}},\"methods\":{\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"usdDrift\":{\"name\":\"usdDrift\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"isPending\":{\"name\":\"isPending\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isRefunded\":{\"name\":\"isRefunded\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"recordPayment\":{\"name\":\"recordPayment\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"RecordPaymentOptions\",\"optional\":false}],\"returnType\":\"Promise<Journal>\",\"isStatic\":false,\"isPublic\":true},\"getJournal\":{\"name\":\"getJournal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Journal | null>\",\"isStatic\":false,\"isPublic\":true},\"markFailed\":{\"name\":\"markFailed\",\"async\":false,\"parameters\":[{\"name\":\"reason\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"cancel\":{\"name\":\"cancel\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"],\"writable\":[\"contractId\",\"customerId\",\"amount\",\"currency\",\"method\",\"transactionId\",\"reference\",\"notes\",\"externalId\",\"externalProvider\",\"backendId\",\"backendTxRef\",\"nativeAmount\",\"nativeCurrency\",\"usdAtQuote\",\"usdAtConfirmation\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Payment\",\"collectionExportName\":\"PaymentCollection\",\"schema\":{\"tableName\":\"payments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"customer_id\\\" UUID,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"method\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"transaction_id\\\" TEXT DEFAULT '',\\n \\\"reference\\\" TEXT DEFAULT '',\\n \\\"journal_id\\\" UUID,\\n \\\"paid_at\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"external_provider\\\" TEXT DEFAULT '',\\n \\\"synced_at\\\" TIMESTAMP,\\n \\\"backend_id\\\" TEXT DEFAULT '',\\n \\\"backend_tx_ref\\\" TEXT DEFAULT '',\\n \\\"native_amount\\\" INTEGER DEFAULT 0,\\n \\\"native_currency\\\" TEXT DEFAULT '',\\n \\\"usd_at_quote\\\" INTEGER DEFAULT 0,\\n \\\"usd_at_confirmation\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"contracts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"method\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"transaction_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"reference\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"journal_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"paid_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"external_provider\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"synced_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"backend_tx_ref\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"native_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"native_currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"usd_at_quote\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"usd_at_confirmation\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0}},\"indexes\":[{\"name\":\"payments_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payments_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"payments_customer_id_idx\",\"columns\":[\"customer_id\"]},{\"name\":\"payments_journal_id_idx\",\"columns\":[\"journal_id\"]}],\"version\":\"33f80e50\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentAllocation\":{\"name\":\"paymentallocation\",\"className\":\"PaymentAllocation\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentAllocation\",\"collection\":\"paymentallocations\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/PaymentAllocation.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"paymentId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Payment\"},\"invoiceId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Invoice\"},\"amount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"allocatedAt\":{\"type\":\"datetime\",\"required\":false},\"allocatedBy\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"include\":[\"list\",\"get\"]},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"PaymentAllocation\",\"collectionExportName\":\"PaymentAllocationCollection\",\"schema\":{\"tableName\":\"payment_allocations\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payment_allocations\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"payment_id\\\" UUID,\\n \\\"invoice_id\\\" UUID,\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"allocated_at\\\" TIMESTAMP,\\n \\\"allocated_by\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"payment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"payments\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"invoice_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"invoices\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"allocated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"allocated_by\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"payment_allocations_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payment_allocations_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payment_allocations_payment_id_idx\",\"columns\":[\"payment_id\"]},{\"name\":\"payment_allocations_invoice_id_idx\",\"columns\":[\"invoice_id\"]}],\"version\":\"102e6fbc\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentInstrument\":{\"name\":\"paymentinstrument\",\"className\":\"PaymentInstrument\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentInstrument\",\"collection\":\"paymentinstruments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/PaymentInstrument.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"backendId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"providerCustomerId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"providerPaymentMethodId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"type\":{\"type\":\"text\",\"required\":false,\"default\":\"card\"},\"brand\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"last4\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"expMonth\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"expYear\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"isDefault\":{\"type\":\"boolean\",\"required\":false,\"default\":false},\"status\":{\"type\":\"text\",\"required\":false}},\"methods\":{\"isActive\":{\"name\":\"isActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isRemoved\":{\"name\":\"isRemoved\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"markExpired\":{\"name\":\"markExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markRemoved\":{\"name\":\"markRemoved\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"],\"writable\":[\"customerId\",\"backendId\",\"providerCustomerId\",\"providerPaymentMethodId\",\"type\",\"brand\",\"last4\",\"expMonth\",\"expYear\",\"status\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"PaymentInstrument\",\"collectionExportName\":\"PaymentInstrumentCollection\",\"schema\":{\"tableName\":\"payment_instruments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payment_instruments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"customer_id\\\" UUID,\\n \\\"backend_id\\\" TEXT DEFAULT '',\\n \\\"provider_customer_id\\\" TEXT DEFAULT '',\\n \\\"provider_payment_method_id\\\" TEXT DEFAULT '',\\n \\\"type\\\" TEXT DEFAULT 'card',\\n \\\"brand\\\" TEXT DEFAULT '',\\n \\\"last4\\\" TEXT DEFAULT '',\\n \\\"exp_month\\\" INTEGER DEFAULT 0,\\n \\\"exp_year\\\" INTEGER DEFAULT 0,\\n \\\"is_default\\\" BOOLEAN DEFAULT FALSE,\\n \\\"status\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider_customer_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider_payment_method_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"card\"},\"brand\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"last4\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"exp_month\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"exp_year\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"is_default\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"payment_instruments_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payment_instruments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payment_instruments_customer_id_idx\",\"columns\":[\"customer_id\"]}],\"version\":\"722393fe\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:PaymentIntent\":{\"name\":\"paymentintent\",\"className\":\"PaymentIntent\",\"qualifiedName\":\"@happyvertical/smrt-commerce:PaymentIntent\",\"collection\":\"paymentintents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/PaymentIntent.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"skuId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"offeringRef\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"licenseeEmail\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"customerId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"paymentOptions\":{\"type\":\"json\",\"required\":false,\"default\":[]},\"usdPriceLocked\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"priceLockWindowMs\":{\"type\":\"integer\",\"required\":false},\"priceLockExpiresAt\":{\"type\":\"datetime\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"idempotencyKey\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"paidOptionBackendId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"paymentId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"paidAt\":{\"type\":\"datetime\",\"required\":false},\"issuedAt\":{\"type\":\"datetime\",\"required\":false},\"expiredAt\":{\"type\":\"datetime\",\"required\":false},\"cancelledAt\":{\"type\":\"datetime\",\"required\":false},\"retiredAt\":{\"type\":\"datetime\",\"required\":false},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"isAwaitingPayment\":{\"name\":\"isAwaitingPayment\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPaid\":{\"name\":\"isPaid\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isIssued\":{\"name\":\"isIssued\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCancelled\":{\"name\":\"isCancelled\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isRetired\":{\"name\":\"isRetired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isTerminal\":{\"name\":\"isTerminal\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isExpired\":{\"name\":\"isExpired\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"markPaid\":{\"name\":\"markPaid\",\"async\":false,\"parameters\":[{\"name\":\"args\",\"type\":\"object\",\"optional\":false,\"memberTypes\":[\"string\"]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"verifyAndMarkPaid\":{\"name\":\"verifyAndMarkPaid\",\"async\":true,\"parameters\":[{\"name\":\"args\",\"type\":\"object\",\"optional\":false,\"memberTypes\":[\"string\"]}],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true},\"markIssued\":{\"name\":\"markIssued\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"expire\":{\"name\":\"expire\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"cancel\":{\"name\":\"cancel\",\"async\":false,\"parameters\":[{\"name\":\"reason\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"retire\":{\"name\":\"retire\",\"async\":false,\"parameters\":[{\"name\":\"reason\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"getOption\":{\"name\":\"getOption\",\"async\":false,\"parameters\":[{\"name\":\"backendId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"PaymentOption | undefined\",\"isStatic\":false,\"isPublic\":true},\"isOptionRetired\":{\"name\":\"isOptionRetired\",\"async\":false,\"parameters\":[{\"name\":\"backendId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getRetiredOptions\":{\"name\":\"getRetiredOptions\",\"async\":false,\"parameters\":[],\"returnType\":\"PaymentOption[]\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"conflictColumns\":[\"tenant_id\",\"offering_ref\",\"licensee_email\",\"idempotency_key\"],\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"],\"writable\":[\"skuId\",\"offeringRef\",\"licenseeEmail\",\"customerId\",\"paymentOptions\",\"usdPriceLocked\",\"priceLockWindowMs\",\"idempotencyKey\",\"notes\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"}},\"extends\":\"SmrtObject\",\"exportName\":\"PaymentIntent\",\"collectionExportName\":\"PaymentIntentCollection\",\"schema\":{\"tableName\":\"payment_intents\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payment_intents\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"sku_id\\\" TEXT DEFAULT '',\\n \\\"offering_ref\\\" TEXT DEFAULT '',\\n \\\"licensee_email\\\" TEXT DEFAULT '',\\n \\\"customer_id\\\" TEXT DEFAULT '',\\n \\\"payment_options\\\" JSON DEFAULT '[]',\\n \\\"usd_price_locked\\\" INTEGER DEFAULT 0,\\n \\\"price_lock_window_ms\\\" INTEGER,\\n \\\"price_lock_expires_at\\\" TIMESTAMP,\\n \\\"status\\\" TEXT,\\n \\\"idempotency_key\\\" TEXT DEFAULT '',\\n \\\"paid_option_backend_id\\\" TEXT DEFAULT '',\\n \\\"payment_id\\\" TEXT DEFAULT '',\\n \\\"paid_at\\\" TIMESTAMP,\\n \\\"issued_at\\\" TIMESTAMP,\\n \\\"expired_at\\\" TIMESTAMP,\\n \\\"cancelled_at\\\" TIMESTAMP,\\n \\\"retired_at\\\" TIMESTAMP,\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"sku_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"offering_ref\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"licensee_email\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"customer_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"payment_options\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false,\"default\":[]},\"usd_price_locked\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"price_lock_window_ms\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"price_lock_expires_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"idempotency_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"paid_option_backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"payment_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"paid_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"issued_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"expired_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"cancelled_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"retired_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"payment_intents_tenant_id_offering_ref_idx\",\"columns\":[\"tenant_id\",\"offering_ref\",\"licensee_email\",\"idempotency_key\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payment_intents_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"payment_intents_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"c565aaef\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Payout\":{\"name\":\"payout\",\"className\":\"Payout\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Payout\",\"collection\":\"payouts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Payout.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"paymentId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"vendorId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Vendor\"},\"grossAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"operatorFee\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"supplierNet\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"backendId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"backendTxRef\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"status\":{\"type\":\"text\",\"required\":false},\"sentAt\":{\"type\":\"datetime\",\"required\":false},\"confirmedAt\":{\"type\":\"datetime\",\"required\":false},\"failedAt\":{\"type\":\"datetime\",\"required\":false},\"failureReason\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"isPending\":{\"name\":\"isPending\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isSent\":{\"name\":\"isSent\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isConfirmed\":{\"name\":\"isConfirmed\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isFailed\":{\"name\":\"isFailed\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"markSent\":{\"name\":\"markSent\",\"async\":false,\"parameters\":[{\"name\":\"backendTxRef\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markConfirmed\":{\"name\":\"markConfirmed\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markFailed\":{\"name\":\"markFailed\",\"async\":false,\"parameters\":[{\"name\":\"reason\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"resetFromFailed\":{\"name\":\"resetFromFailed\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"validateAmounts\":{\"name\":\"validateAmounts\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"include\":[\"list\",\"get\"]},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Payout\",\"collectionExportName\":\"PayoutCollection\",\"schema\":{\"tableName\":\"payouts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"payouts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"payment_id\\\" TEXT DEFAULT '',\\n \\\"vendor_id\\\" UUID,\\n \\\"gross_amount\\\" INTEGER DEFAULT 0,\\n \\\"operator_fee\\\" INTEGER DEFAULT 0,\\n \\\"supplier_net\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT '',\\n \\\"backend_id\\\" TEXT DEFAULT '',\\n \\\"backend_tx_ref\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT,\\n \\\"sent_at\\\" TIMESTAMP,\\n \\\"confirmed_at\\\" TIMESTAMP,\\n \\\"failed_at\\\" TIMESTAMP,\\n \\\"failure_reason\\\" TEXT DEFAULT '',\\n \\\"notes\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"payment_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"vendor_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"vendors\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"gross_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"operator_fee\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"supplier_net\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"backend_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"backend_tx_ref\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"confirmed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"failed_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"failure_reason\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"payouts_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"payouts_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"payouts_vendor_id_idx\",\"columns\":[\"vendor_id\"]}],\"version\":\"98fa81d5\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:Vendor\":{\"name\":\"vendor\",\"className\":\"Vendor\",\"qualifiedName\":\"@happyvertical/smrt-commerce:Vendor\",\"collection\":\"vendors\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/Vendor.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"profileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\"},\"leadTimeDays\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"minimumOrderAmount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"paymentTerms\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"defaultContactEmail\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"defaultContactPhone\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"status\":{\"type\":\"text\",\"required\":false},\"notes\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"payoutAddresses\":{\"type\":\"json\",\"required\":false,\"default\":{},\"_meta\":{\"sensitive\":true},\"sensitive\":true}},\"methods\":{\"initialize\":{\"name\":\"initialize\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"isActive\":{\"name\":\"isActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"meetsMinimumOrder\":{\"name\":\"meetsMinimumOrder\",\"async\":false,\"parameters\":[{\"name\":\"amount\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getProfileId\":{\"name\":\"getProfileId\",\"async\":false,\"parameters\":[],\"returnType\":\"string\",\"isStatic\":false,\"isPublic\":true},\"getPayoutAddress\":{\"name\":\"getPayoutAddress\",\"async\":false,\"parameters\":[{\"name\":\"currency\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"string | undefined\",\"isStatic\":false,\"isPublic\":true},\"setPayoutAddress\":{\"name\":\"setPayoutAddress\",\"async\":false,\"parameters\":[{\"name\":\"currency\",\"type\":\"string\",\"optional\":false},{\"name\":\"destination\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"this\",\"isStatic\":false,\"isPublic\":true},\"clearPayoutAddress\":{\"name\":\"clearPayoutAddress\",\"async\":false,\"parameters\":[{\"name\":\"currency\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"this\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"Vendor\",\"collectionExportName\":\"VendorCollection\",\"schema\":{\"tableName\":\"vendors\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"vendors\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"profile_id\\\" UUID,\\n \\\"lead_time_days\\\" INTEGER DEFAULT 0,\\n \\\"minimum_order_amount\\\" INTEGER DEFAULT 0,\\n \\\"payment_terms\\\" TEXT DEFAULT '',\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"default_contact_email\\\" TEXT DEFAULT '',\\n \\\"default_contact_phone\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT,\\n \\\"notes\\\" TEXT DEFAULT '',\\n \\\"payout_addresses\\\" JSON DEFAULT '{}'\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false,\"unique\":false},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"lead_time_days\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"minimum_order_amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"payment_terms\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"default_contact_email\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"default_contact_phone\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"notes\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"payout_addresses\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false,\"default\":{}}},\"indexes\":[{\"name\":\"vendors_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"vendors_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"vendors_profile_id_idx\",\"columns\":[\"profile_id\"]}],\"version\":\"1dc2b65e\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:BillingAccount\":{\"name\":\"billingaccount\",\"className\":\"BillingAccount\",\"qualifiedName\":\"@happyvertical/smrt-commerce:BillingAccount\",\"collection\":\"billingaccounts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/billing.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"sellerTenantId\":{\"type\":\"crossPackageRef\",\"required\":true,\"related\":\"@happyvertical/smrt-users:Tenant\",\"_meta\":{\"required\":true}},\"payerTenantId\":{\"type\":\"crossPackageRef\",\"required\":true,\"related\":\"@happyvertical/smrt-users:Tenant\",\"_meta\":{\"required\":true}},\"customerId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Customer\"},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"email\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"provider\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"providerCustomerId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"automaticTax\":{\"type\":\"boolean\",\"required\":false,\"default\":true},\"flatDiscountBasisPoints\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"paymentTermsDays\":{\"type\":\"integer\",\"required\":false,\"default\":30},\"standing\":{\"type\":\"text\",\"required\":false,\"default\":\"current\"},\"billingAnchorAt\":{\"type\":\"datetime\",\"required\":false,\"_meta\":{\"nullable\":true}},\"prorateFlatPlans\":{\"type\":\"boolean\",\"required\":false,\"default\":false}},\"methods\":{},\"decoratorConfig\":{\"tableName\":\"_smrt_billing_accounts\",\"conflictColumns\":[\"seller_tenant_id\",\"payer_tenant_id\"],\"api\":false,\"cli\":false,\"mcp\":false},\"extends\":\"SmrtObject\",\"exportName\":\"BillingAccount\",\"collectionExportName\":\"BillingAccountCollection\",\"validationRules\":[{\"field\":\"sellerTenantId\",\"rule\":\"required\",\"fieldType\":\"crossPackageRef\"},{\"field\":\"payerTenantId\",\"rule\":\"required\",\"fieldType\":\"crossPackageRef\"}],\"schema\":{\"tableName\":\"_smrt_billing_accounts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_billing_accounts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"seller_tenant_id\\\" UUID NOT NULL,\\n \\\"payer_tenant_id\\\" UUID NOT NULL,\\n \\\"customer_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"email\\\" TEXT DEFAULT '',\\n \\\"provider\\\" TEXT DEFAULT '',\\n \\\"provider_customer_id\\\" TEXT DEFAULT '',\\n \\\"automatic_tax\\\" BOOLEAN DEFAULT TRUE,\\n \\\"flat_discount_basis_points\\\" INTEGER DEFAULT 0,\\n \\\"payment_terms_days\\\" INTEGER DEFAULT 30,\\n \\\"standing\\\" TEXT DEFAULT 'current',\\n \\\"billing_anchor_at\\\" TIMESTAMP,\\n \\\"prorate_flat_plans\\\" BOOLEAN DEFAULT FALSE\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"seller_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"payer_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"email\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider_customer_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"automatic_tax\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":true},\"flat_discount_basis_points\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"payment_terms_days\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":30},\"standing\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"current\"},\"billing_anchor_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"prorate_flat_plans\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false}},\"indexes\":[{\"name\":\"_smrt_billing_accounts_seller_tenant_id_payer_tenant_id_idx\",\"columns\":[\"seller_tenant_id\",\"payer_tenant_id\"],\"unique\":true},{\"name\":\"_smrt_billing_accounts_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_billing_accounts_created_at_idx\",\"columns\":[\"created_at\"]},{\"name\":\"_smrt_billing_accounts_payer_tenant_id_idx\",\"columns\":[\"payer_tenant_id\"]},{\"name\":\"_smrt_billing_accounts_customer_id_idx\",\"columns\":[\"customer_id\"]}],\"version\":\"58124e47\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:BillingPeriodClose\":{\"name\":\"billingperiodclose\",\"className\":\"BillingPeriodClose\",\"qualifiedName\":\"@happyvertical/smrt-commerce:BillingPeriodClose\",\"collection\":\"billingperiodcloses\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/billing.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"sellerTenantId\":{\"type\":\"crossPackageRef\",\"required\":true,\"related\":\"@happyvertical/smrt-users:Tenant\",\"_meta\":{\"required\":true}},\"kind\":{\"type\":\"text\",\"required\":false,\"default\":\"provider\"},\"payerTenantId\":{\"type\":\"crossPackageRef\",\"required\":true,\"related\":\"@happyvertical/smrt-users:Tenant\",\"_meta\":{\"required\":true}},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"periodStart\":{\"type\":\"datetime\",\"required\":false},\"periodEnd\":{\"type\":\"datetime\",\"required\":false},\"billingAccountId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"BillingAccount\"},\"status\":{\"type\":\"text\",\"required\":false,\"default\":\"collecting\"},\"invoiceId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Invoice\"},\"providerInvoiceId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"subtotal\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"lineCount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"issuedAt\":{\"type\":\"datetime\",\"required\":false},\"leaseToken\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"nullable\":true}},\"leaseExpiresAt\":{\"type\":\"datetime\",\"required\":false,\"_meta\":{\"nullable\":true}},\"attempts\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"lastError\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"runPeriodClose\":{\"name\":\"runPeriodClose\",\"async\":true,\"parameters\":[{\"name\":\"args\",\"type\":\"Record<string, unknown>\",\"optional\":true},{\"name\":\"_context\",\"type\":\"JobExecutionContext\",\"optional\":true}],\"returnType\":\"Promise<unknown>\",\"isStatic\":false,\"isPublic\":true},\"processBillingEvents\":{\"name\":\"processBillingEvents\",\"async\":true,\"parameters\":[{\"name\":\"args\",\"type\":\"Record<string, unknown>\",\"optional\":true},{\"name\":\"_context\",\"type\":\"JobExecutionContext\",\"optional\":true}],\"returnType\":\"Promise<unknown>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_billing_period_closes\",\"conflictColumns\":[\"seller_tenant_id\",\"kind\",\"payer_tenant_id\",\"currency\",\"period_start\",\"period_end\"],\"api\":false,\"cli\":false,\"mcp\":false},\"extends\":\"SmrtObject\",\"exportName\":\"BillingPeriodClose\",\"collectionExportName\":\"BillingPeriodCloseCollection\",\"validationRules\":[{\"field\":\"sellerTenantId\",\"rule\":\"required\",\"fieldType\":\"crossPackageRef\"},{\"field\":\"payerTenantId\",\"rule\":\"required\",\"fieldType\":\"crossPackageRef\"}],\"schema\":{\"tableName\":\"_smrt_billing_period_closes\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_billing_period_closes\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"seller_tenant_id\\\" UUID NOT NULL,\\n \\\"kind\\\" TEXT DEFAULT 'provider',\\n \\\"payer_tenant_id\\\" UUID NOT NULL,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"period_start\\\" TIMESTAMP,\\n \\\"period_end\\\" TIMESTAMP,\\n \\\"billing_account_id\\\" UUID,\\n \\\"status\\\" TEXT DEFAULT 'collecting',\\n \\\"invoice_id\\\" UUID,\\n \\\"provider_invoice_id\\\" TEXT DEFAULT '',\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"line_count\\\" INTEGER DEFAULT 0,\\n \\\"issued_at\\\" TIMESTAMP,\\n \\\"lease_token\\\" TEXT,\\n \\\"lease_expires_at\\\" TIMESTAMP,\\n \\\"attempts\\\" INTEGER DEFAULT 0,\\n \\\"last_error\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"seller_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"provider\"},\"payer_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"period_start\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"period_end\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"billing_account_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"_smrt_billing_accounts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"collecting\"},\"invoice_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"invoices\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"provider_invoice_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"line_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"issued_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"lease_token\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"lease_expires_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"attempts\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"last_error\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"_smrt_billing_period_closes_seller_tenant_id_kind_idx\",\"columns\":[\"seller_tenant_id\",\"kind\",\"payer_tenant_id\",\"currency\",\"period_start\",\"period_end\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_billing_period_closes_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_billing_period_closes_created_at_idx\",\"columns\":[\"created_at\"]},{\"name\":\"_smrt_billing_period_closes_payer_tenant_id_idx\",\"columns\":[\"payer_tenant_id\"]},{\"name\":\"_smrt_billing_period_closes_billing_account_id_idx\",\"columns\":[\"billing_account_id\"]},{\"name\":\"_smrt_billing_period_closes_invoice_id_idx\",\"columns\":[\"invoice_id\"]}],\"version\":\"753d2e86\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:BillingLineSource\":{\"name\":\"billinglinesource\",\"className\":\"BillingLineSource\",\"qualifiedName\":\"@happyvertical/smrt-commerce:BillingLineSource\",\"collection\":\"billinglinesources\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/billing.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{\"sellerTenantId\":{\"type\":\"crossPackageRef\",\"required\":true,\"related\":\"@happyvertical/smrt-users:Tenant\",\"_meta\":{\"required\":true}},\"periodCloseId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"BillingPeriodClose\"},\"sourceType\":{\"type\":\"text\",\"required\":false,\"default\":\"client_charge\"},\"sourceId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"lineKey\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"lineDescription\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"amount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"discount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"quantity\":{\"type\":\"decimal\",\"required\":false,\"default\":0},\"chainSequence\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"currency\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"periodStart\":{\"type\":\"datetime\",\"required\":false},\"periodEnd\":{\"type\":\"datetime\",\"required\":false}},\"methods\":{},\"decoratorConfig\":{\"tableName\":\"_smrt_billing_line_sources\",\"conflictColumns\":[\"source_type\",\"source_id\"],\"indexes\":[{\"name\":\"_smrt_billing_line_sources_line_key_chain_sequence_idx\",\"columns\":[\"lineKey\",\"chainSequence\"]}],\"api\":false,\"cli\":false,\"mcp\":false},\"extends\":\"SmrtObject\",\"exportName\":\"BillingLineSource\",\"collectionExportName\":\"BillingLineSourceCollection\",\"validationRules\":[{\"field\":\"sellerTenantId\",\"rule\":\"required\",\"fieldType\":\"crossPackageRef\"}],\"schema\":{\"tableName\":\"_smrt_billing_line_sources\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_billing_line_sources\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"seller_tenant_id\\\" UUID NOT NULL,\\n \\\"period_close_id\\\" UUID,\\n \\\"source_type\\\" TEXT DEFAULT 'client_charge',\\n \\\"source_id\\\" TEXT DEFAULT '',\\n \\\"line_key\\\" TEXT DEFAULT '',\\n \\\"line_description\\\" TEXT DEFAULT '',\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"discount\\\" INTEGER DEFAULT 0,\\n \\\"quantity\\\" REAL DEFAULT 0,\\n \\\"chain_sequence\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"period_start\\\" TIMESTAMP,\\n \\\"period_end\\\" TIMESTAMP\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"seller_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"period_close_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"_smrt_billing_period_closes\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"source_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"client_charge\"},\"source_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"line_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"line_description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"discount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"quantity\":{\"type\":\"REAL\",\"notNull\":false,\"unique\":false,\"default\":0},\"chain_sequence\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"period_start\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"period_end\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"_smrt_billing_line_sources_source_type_source_id_idx\",\"columns\":[\"source_type\",\"source_id\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_billing_line_sources_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_billing_line_sources_line_key_chain_sequence_idx\",\"columns\":[\"line_key\",\"chain_sequence\"]},{\"name\":\"_smrt_billing_line_sources_created_at_idx\",\"columns\":[\"created_at\"]},{\"name\":\"_smrt_billing_line_sources_seller_tenant_id_idx\",\"columns\":[\"seller_tenant_id\"]},{\"name\":\"_smrt_billing_line_sources_period_close_id_idx\",\"columns\":[\"period_close_id\"]}],\"version\":\"35e3aaa7\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:BillingAccountCollection\":{\"name\":\"billingaccountcollection\",\"className\":\"BillingAccountCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:BillingAccountCollection\",\"collection\":\"billingaccounts\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/billing.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"tableName\":\"_smrt_billing_accounts\",\"api\":false,\"mcp\":false,\"cli\":false},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"BillingAccount\",\"exportName\":\"BillingAccountCollection\",\"collectionExportName\":\"BillingAccountCollectionCollection\",\"schema\":{\"tableName\":\"_smrt_billing_accounts\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_billing_accounts\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"seller_tenant_id\\\" UUID NOT NULL,\\n \\\"payer_tenant_id\\\" UUID NOT NULL,\\n \\\"customer_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"email\\\" TEXT DEFAULT '',\\n \\\"provider\\\" TEXT DEFAULT '',\\n \\\"provider_customer_id\\\" TEXT DEFAULT '',\\n \\\"automatic_tax\\\" BOOLEAN DEFAULT TRUE,\\n \\\"flat_discount_basis_points\\\" INTEGER DEFAULT 0,\\n \\\"payment_terms_days\\\" INTEGER DEFAULT 30,\\n \\\"standing\\\" TEXT DEFAULT 'current',\\n \\\"billing_anchor_at\\\" TIMESTAMP,\\n \\\"prorate_flat_plans\\\" BOOLEAN DEFAULT FALSE\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"seller_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"payer_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"customer_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"customers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"email\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provider_customer_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"automatic_tax\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":true},\"flat_discount_basis_points\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"payment_terms_days\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":30},\"standing\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"current\"},\"billing_anchor_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"prorate_flat_plans\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false}},\"indexes\":[{\"name\":\"_smrt_billing_accounts_seller_tenant_id_payer_tenant_id_idx\",\"columns\":[\"seller_tenant_id\",\"payer_tenant_id\"],\"unique\":true},{\"name\":\"_smrt_billing_accounts_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_billing_accounts_created_at_idx\",\"columns\":[\"created_at\"]},{\"name\":\"_smrt_billing_accounts_payer_tenant_id_idx\",\"columns\":[\"payer_tenant_id\"]},{\"name\":\"_smrt_billing_accounts_customer_id_idx\",\"columns\":[\"customer_id\"]}],\"version\":\"58124e47\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:BillingPeriodCloseCollection\":{\"name\":\"billingperiodclosecollection\",\"className\":\"BillingPeriodCloseCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:BillingPeriodCloseCollection\",\"collection\":\"billingperiodcloses\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/billing.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"tableName\":\"_smrt_billing_period_closes\",\"api\":false,\"mcp\":false,\"cli\":false},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"BillingPeriodClose\",\"exportName\":\"BillingPeriodCloseCollection\",\"collectionExportName\":\"BillingPeriodCloseCollectionCollection\",\"schema\":{\"tableName\":\"_smrt_billing_period_closes\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_billing_period_closes\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"seller_tenant_id\\\" UUID NOT NULL,\\n \\\"kind\\\" TEXT DEFAULT 'provider',\\n \\\"payer_tenant_id\\\" UUID NOT NULL,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"period_start\\\" TIMESTAMP,\\n \\\"period_end\\\" TIMESTAMP,\\n \\\"billing_account_id\\\" UUID,\\n \\\"status\\\" TEXT DEFAULT 'collecting',\\n \\\"invoice_id\\\" UUID,\\n \\\"provider_invoice_id\\\" TEXT DEFAULT '',\\n \\\"subtotal\\\" INTEGER DEFAULT 0,\\n \\\"line_count\\\" INTEGER DEFAULT 0,\\n \\\"issued_at\\\" TIMESTAMP,\\n \\\"lease_token\\\" TEXT,\\n \\\"lease_expires_at\\\" TIMESTAMP,\\n \\\"attempts\\\" INTEGER DEFAULT 0,\\n \\\"last_error\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"seller_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"provider\"},\"payer_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"period_start\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"period_end\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"billing_account_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"_smrt_billing_accounts\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"collecting\"},\"invoice_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"invoices\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"provider_invoice_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"subtotal\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"line_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"issued_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"lease_token\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"lease_expires_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"attempts\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"last_error\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"_smrt_billing_period_closes_seller_tenant_id_kind_idx\",\"columns\":[\"seller_tenant_id\",\"kind\",\"payer_tenant_id\",\"currency\",\"period_start\",\"period_end\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_billing_period_closes_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_billing_period_closes_created_at_idx\",\"columns\":[\"created_at\"]},{\"name\":\"_smrt_billing_period_closes_payer_tenant_id_idx\",\"columns\":[\"payer_tenant_id\"]},{\"name\":\"_smrt_billing_period_closes_billing_account_id_idx\",\"columns\":[\"billing_account_id\"]},{\"name\":\"_smrt_billing_period_closes_invoice_id_idx\",\"columns\":[\"invoice_id\"]}],\"version\":\"753d2e86\"},\"importPath\":\"@happyvertical/smrt-commerce\"},\"@happyvertical/smrt-commerce:BillingLineSourceCollection\":{\"name\":\"billinglinesourcecollection\",\"className\":\"BillingLineSourceCollection\",\"qualifiedName\":\"@happyvertical/smrt-commerce:BillingLineSourceCollection\",\"collection\":\"billinglinesources\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/commerce/src/models/billing.ts\",\"packageName\":\"@happyvertical/smrt-commerce\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"tableName\":\"_smrt_billing_line_sources\",\"api\":false,\"mcp\":false,\"cli\":false},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"BillingLineSource\",\"exportName\":\"BillingLineSourceCollection\",\"collectionExportName\":\"BillingLineSourceCollectionCollection\",\"schema\":{\"tableName\":\"_smrt_billing_line_sources\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_billing_line_sources\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"seller_tenant_id\\\" UUID NOT NULL,\\n \\\"period_close_id\\\" UUID,\\n \\\"source_type\\\" TEXT DEFAULT 'client_charge',\\n \\\"source_id\\\" TEXT DEFAULT '',\\n \\\"line_key\\\" TEXT DEFAULT '',\\n \\\"line_description\\\" TEXT DEFAULT '',\\n \\\"amount\\\" INTEGER DEFAULT 0,\\n \\\"discount\\\" INTEGER DEFAULT 0,\\n \\\"quantity\\\" REAL DEFAULT 0,\\n \\\"chain_sequence\\\" INTEGER DEFAULT 0,\\n \\\"currency\\\" TEXT DEFAULT 'USD',\\n \\\"period_start\\\" TIMESTAMP,\\n \\\"period_end\\\" TIMESTAMP\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"seller_tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":true,\"unique\":false},\"period_close_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"_smrt_billing_period_closes\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"source_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"client_charge\"},\"source_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"line_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"line_description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"amount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"discount\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"quantity\":{\"type\":\"REAL\",\"notNull\":false,\"unique\":false,\"default\":0},\"chain_sequence\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"currency\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"USD\"},\"period_start\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"period_end\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"_smrt_billing_line_sources_source_type_source_id_idx\",\"columns\":[\"source_type\",\"source_id\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_billing_line_sources_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_billing_line_sources_line_key_chain_sequence_idx\",\"columns\":[\"line_key\",\"chain_sequence\"]},{\"name\":\"_smrt_billing_line_sources_created_at_idx\",\"columns\":[\"created_at\"]},{\"name\":\"_smrt_billing_line_sources_seller_tenant_id_idx\",\"columns\":[\"seller_tenant_id\"]},{\"name\":\"_smrt_billing_line_sources_period_close_id_idx\",\"columns\":[\"period_close_id\"]}],\"version\":\"35e3aaa7\"},\"importPath\":\"@happyvertical/smrt-commerce\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-ledgers\",\"@happyvertical/smrt-subscriptions\",\"@happyvertical/smrt-tenancy\"]}"));
|
|
25
|
+
//#endregion
|
|
26
|
+
//#region src/billing/cycles.ts
|
|
27
|
+
function daysInMonth(year, month) {
|
|
28
|
+
return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();
|
|
29
|
+
}
|
|
30
|
+
function addBillingMonths(anchor, months) {
|
|
31
|
+
const total = anchor.getUTCFullYear() * 12 + anchor.getUTCMonth() + months;
|
|
32
|
+
const year = Math.floor(total / 12);
|
|
33
|
+
const month = total - year * 12;
|
|
34
|
+
const day = Math.min(anchor.getUTCDate(), daysInMonth(year, month));
|
|
35
|
+
return new Date(Date.UTC(year, month, day, anchor.getUTCHours(), anchor.getUTCMinutes(), anchor.getUTCSeconds(), anchor.getUTCMilliseconds()));
|
|
36
|
+
}
|
|
37
|
+
function monthStart(date) {
|
|
38
|
+
return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1));
|
|
39
|
+
}
|
|
40
|
+
function calendarMonthContaining(at) {
|
|
41
|
+
const periodStart = monthStart(at);
|
|
42
|
+
const periodEnd = new Date(Date.UTC(periodStart.getUTCFullYear(), periodStart.getUTCMonth() + 1, 1));
|
|
43
|
+
return {
|
|
44
|
+
periodStart,
|
|
45
|
+
periodEnd,
|
|
46
|
+
cycleStart: periodStart,
|
|
47
|
+
cycleEnd: periodEnd
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function assertValidDate(date, name) {
|
|
51
|
+
if (!(date instanceof Date) || !Number.isFinite(date.getTime())) throw new Error(`${name} must be a valid date.`);
|
|
52
|
+
}
|
|
53
|
+
function billingPeriodContaining(anchor, at) {
|
|
54
|
+
assertValidDate(at, "at");
|
|
55
|
+
if (!anchor) return calendarMonthContaining(at);
|
|
56
|
+
assertValidDate(anchor, "billingAnchorAt");
|
|
57
|
+
const time = at.getTime();
|
|
58
|
+
if (time < anchor.getTime()) {
|
|
59
|
+
const anchorMonth = monthStart(anchor);
|
|
60
|
+
if (time >= anchorMonth.getTime()) {
|
|
61
|
+
const cycle = calendarMonthContaining(anchorMonth);
|
|
62
|
+
return {
|
|
63
|
+
periodStart: anchorMonth,
|
|
64
|
+
periodEnd: anchor,
|
|
65
|
+
cycleStart: cycle.cycleStart,
|
|
66
|
+
cycleEnd: cycle.cycleEnd
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return calendarMonthContaining(at);
|
|
70
|
+
}
|
|
71
|
+
let k = (at.getUTCFullYear() - anchor.getUTCFullYear()) * 12 + (at.getUTCMonth() - anchor.getUTCMonth());
|
|
72
|
+
while (k > 0 && addBillingMonths(anchor, k).getTime() > time) k -= 1;
|
|
73
|
+
while (addBillingMonths(anchor, k + 1).getTime() <= time) k += 1;
|
|
74
|
+
const periodStart = addBillingMonths(anchor, k);
|
|
75
|
+
const periodEnd = addBillingMonths(anchor, k + 1);
|
|
76
|
+
return {
|
|
77
|
+
periodStart,
|
|
78
|
+
periodEnd,
|
|
79
|
+
cycleStart: periodStart,
|
|
80
|
+
cycleEnd: periodEnd
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function lastEndedBillingPeriod(anchor, now = /* @__PURE__ */ new Date()) {
|
|
84
|
+
const current = billingPeriodContaining(anchor, now);
|
|
85
|
+
return billingPeriodContaining(anchor, /* @__PURE__ */ new Date(current.periodStart.getTime() - 1));
|
|
86
|
+
}
|
|
87
|
+
function prorateMinorUnits(amount, coveredMs, cycleMs) {
|
|
88
|
+
if (!Number.isSafeInteger(amount) || amount < 0) throw new Error("A prorated amount must be a non-negative safe integer.");
|
|
89
|
+
if (!Number.isSafeInteger(cycleMs) || cycleMs <= 0) throw new Error("A billing cycle must have a positive length.");
|
|
90
|
+
if (!Number.isSafeInteger(coveredMs) || coveredMs <= 0) return 0;
|
|
91
|
+
if (coveredMs >= cycleMs) return amount;
|
|
92
|
+
const numerator = BigInt(amount) * BigInt(coveredMs) * 2n + BigInt(cycleMs);
|
|
93
|
+
return Number(numerator / (BigInt(cycleMs) * 2n));
|
|
94
|
+
}
|
|
25
95
|
//#endregion
|
|
26
96
|
//#region src/billing/jobs.ts
|
|
27
97
|
var jobs_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -125,17 +195,23 @@ function isCalendarMonth(period) {
|
|
|
125
195
|
const { periodStart: start, periodEnd: end } = period;
|
|
126
196
|
return start.getUTCDate() === 1 && start.getUTCHours() === 0 && start.getUTCMinutes() === 0 && start.getUTCSeconds() === 0 && start.getUTCMilliseconds() === 0 && end.getTime() === Date.UTC(start.getUTCFullYear(), start.getUTCMonth() + 1, 1);
|
|
127
197
|
}
|
|
128
|
-
function
|
|
129
|
-
|
|
198
|
+
function resolveMode(input) {
|
|
199
|
+
const now = input.now ?? /* @__PURE__ */ new Date();
|
|
200
|
+
if (!input.periodStart && !input.periodEnd) return {
|
|
201
|
+
kind: "due",
|
|
202
|
+
now
|
|
203
|
+
};
|
|
130
204
|
if (!input.periodStart || !input.periodEnd) throw new Error("Pass both periodStart and periodEnd, or neither.");
|
|
131
205
|
const period = {
|
|
132
206
|
periodStart: input.periodStart,
|
|
133
207
|
periodEnd: input.periodEnd
|
|
134
208
|
};
|
|
135
209
|
if (!Number.isFinite(period.periodStart.getTime()) || !(period.periodEnd.getTime() > period.periodStart.getTime())) throw new Error("A billing period must end after it starts.");
|
|
136
|
-
const now = input.now ?? /* @__PURE__ */ new Date();
|
|
137
210
|
if (period.periodEnd.getTime() > now.getTime()) throw new Error("A billing period cannot be closed before it ends.");
|
|
138
|
-
return
|
|
211
|
+
return {
|
|
212
|
+
kind: "explicit",
|
|
213
|
+
period
|
|
214
|
+
};
|
|
139
215
|
}
|
|
140
216
|
function periodCloseId(runtime, payerTenantId, currency, period) {
|
|
141
217
|
return deterministicId([
|
|
@@ -155,55 +231,116 @@ function sourceId(type, id) {
|
|
|
155
231
|
id
|
|
156
232
|
]);
|
|
157
233
|
}
|
|
234
|
+
function samePeriod(a, b) {
|
|
235
|
+
return a.periodStart.getTime() === b.periodStart.getTime() && a.periodEnd.getTime() === b.periodEnd.getTime();
|
|
236
|
+
}
|
|
237
|
+
var PayerSchedules = class {
|
|
238
|
+
constructor(runtime, mode) {
|
|
239
|
+
this.runtime = runtime;
|
|
240
|
+
this.mode = mode;
|
|
241
|
+
}
|
|
242
|
+
runtime;
|
|
243
|
+
mode;
|
|
244
|
+
cache = /* @__PURE__ */ new Map();
|
|
245
|
+
get(payerTenantId) {
|
|
246
|
+
const key = tenantKey(payerTenantId);
|
|
247
|
+
let schedule = this.cache.get(key);
|
|
248
|
+
if (!schedule) {
|
|
249
|
+
schedule = this.resolve(key);
|
|
250
|
+
this.cache.set(key, schedule);
|
|
251
|
+
}
|
|
252
|
+
return schedule;
|
|
253
|
+
}
|
|
254
|
+
async resolve(payer) {
|
|
255
|
+
const account = isTenantId(payer) ? await this.runtime.getAccount(payer) : null;
|
|
256
|
+
const anchor = account?.billingAnchorAt ?? null;
|
|
257
|
+
const prorate = Boolean(account?.prorateFlatPlans);
|
|
258
|
+
if (this.mode.kind === "due") return {
|
|
259
|
+
period: lastEndedBillingPeriod(anchor, this.mode.now),
|
|
260
|
+
billsFlatPlans: true,
|
|
261
|
+
prorate
|
|
262
|
+
};
|
|
263
|
+
const explicit = this.mode.period;
|
|
264
|
+
if (!anchor) return {
|
|
265
|
+
period: {
|
|
266
|
+
...explicit,
|
|
267
|
+
cycleStart: explicit.periodStart,
|
|
268
|
+
cycleEnd: explicit.periodEnd
|
|
269
|
+
},
|
|
270
|
+
billsFlatPlans: isCalendarMonth(explicit),
|
|
271
|
+
prorate
|
|
272
|
+
};
|
|
273
|
+
const scheduled = billingPeriodContaining(anchor, explicit.periodStart);
|
|
274
|
+
const matches = samePeriod(scheduled, explicit);
|
|
275
|
+
return {
|
|
276
|
+
period: matches ? scheduled : null,
|
|
277
|
+
billsFlatPlans: matches,
|
|
278
|
+
prorate
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
};
|
|
158
282
|
async function closeBillingPeriod(runtime, input = {}) {
|
|
159
|
-
const
|
|
283
|
+
const mode = resolveMode(input);
|
|
160
284
|
const now = input.now ?? /* @__PURE__ */ new Date();
|
|
161
|
-
const
|
|
162
|
-
const
|
|
285
|
+
const schedules = new PayerSchedules(runtime, mode);
|
|
286
|
+
const groups = await withSystemContext(() => collectGroups(runtime, mode, schedules));
|
|
287
|
+
const unfinished = await runtime.closes.list({ where: {
|
|
163
288
|
sellerTenantId: runtime.sellerTenantId,
|
|
164
289
|
kind: runtime.kind,
|
|
165
290
|
"status !=": "completed"
|
|
166
|
-
} })
|
|
291
|
+
} });
|
|
167
292
|
const results = [];
|
|
168
293
|
const seen = /* @__PURE__ */ new Set();
|
|
169
294
|
for (const group of groups) {
|
|
170
295
|
seen.add(group.closeId);
|
|
171
|
-
results.push(await closeGroup(runtime,
|
|
296
|
+
results.push(await closeGroup(runtime, group, now));
|
|
172
297
|
}
|
|
173
|
-
for (const close of
|
|
298
|
+
for (const close of unfinished) {
|
|
174
299
|
if (!close.id || seen.has(close.id) || close.status === "completed" || close.status === "carried_forward") continue;
|
|
175
|
-
|
|
300
|
+
const period = (mode.kind === "explicit" ? samePeriod(close, mode.period) : close.periodEnd.getTime() <= now.getTime()) ? {
|
|
301
|
+
periodStart: close.periodStart,
|
|
302
|
+
periodEnd: close.periodEnd,
|
|
303
|
+
cycleStart: close.periodStart,
|
|
304
|
+
cycleEnd: close.periodEnd
|
|
305
|
+
} : null;
|
|
306
|
+
if (!period) continue;
|
|
307
|
+
results.push(await closeGroup(runtime, {
|
|
176
308
|
payerTenantId: close.payerTenantId,
|
|
177
309
|
currency: close.currency,
|
|
178
310
|
closeId: close.id,
|
|
311
|
+
period,
|
|
179
312
|
candidates: []
|
|
180
313
|
}, now));
|
|
181
314
|
}
|
|
182
315
|
const result = {
|
|
183
316
|
sellerTenantId: runtime.sellerTenantId,
|
|
184
|
-
...period,
|
|
317
|
+
...mode.kind === "explicit" ? mode.period : previousCalendarMonth(now),
|
|
185
318
|
groups: results
|
|
186
319
|
};
|
|
187
320
|
if (results.some((group) => group.outcome === "failed")) throw new BillingPeriodCloseError(result);
|
|
188
321
|
return result;
|
|
189
322
|
}
|
|
190
|
-
async function collectGroups(runtime,
|
|
323
|
+
async function collectGroups(runtime, mode, schedules) {
|
|
324
|
+
const bound = mode.kind === "explicit" ? mode.period.periodEnd : mode.now;
|
|
191
325
|
const candidates = [];
|
|
192
326
|
if (runtime.kind === "provider") {
|
|
193
|
-
candidates.push(...await collectClientCharges(runtime,
|
|
194
|
-
candidates.push(...await collectAdjustments(runtime,
|
|
195
|
-
} else candidates.push(...await collectRetailCharges(runtime,
|
|
196
|
-
|
|
197
|
-
candidates.push(...await collectCarriedCredits(runtime,
|
|
327
|
+
candidates.push(...await collectClientCharges(runtime, bound, schedules));
|
|
328
|
+
candidates.push(...await collectAdjustments(runtime, bound, schedules));
|
|
329
|
+
} else candidates.push(...await collectRetailCharges(runtime, bound, schedules));
|
|
330
|
+
candidates.push(...await collectFlatPlans(runtime, bound, schedules));
|
|
331
|
+
candidates.push(...await collectCarriedCredits(runtime, schedules));
|
|
198
332
|
const byGroup = /* @__PURE__ */ new Map();
|
|
199
333
|
for (const candidate of candidates) {
|
|
200
334
|
const key = `${candidate.payerTenantId}|${candidate.currency}`;
|
|
201
335
|
let group = byGroup.get(key);
|
|
202
336
|
if (!group) {
|
|
337
|
+
const { period } = await schedules.get(candidate.payerTenantId);
|
|
338
|
+
if (!period) continue;
|
|
203
339
|
group = {
|
|
204
340
|
payerTenantId: candidate.payerTenantId,
|
|
205
341
|
currency: candidate.currency,
|
|
206
342
|
closeId: await periodCloseId(runtime, candidate.payerTenantId, candidate.currency, period),
|
|
343
|
+
period,
|
|
207
344
|
candidates: []
|
|
208
345
|
};
|
|
209
346
|
byGroup.set(key, group);
|
|
@@ -211,14 +348,20 @@ async function collectGroups(runtime, period) {
|
|
|
211
348
|
group.candidates.push(candidate);
|
|
212
349
|
}
|
|
213
350
|
const groups = [...byGroup.values()].sort((a, b) => `${a.payerTenantId}|${a.currency}`.localeCompare(`${b.payerTenantId}|${b.currency}`));
|
|
351
|
+
const flatClaims = await loadFlatClaims(runtime, candidates.flatMap((candidate) => candidate.flat ? [candidate.flat] : []));
|
|
214
352
|
for (const group of groups) {
|
|
215
|
-
const ids = await Promise.all(group.candidates.map((candidate) => sourceId(candidate.sourceType, candidate.sourceId)));
|
|
353
|
+
const ids = await Promise.all(group.candidates.map((candidate) => candidate.flat ? "" : sourceId(candidate.sourceType, candidate.sourceId)));
|
|
216
354
|
const claimed = /* @__PURE__ */ new Map();
|
|
217
|
-
|
|
218
|
-
|
|
355
|
+
const lookup = ids.filter(Boolean);
|
|
356
|
+
for (let offset = 0; offset < lookup.length; offset += runtime.pageSize) {
|
|
357
|
+
const rows = await runtime.sources.list({ where: { id: lookup.slice(offset, offset + runtime.pageSize) } });
|
|
219
358
|
for (const row of rows) if (row.id) claimed.set(row.id, row.periodCloseId);
|
|
220
359
|
}
|
|
221
|
-
group.candidates = group.candidates.filter((
|
|
360
|
+
group.candidates = group.candidates.filter((candidate, index) => {
|
|
361
|
+
if (candidate.flat) {
|
|
362
|
+
const claims = flatClaims.get(candidate.flat.subscriptionId) ?? [];
|
|
363
|
+
return claims.some((claim) => claim.periodCloseId === group.closeId) || uncovered(candidate.flat, claims).length > 0;
|
|
364
|
+
}
|
|
222
365
|
const owner = claimed.get(ids[index]);
|
|
223
366
|
return owner === void 0 || owner === group.closeId;
|
|
224
367
|
});
|
|
@@ -233,18 +376,31 @@ async function listAll(pageSize, page) {
|
|
|
233
376
|
if (rows.length < pageSize) return all;
|
|
234
377
|
}
|
|
235
378
|
}
|
|
236
|
-
async function
|
|
237
|
-
const
|
|
379
|
+
async function unclaimedRows(runtime, table, sourceType, atColumn, where, params) {
|
|
380
|
+
const rows = [];
|
|
238
381
|
for (let offset = 0;; offset += runtime.pageSize) {
|
|
239
|
-
const result = await runtime.db.query(`SELECT c.id AS id
|
|
382
|
+
const result = await runtime.db.query(`SELECT c.id AS id, c.tenant_id AS payer, c.${atColumn} AS at
|
|
383
|
+
FROM ${table} c
|
|
240
384
|
LEFT JOIN _smrt_billing_line_sources s
|
|
241
385
|
ON s.source_type = ? AND s.source_id = CAST(c.id AS TEXT)
|
|
242
386
|
WHERE s.id IS NULL AND ${where}
|
|
243
387
|
ORDER BY c.id
|
|
244
388
|
LIMIT ? OFFSET ?`, sourceType, ...params, runtime.pageSize, offset);
|
|
245
|
-
for (const row of result.rows)
|
|
246
|
-
|
|
389
|
+
for (const row of result.rows) rows.push({
|
|
390
|
+
id: String(row.id),
|
|
391
|
+
payer: tenantKey(row.payer),
|
|
392
|
+
at: new Date(row.at)
|
|
393
|
+
});
|
|
394
|
+
if (result.rows.length < runtime.pageSize) return rows;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
async function billableIds(rows, schedules) {
|
|
398
|
+
const ids = [];
|
|
399
|
+
for (const row of rows) {
|
|
400
|
+
const { period } = await schedules.get(row.payer);
|
|
401
|
+
if (period && row.at.getTime() < period.periodEnd.getTime()) ids.push(row.id);
|
|
247
402
|
}
|
|
403
|
+
return ids;
|
|
248
404
|
}
|
|
249
405
|
async function loadByIds(pageSize, ids, load) {
|
|
250
406
|
const rows = [];
|
|
@@ -266,9 +422,9 @@ async function sellerBookIds(runtime) {
|
|
|
266
422
|
function isSellerCharge(charge, books) {
|
|
267
423
|
return !charge.priceBookId || books.has(String(charge.priceBookId));
|
|
268
424
|
}
|
|
269
|
-
async function collectClientCharges(runtime,
|
|
425
|
+
async function collectClientCharges(runtime, bound, schedules) {
|
|
270
426
|
const books = await sellerBookIds(runtime);
|
|
271
|
-
const ids = await
|
|
427
|
+
const ids = await billableIds(await unclaimedRows(runtime, "_smrt_client_charges", "client_charge", "approved_at", "c.status IN ('approved', 'adjusted') AND c.approved_at < ?", [bound.toISOString()]), schedules);
|
|
272
428
|
return (await loadByIds(runtime.pageSize, ids, (batch) => runtime.charges.list({ where: { id: batch } }))).filter((charge) => charge.id && isSellerCharge(charge, books)).filter((charge) => tenantKey(charge.tenantId) !== runtime.sellerTenantId).map((charge) => {
|
|
273
429
|
const payer = tenantKey(charge.tenantId);
|
|
274
430
|
const usageTenant = tenantKey(charge.usageTenantId);
|
|
@@ -288,9 +444,9 @@ async function collectClientCharges(runtime, period) {
|
|
|
288
444
|
};
|
|
289
445
|
});
|
|
290
446
|
}
|
|
291
|
-
async function collectAdjustments(runtime,
|
|
447
|
+
async function collectAdjustments(runtime, bound, schedules) {
|
|
292
448
|
const books = await sellerBookIds(runtime);
|
|
293
|
-
const ids = await
|
|
449
|
+
const ids = await billableIds(await unclaimedRows(runtime, "_smrt_billing_adjustments", "billing_adjustment", "created_at", "c.created_at < ?", [bound.toISOString()]), schedules);
|
|
294
450
|
const adjustments = await loadByIds(runtime.pageSize, ids, (batch) => runtime.adjustments.list({ where: { id: batch } }));
|
|
295
451
|
const chargeIds = [...new Set(adjustments.map((row) => String(row.clientChargeId)))].filter(Boolean);
|
|
296
452
|
const charges = /* @__PURE__ */ new Map();
|
|
@@ -320,8 +476,8 @@ async function collectAdjustments(runtime, period) {
|
|
|
320
476
|
}
|
|
321
477
|
return candidates;
|
|
322
478
|
}
|
|
323
|
-
async function collectRetailCharges(runtime,
|
|
324
|
-
const ids = await
|
|
479
|
+
async function collectRetailCharges(runtime, bound, schedules) {
|
|
480
|
+
const ids = await billableIds(await unclaimedRows(runtime, "_smrt_retail_charges", "retail_charge", "approved_at", "c.reseller_tenant_id = ? AND c.status = 'approved' AND c.approved_at < ?", [runtime.sellerTenantId, bound.toISOString()]), schedules);
|
|
325
481
|
return (await loadByIds(runtime.pageSize, ids, (batch) => runtime.retailCharges.list({ where: { id: batch } }))).filter((charge) => charge.id).map((charge) => ({
|
|
326
482
|
sourceType: "retail_charge",
|
|
327
483
|
sourceId: String(charge.id),
|
|
@@ -336,8 +492,8 @@ async function collectRetailCharges(runtime, period) {
|
|
|
336
492
|
periodEnd: null
|
|
337
493
|
}));
|
|
338
494
|
}
|
|
339
|
-
async function collectCarriedCredits(runtime,
|
|
340
|
-
|
|
495
|
+
async function collectCarriedCredits(runtime, schedules) {
|
|
496
|
+
const carried = await listAll(runtime.pageSize, (limit, offset) => runtime.closes.list({
|
|
341
497
|
where: {
|
|
342
498
|
sellerTenantId: runtime.sellerTenantId,
|
|
343
499
|
kind: runtime.kind,
|
|
@@ -346,24 +502,32 @@ async function collectCarriedCredits(runtime, period) {
|
|
|
346
502
|
orderBy: "id ASC",
|
|
347
503
|
limit,
|
|
348
504
|
offset
|
|
349
|
-
}))).filter((close) => close.id && close.periodEnd.getTime() <= period.periodStart.getTime() && Number(close.subtotal) < 0).map((close) => ({
|
|
350
|
-
sourceType: "credit_carry_forward",
|
|
351
|
-
sourceId: String(close.id),
|
|
352
|
-
payerTenantId: tenantKey(close.payerTenantId),
|
|
353
|
-
currency: normalizeCurrency(close.currency),
|
|
354
|
-
lineKey: `carry-forward|${close.id}`,
|
|
355
|
-
lineDescription: `Credit carried forward from ${isoDate(close.periodStart)} to ${isoDate(/* @__PURE__ */ new Date(close.periodEnd.getTime() - 1))}`,
|
|
356
|
-
amount: Number(close.subtotal),
|
|
357
|
-
quantity: 0,
|
|
358
|
-
discountable: false,
|
|
359
|
-
periodStart: null,
|
|
360
|
-
periodEnd: null
|
|
361
505
|
}));
|
|
506
|
+
const candidates = [];
|
|
507
|
+
for (const close of carried) {
|
|
508
|
+
if (!close.id || !(Number(close.subtotal) < 0)) continue;
|
|
509
|
+
const { period } = await schedules.get(close.payerTenantId);
|
|
510
|
+
if (!period || close.periodEnd.getTime() > period.periodStart.getTime()) continue;
|
|
511
|
+
candidates.push({
|
|
512
|
+
sourceType: "credit_carry_forward",
|
|
513
|
+
sourceId: String(close.id),
|
|
514
|
+
payerTenantId: tenantKey(close.payerTenantId),
|
|
515
|
+
currency: normalizeCurrency(close.currency),
|
|
516
|
+
lineKey: `carry-forward|${close.id}`,
|
|
517
|
+
lineDescription: `Credit carried forward from ${isoDate(close.periodStart)} to ${isoDate(/* @__PURE__ */ new Date(close.periodEnd.getTime() - 1))}`,
|
|
518
|
+
amount: Number(close.subtotal),
|
|
519
|
+
quantity: 0,
|
|
520
|
+
discountable: false,
|
|
521
|
+
periodStart: null,
|
|
522
|
+
periodEnd: null
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
return candidates;
|
|
362
526
|
}
|
|
363
527
|
function isoDate(date) {
|
|
364
528
|
return date.toISOString().slice(0, 10);
|
|
365
529
|
}
|
|
366
|
-
async function collectFlatPlans(runtime,
|
|
530
|
+
async function collectFlatPlans(runtime, bound, schedules) {
|
|
367
531
|
const subscriptions = await listAll(runtime.pageSize, (limit, offset) => runtime.subscriptions.list({
|
|
368
532
|
where: {
|
|
369
533
|
status: [
|
|
@@ -373,7 +537,7 @@ async function collectFlatPlans(runtime, period) {
|
|
|
373
537
|
"canceled"
|
|
374
538
|
],
|
|
375
539
|
subscriberKind: "tenant",
|
|
376
|
-
"startedAt <":
|
|
540
|
+
"startedAt <": bound.toISOString()
|
|
377
541
|
},
|
|
378
542
|
orderBy: "id ASC",
|
|
379
543
|
limit,
|
|
@@ -388,7 +552,7 @@ async function collectFlatPlans(runtime, period) {
|
|
|
388
552
|
const candidates = [];
|
|
389
553
|
for (const subscription of subscriptions) {
|
|
390
554
|
const plan = plans.get(String(subscription.planId));
|
|
391
|
-
if (!plan || !
|
|
555
|
+
if (!subscription.id || !plan || !isFlatPlan(subscription, plan)) continue;
|
|
392
556
|
const planSeller = tenantKey(plan.tenantId);
|
|
393
557
|
const subscriber = tenantKey(subscription.tenantId);
|
|
394
558
|
let payer;
|
|
@@ -403,37 +567,175 @@ async function collectFlatPlans(runtime, period) {
|
|
|
403
567
|
}
|
|
404
568
|
payer = tenantKey(payer);
|
|
405
569
|
if (!payer || payer === runtime.sellerTenantId) continue;
|
|
570
|
+
const schedule = await schedules.get(payer);
|
|
571
|
+
if (!schedule.period || !schedule.billsFlatPlans) continue;
|
|
572
|
+
const window = flatWindow(subscription, schedule.period, schedule.prorate);
|
|
573
|
+
if (!window) continue;
|
|
406
574
|
const forTenant = payer !== subscriber ? ` for tenant ${subscriber}` : "";
|
|
407
575
|
candidates.push({
|
|
408
576
|
sourceType: "subscription_period",
|
|
409
|
-
sourceId:
|
|
577
|
+
sourceId: "",
|
|
410
578
|
payerTenantId: payer,
|
|
411
579
|
currency: normalizeCurrency(plan.currency),
|
|
412
|
-
lineKey:
|
|
413
|
-
lineDescription:
|
|
414
|
-
amount:
|
|
580
|
+
lineKey: flatLineKey(String(subscription.id)),
|
|
581
|
+
lineDescription: "",
|
|
582
|
+
amount: 0,
|
|
415
583
|
quantity: 1,
|
|
416
584
|
discountable: true,
|
|
417
|
-
periodStart:
|
|
418
|
-
periodEnd:
|
|
585
|
+
periodStart: window.start,
|
|
586
|
+
periodEnd: window.end,
|
|
587
|
+
flat: {
|
|
588
|
+
subscriptionId: String(subscription.id),
|
|
589
|
+
planAmount: Number(plan.priceAmount),
|
|
590
|
+
label: `${plan.name || plan.planKey}${forTenant}`,
|
|
591
|
+
windowStart: window.start,
|
|
592
|
+
windowEnd: window.end,
|
|
593
|
+
cycleMs: schedule.period.cycleEnd.getTime() - schedule.period.cycleStart.getTime()
|
|
594
|
+
}
|
|
419
595
|
});
|
|
420
596
|
}
|
|
421
597
|
return candidates;
|
|
422
598
|
}
|
|
423
|
-
function
|
|
599
|
+
function isFlatPlan(subscription, plan) {
|
|
424
600
|
if (subscription.stripeSubscriptionId) return false;
|
|
425
601
|
if (plan.billingInterval !== "month") return false;
|
|
426
602
|
if (!Number.isSafeInteger(plan.priceAmount) || plan.priceAmount <= 0) return false;
|
|
427
|
-
const start = period.periodStart.getTime();
|
|
428
603
|
if (subscription.status === "canceled" && !subscription.canceledAt) return false;
|
|
429
|
-
if (subscription.canceledAt && subscription.canceledAt.getTime() <= start) return false;
|
|
430
|
-
if (subscription.trialEndsAt && subscription.trialEndsAt.getTime() > start) return false;
|
|
431
604
|
return true;
|
|
432
605
|
}
|
|
433
|
-
|
|
606
|
+
function flatWindow(subscription, period, prorate) {
|
|
607
|
+
const start = period.periodStart.getTime();
|
|
608
|
+
const end = period.periodEnd.getTime();
|
|
609
|
+
const startedAt = subscription.startedAt.getTime();
|
|
610
|
+
const canceledAt = subscription.canceledAt?.getTime();
|
|
611
|
+
const trialEndsAt = subscription.trialEndsAt?.getTime();
|
|
612
|
+
if (!(startedAt < end)) return null;
|
|
613
|
+
if (canceledAt !== void 0 && canceledAt <= start) return null;
|
|
614
|
+
if (!prorate) {
|
|
615
|
+
if (trialEndsAt !== void 0 && trialEndsAt > start) return null;
|
|
616
|
+
return {
|
|
617
|
+
start: period.periodStart,
|
|
618
|
+
end: period.periodEnd
|
|
619
|
+
};
|
|
620
|
+
}
|
|
621
|
+
const from = Math.max(start, startedAt, trialEndsAt ?? start);
|
|
622
|
+
const to = Math.min(end, canceledAt ?? end);
|
|
623
|
+
return to > from ? {
|
|
624
|
+
start: new Date(from),
|
|
625
|
+
end: new Date(to)
|
|
626
|
+
} : null;
|
|
627
|
+
}
|
|
628
|
+
function flatLineKey(subscriptionId) {
|
|
629
|
+
return `subscription|${subscriptionId}`;
|
|
630
|
+
}
|
|
631
|
+
async function loadFlatClaims(runtime, flats) {
|
|
632
|
+
const bySubscription = /* @__PURE__ */ new Map();
|
|
633
|
+
for (const flat of flats) {
|
|
634
|
+
const start = flat.windowStart.getTime();
|
|
635
|
+
const end = flat.windowEnd.getTime();
|
|
636
|
+
const known = bySubscription.get(flat.subscriptionId);
|
|
637
|
+
bySubscription.set(flat.subscriptionId, known ? [Math.min(known[0], start), Math.max(known[1], end)] : [start, end]);
|
|
638
|
+
}
|
|
639
|
+
const entries = [...bySubscription.entries()];
|
|
640
|
+
const claims = /* @__PURE__ */ new Map();
|
|
641
|
+
for (let offset = 0; offset < entries.length; offset += runtime.pageSize) {
|
|
642
|
+
const batch = entries.slice(offset, offset + runtime.pageSize);
|
|
643
|
+
const after = Math.min(...batch.map(([, [start]]) => start));
|
|
644
|
+
const before = Math.max(...batch.map(([, [, end]]) => end));
|
|
645
|
+
const rows = await runtime.sources.list({ where: {
|
|
646
|
+
sourceType: "subscription_period",
|
|
647
|
+
lineKey: batch.map(([subscriptionId]) => flatLineKey(subscriptionId)),
|
|
648
|
+
"periodEnd >": new Date(after).toISOString(),
|
|
649
|
+
"periodStart <": new Date(before).toISOString()
|
|
650
|
+
} });
|
|
651
|
+
for (const row of rows) {
|
|
652
|
+
const subscriptionId = row.lineKey.slice(13);
|
|
653
|
+
const list = claims.get(subscriptionId) ?? [];
|
|
654
|
+
list.push(row);
|
|
655
|
+
claims.set(subscriptionId, list);
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
return claims;
|
|
659
|
+
}
|
|
660
|
+
function uncovered(flat, claims) {
|
|
661
|
+
const start = flat.windowStart.getTime();
|
|
662
|
+
const end = flat.windowEnd.getTime();
|
|
663
|
+
const covered = claims.filter((claim) => claim.periodStart && claim.periodEnd).map((claim) => [claim.periodStart.getTime(), claim.periodEnd.getTime()]).filter(([from, to]) => from < end && to > start).sort((a, b) => a[0] - b[0]);
|
|
664
|
+
const gaps = [];
|
|
665
|
+
let cursor = start;
|
|
666
|
+
for (const [from, to] of covered) {
|
|
667
|
+
if (from > cursor) gaps.push([cursor, Math.min(from, end)]);
|
|
668
|
+
cursor = Math.max(cursor, to);
|
|
669
|
+
if (cursor >= end) break;
|
|
670
|
+
}
|
|
671
|
+
if (cursor < end) gaps.push([cursor, end]);
|
|
672
|
+
return gaps.filter(([from, to]) => to > from);
|
|
673
|
+
}
|
|
674
|
+
async function lastFlatSequence(runtime, subscriptionId) {
|
|
675
|
+
const [last] = await runtime.sources.list({
|
|
676
|
+
where: {
|
|
677
|
+
sourceType: "subscription_period",
|
|
678
|
+
lineKey: flatLineKey(subscriptionId)
|
|
679
|
+
},
|
|
680
|
+
orderBy: "chainSequence DESC",
|
|
681
|
+
limit: 1
|
|
682
|
+
});
|
|
683
|
+
return Number(last?.chainSequence) || 0;
|
|
684
|
+
}
|
|
685
|
+
function flatSourceId(subscriptionId, sequence) {
|
|
686
|
+
return `${subscriptionId}:seq:${sequence}`;
|
|
687
|
+
}
|
|
688
|
+
var MAX_FLAT_CLAIM_CONFLICTS = 8;
|
|
689
|
+
async function claimFlatWindow(runtime, closeId, candidate, flat, account) {
|
|
690
|
+
let conflicts = 0;
|
|
691
|
+
for (;;) {
|
|
692
|
+
const sequence = await lastFlatSequence(runtime, flat.subscriptionId) + 1;
|
|
693
|
+
const gap = uncovered(flat, (await loadFlatClaims(runtime, [flat])).get(flat.subscriptionId) ?? []).map(([from, to]) => ({
|
|
694
|
+
from,
|
|
695
|
+
to,
|
|
696
|
+
amount: prorateMinorUnits(flat.planAmount, to - from, flat.cycleMs)
|
|
697
|
+
})).find((part) => part.amount > 0);
|
|
698
|
+
if (!gap) return;
|
|
699
|
+
const billedStart = new Date(gap.from);
|
|
700
|
+
const billedEnd = new Date(gap.to);
|
|
701
|
+
const claimSourceId = flatSourceId(flat.subscriptionId, sequence);
|
|
702
|
+
const id = await sourceId("subscription_period", claimSourceId);
|
|
703
|
+
const prorated = gap.to - gap.from < flat.cycleMs ? " (prorated)" : "";
|
|
704
|
+
try {
|
|
705
|
+
await runtime.sources.create({
|
|
706
|
+
id,
|
|
707
|
+
sellerTenantId: runtime.sellerTenantId,
|
|
708
|
+
periodCloseId: closeId,
|
|
709
|
+
sourceType: "subscription_period",
|
|
710
|
+
sourceId: claimSourceId,
|
|
711
|
+
chainSequence: sequence,
|
|
712
|
+
lineKey: candidate.lineKey,
|
|
713
|
+
lineDescription: `${flat.label} \u2014 ${isoDate(billedStart)} to ${isoDate(/* @__PURE__ */ new Date(billedEnd.getTime() - 1))}${prorated}`,
|
|
714
|
+
amount: gap.amount,
|
|
715
|
+
discount: flatDiscount(gap.amount, account),
|
|
716
|
+
quantity: 1,
|
|
717
|
+
currency: candidate.currency,
|
|
718
|
+
periodStart: billedStart,
|
|
719
|
+
periodEnd: billedEnd,
|
|
720
|
+
_insertOnly: true
|
|
721
|
+
});
|
|
722
|
+
} catch (error) {
|
|
723
|
+
if (!await runtime.sources.get(id)) throw error;
|
|
724
|
+
conflicts += 1;
|
|
725
|
+
if (conflicts >= MAX_FLAT_CLAIM_CONFLICTS) throw new Error(`Could not claim subscription ${flat.subscriptionId}: its billed coverage kept changing.`);
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
function flatDiscount(amount, account) {
|
|
730
|
+
return Math.round(amount * Number(account.flatDiscountBasisPoints) / 1e4);
|
|
731
|
+
}
|
|
732
|
+
async function closeGroup(runtime, group, now) {
|
|
733
|
+
const { period } = group;
|
|
434
734
|
const base = {
|
|
435
735
|
payerTenantId: group.payerTenantId,
|
|
436
736
|
currency: group.currency,
|
|
737
|
+
periodStart: period.periodStart,
|
|
738
|
+
periodEnd: period.periodEnd,
|
|
437
739
|
closeId: group.closeId
|
|
438
740
|
};
|
|
439
741
|
let leaseToken = null;
|
|
@@ -524,8 +826,12 @@ async function advance(runtime, close, candidates, account) {
|
|
|
524
826
|
async function collectAndInvoice(runtime, close, candidates, account) {
|
|
525
827
|
const closeId = String(close.id);
|
|
526
828
|
for (const candidate of candidates) {
|
|
829
|
+
if (candidate.flat) {
|
|
830
|
+
await claimFlatWindow(runtime, closeId, candidate, candidate.flat, account);
|
|
831
|
+
continue;
|
|
832
|
+
}
|
|
527
833
|
const id = await sourceId(candidate.sourceType, candidate.sourceId);
|
|
528
|
-
const discount = candidate.discountable ?
|
|
834
|
+
const discount = candidate.discountable ? flatDiscount(candidate.amount, account) : 0;
|
|
529
835
|
try {
|
|
530
836
|
await runtime.sources.create({
|
|
531
837
|
id,
|
|
@@ -630,10 +936,11 @@ async function collectAndInvoice(runtime, close, candidates, account) {
|
|
|
630
936
|
function groupLines(sources) {
|
|
631
937
|
const lines = /* @__PURE__ */ new Map();
|
|
632
938
|
for (const source of sources) {
|
|
633
|
-
|
|
939
|
+
const key = source.sourceType === "subscription_period" && Number(source.chainSequence) > 0 ? `${source.lineKey}|${source.periodStart?.toISOString() ?? ""}` : source.lineKey;
|
|
940
|
+
let line = lines.get(key);
|
|
634
941
|
if (!line) {
|
|
635
942
|
line = {
|
|
636
|
-
key
|
|
943
|
+
key,
|
|
637
944
|
description: source.lineDescription,
|
|
638
945
|
amount: 0,
|
|
639
946
|
discount: 0,
|
|
@@ -641,7 +948,7 @@ function groupLines(sources) {
|
|
|
641
948
|
periodStart: source.periodStart,
|
|
642
949
|
periodEnd: source.periodEnd
|
|
643
950
|
};
|
|
644
|
-
lines.set(
|
|
951
|
+
lines.set(key, line);
|
|
645
952
|
}
|
|
646
953
|
line.amount += Number(source.amount);
|
|
647
954
|
line.discount += Number(source.discount);
|
|
@@ -2184,6 +2491,15 @@ var BillingAccount = class extends SmrtObject {
|
|
|
2184
2491
|
flatDiscountBasisPoints = 0;
|
|
2185
2492
|
paymentTermsDays = 30;
|
|
2186
2493
|
standing = "current";
|
|
2494
|
+
billingAnchorAt = null;
|
|
2495
|
+
/**
|
|
2496
|
+
* Prorate flat plans to the time they were active inside a period
|
|
2497
|
+
* (#3116): a subscription starting, leaving trial, or canceled mid-period
|
|
2498
|
+
* is billed `price × covered / cycle`, rounded half up to minor units.
|
|
2499
|
+
* Off, a flat plan active at any point of a period is billed in full (the
|
|
2500
|
+
* pre-#3116 behavior).
|
|
2501
|
+
*/
|
|
2502
|
+
prorateFlatPlans = false;
|
|
2187
2503
|
async validateBeforeSave() {
|
|
2188
2504
|
await super.validateBeforeSave();
|
|
2189
2505
|
this.sellerTenantId = canonicalTenantId(this.sellerTenantId, "sellerTenantId");
|
|
@@ -2193,11 +2509,16 @@ var BillingAccount = class extends SmrtObject {
|
|
|
2193
2509
|
if (!Number.isSafeInteger(this.flatDiscountBasisPoints) || this.flatDiscountBasisPoints < 0 || this.flatDiscountBasisPoints > 1e4) throw new Error("flatDiscountBasisPoints must be an integer from 0 to 10000.");
|
|
2194
2510
|
if (!Number.isSafeInteger(this.paymentTermsDays) || this.paymentTermsDays < 0 || this.paymentTermsDays > 365) throw new Error("paymentTermsDays must be an integer from 0 to 365.");
|
|
2195
2511
|
if (!STANDINGS.includes(this.standing)) throw new Error("standing must be current, past_due, or uncollectible.");
|
|
2512
|
+
if (this.billingAnchorAt !== null && (!(this.billingAnchorAt instanceof Date) || !Number.isFinite(this.billingAnchorAt.getTime()))) throw new Error("billingAnchorAt must be a valid date or null.");
|
|
2196
2513
|
}
|
|
2197
2514
|
};
|
|
2198
2515
|
__decorateClass$10([crossPackageRef("@happyvertical/smrt-users:Tenant"), field({ required: true })], BillingAccount.prototype, "sellerTenantId", 2);
|
|
2199
2516
|
__decorateClass$10([crossPackageRef("@happyvertical/smrt-users:Tenant"), field({ required: true })], BillingAccount.prototype, "payerTenantId", 2);
|
|
2200
2517
|
__decorateClass$10([foreignKey("Customer")], BillingAccount.prototype, "customerId", 2);
|
|
2518
|
+
__decorateClass$10([field({
|
|
2519
|
+
type: "datetime",
|
|
2520
|
+
nullable: true
|
|
2521
|
+
})], BillingAccount.prototype, "billingAnchorAt", 2);
|
|
2201
2522
|
BillingAccount = __decorateClass$10([smrt({
|
|
2202
2523
|
tableName: "_smrt_billing_accounts",
|
|
2203
2524
|
conflictColumns: ["seller_tenant_id", "payer_tenant_id"],
|
|
@@ -2284,7 +2605,16 @@ var BillingLineSource = class extends SmrtObject {
|
|
|
2284
2605
|
discount = 0;
|
|
2285
2606
|
/** Metered quantity, informational; fractional like the charge's. */
|
|
2286
2607
|
quantity = 0;
|
|
2608
|
+
/**
|
|
2609
|
+
* A flat-plan claim's number within its subscription (1, 2, …; #3116). 0
|
|
2610
|
+
* for other sources and for flat-plan claims written before #3116.
|
|
2611
|
+
*/
|
|
2612
|
+
chainSequence = 0;
|
|
2287
2613
|
currency = "USD";
|
|
2614
|
+
/**
|
|
2615
|
+
* The billed window. For a flat plan this is the time the claim covers
|
|
2616
|
+
* (#3116), which later claims for the same subscription never overlap.
|
|
2617
|
+
*/
|
|
2288
2618
|
periodStart = null;
|
|
2289
2619
|
periodEnd = null;
|
|
2290
2620
|
};
|
|
@@ -2293,6 +2623,10 @@ __decorateClass$10([foreignKey("BillingPeriodClose")], BillingLineSource.prototy
|
|
|
2293
2623
|
BillingLineSource = __decorateClass$10([smrt({
|
|
2294
2624
|
tableName: "_smrt_billing_line_sources",
|
|
2295
2625
|
conflictColumns: ["source_type", "source_id"],
|
|
2626
|
+
indexes: [{
|
|
2627
|
+
name: "_smrt_billing_line_sources_line_key_chain_sequence_idx",
|
|
2628
|
+
columns: ["lineKey", "chainSequence"]
|
|
2629
|
+
}],
|
|
2296
2630
|
api: false,
|
|
2297
2631
|
cli: false,
|
|
2298
2632
|
mcp: false
|
|
@@ -3549,6 +3883,7 @@ var BillingRuntime = class BillingRuntime {
|
|
|
3549
3883
|
*/
|
|
3550
3884
|
async upsertAccount(input) {
|
|
3551
3885
|
const payerTenantId = canonicalTenantId(input.payerTenantId, "payerTenantId");
|
|
3886
|
+
if (input.billingAnchorAt !== void 0 && input.billingAnchorAt !== null && !(input.billingAnchorAt instanceof Date && Number.isFinite(input.billingAnchorAt.getTime()))) throw new Error("billingAnchorAt must be a valid date or null.");
|
|
3552
3887
|
const id = await this.accountId(payerTenantId);
|
|
3553
3888
|
const existing = await this.accounts.get(id);
|
|
3554
3889
|
const customerId = await withTenant({ tenantId: this.sellerTenantId }, async () => {
|
|
@@ -3583,6 +3918,8 @@ var BillingRuntime = class BillingRuntime {
|
|
|
3583
3918
|
if (input.automaticTax !== void 0) account.automaticTax = input.automaticTax;
|
|
3584
3919
|
if (input.flatDiscountBasisPoints !== void 0) account.flatDiscountBasisPoints = input.flatDiscountBasisPoints;
|
|
3585
3920
|
if (input.paymentTermsDays !== void 0) account.paymentTermsDays = input.paymentTermsDays;
|
|
3921
|
+
if (input.billingAnchorAt !== void 0) account.billingAnchorAt = input.billingAnchorAt;
|
|
3922
|
+
if (input.prorateFlatPlans !== void 0) account.prorateFlatPlans = input.prorateFlatPlans;
|
|
3586
3923
|
if (input.providerCustomerId) {
|
|
3587
3924
|
account.provider = this.provider.name;
|
|
3588
3925
|
account.providerCustomerId = input.providerCustomerId;
|
|
@@ -3620,10 +3957,23 @@ var BillingRuntime = class BillingRuntime {
|
|
|
3620
3957
|
automaticTax: account.automaticTax && !customer.taxExempt
|
|
3621
3958
|
};
|
|
3622
3959
|
}
|
|
3623
|
-
/**
|
|
3960
|
+
/**
|
|
3961
|
+
* Close billing periods. Without a period, each payer's last ended period
|
|
3962
|
+
* on its own schedule (the previous UTC calendar month unless its account
|
|
3963
|
+
* has a `billingAnchorAt`), so running it daily is safe. See
|
|
3964
|
+
* {@link ClosePeriodInput}.
|
|
3965
|
+
*/
|
|
3624
3966
|
closePeriod(input = {}) {
|
|
3625
3967
|
return closeBillingPeriod(this, input);
|
|
3626
3968
|
}
|
|
3969
|
+
/**
|
|
3970
|
+
* The payer's billing period containing `at` (default now) on its account's
|
|
3971
|
+
* schedule — for example to show the next invoice date. A payer without an
|
|
3972
|
+
* account is on calendar months.
|
|
3973
|
+
*/
|
|
3974
|
+
async billingPeriodFor(payerTenantId, at = /* @__PURE__ */ new Date()) {
|
|
3975
|
+
return billingPeriodContaining((await this.getAccount(payerTenantId))?.billingAnchorAt ?? null, at);
|
|
3976
|
+
}
|
|
3627
3977
|
async getInvoice(invoiceId) {
|
|
3628
3978
|
const invoice = await withTenant({ tenantId: this.sellerTenantId }, () => this.invoices.get(invoiceId));
|
|
3629
3979
|
if (!invoice) throw new Error(`Invoice ${invoiceId} was not found.`);
|
|
@@ -6886,6 +7236,6 @@ function migrateCommerceMoneyToMinorUnits(db, options = {}) {
|
|
|
6886
7236
|
});
|
|
6887
7237
|
}
|
|
6888
7238
|
//#endregion
|
|
6889
|
-
export { Agreement, BillingAccount, BillingLineSource, BillingPeriodClose, BillingPeriodCloseError, BillingRuntime, BillingWebhookVerificationError, COMMERCE_MODULE_META, COMMERCE_MONEY_COLUMNS, COMMERCE_MONEY_MINOR_UNITS_BACKFILL, COMMERCE_NATIVE_UNIT_COLUMNS, COMMERCE_UI_SLOTS, Cart, Contract, ContractCollection, ContractLineItem, ContractLineItemCollection, ContractStatus, ContractType, Customer, CustomerCollection, CustomerStatus, CustomerType, Estimate, Fulfillment, FulfillmentCollection, FulfillmentLineItem, FulfillmentLineItemCollection, FulfillmentStatus, FulfillmentType, Invoice, InvoiceCollection, InvoiceLineItem, InvoiceLineItemCollection, InvoiceStatus, Lease, LicenseSale, Order, Payment, PaymentAllocation, PaymentAllocationCollection, PaymentCollection, PaymentInstrument, PaymentInstrumentCollection, PaymentInstrumentStatus, PaymentIntent, PaymentIntentCollection, PaymentIntentStatus, PaymentMethod, PaymentStatus, Payout, PayoutCollection, PayoutStatus, ProductionOrder, PurchaseOrder, UNPAID_STATUSES, Vendor, VendorCollection, VendorStatus, WholesaleOrder, assertIntegerMinorUnits, createStripeBillingProvider, currencyMinorUnitExponent, enqueueBillingEvents, enqueueBillingPeriodClose, getBillingRuntime, majorToMinorUnits, migrateCommerceMoneyToMinorUnits, minorToMajorUnits, preflightCommerceMoneyMinorUnits, previousCalendarMonth, registerBillingRuntime, unregisterBillingRuntime };
|
|
7239
|
+
export { Agreement, BillingAccount, BillingLineSource, BillingPeriodClose, BillingPeriodCloseError, BillingRuntime, BillingWebhookVerificationError, COMMERCE_MODULE_META, COMMERCE_MONEY_COLUMNS, COMMERCE_MONEY_MINOR_UNITS_BACKFILL, COMMERCE_NATIVE_UNIT_COLUMNS, COMMERCE_UI_SLOTS, Cart, Contract, ContractCollection, ContractLineItem, ContractLineItemCollection, ContractStatus, ContractType, Customer, CustomerCollection, CustomerStatus, CustomerType, Estimate, Fulfillment, FulfillmentCollection, FulfillmentLineItem, FulfillmentLineItemCollection, FulfillmentStatus, FulfillmentType, Invoice, InvoiceCollection, InvoiceLineItem, InvoiceLineItemCollection, InvoiceStatus, Lease, LicenseSale, Order, Payment, PaymentAllocation, PaymentAllocationCollection, PaymentCollection, PaymentInstrument, PaymentInstrumentCollection, PaymentInstrumentStatus, PaymentIntent, PaymentIntentCollection, PaymentIntentStatus, PaymentMethod, PaymentStatus, Payout, PayoutCollection, PayoutStatus, ProductionOrder, PurchaseOrder, UNPAID_STATUSES, Vendor, VendorCollection, VendorStatus, WholesaleOrder, addBillingMonths, assertIntegerMinorUnits, billingPeriodContaining, createStripeBillingProvider, currencyMinorUnitExponent, enqueueBillingEvents, enqueueBillingPeriodClose, getBillingRuntime, lastEndedBillingPeriod, majorToMinorUnits, migrateCommerceMoneyToMinorUnits, minorToMajorUnits, preflightCommerceMoneyMinorUnits, previousCalendarMonth, prorateMinorUnits, registerBillingRuntime, unregisterBillingRuntime };
|
|
6890
7240
|
|
|
6891
7241
|
//# sourceMappingURL=index.js.map
|