@happyvertical/smrt-products 0.43.2 → 0.43.4
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/dist/lib/chunks/{__smrt-register__-eVJ_un4S.js → __smrt-register__-bLWySlR6.js} +2 -2
- package/dist/lib/chunks/{__smrt-register__-eVJ_un4S.js.map → __smrt-register__-bLWySlR6.js.map} +1 -1
- package/dist/lib/chunks/{collections-CDocEoe7.js → collections-BKBwVmtF.js} +2 -2
- package/dist/lib/chunks/{collections-CDocEoe7.js.map → collections-BKBwVmtF.js.map} +1 -1
- package/dist/lib/chunks/{generated-DoMvC5Y-.js → generated-CVld4qKC.js} +2 -2
- package/dist/lib/chunks/{generated-DoMvC5Y-.js.map → generated-CVld4qKC.js.map} +1 -1
- package/dist/lib/chunks/models-BguNInvq.js +2 -0
- package/dist/lib/collections.js +1 -1
- package/dist/lib/generated.js +1 -1
- package/dist/lib/index.js +4 -4
- package/dist/lib/manifest.json +1 -1
- package/dist/lib/models.js +1 -1
- package/dist/lib/smrt-knowledge.json +3 -3
- package/package.json +9 -9
- package/dist/lib/chunks/models-DERCP1cz.js +0 -2
package/dist/lib/chunks/{__smrt-register__-eVJ_un4S.js.map → __smrt-register__-bLWySlR6.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"__smrt-register__-eVJ_un4S.js","names":[],"sources":["../../../src/__smrt-register__.ts"],"sourcesContent":["// Generated by @happyvertical/smrt-core smrtPlugin at library build time.\n// The package manifest is inlined so self-registration cannot miss when a\n// downstream bundler relocates this module away from dist/manifest.json\n// (https://github.com/happyvertical/smrt/issues/1506,\n// https://github.com/happyvertical/smrt/issues/1507).\nimport { ObjectRegistry } from '@happyvertical/smrt-core';\n\nObjectRegistry.registerPackageManifest(JSON.parse(\"{\\\"version\\\":\\\"1.0.0\\\",\\\"timestamp\\\":0,\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"packageVersion\\\":\\\"0.43.2\\\",\\\"objects\\\":{\\\"@happyvertical/smrt-products:CategoryCollection\\\":{\\\"name\\\":\\\"categorycollection\\\",\\\"className\\\":\\\"CategoryCollection\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:CategoryCollection\\\",\\\"collection\\\":\\\"categories\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/collections/CategoryCollection.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"fields\\\":{},\\\"methods\\\":{\\\"getRootCategories\\\":{\\\"name\\\":\\\"getRootCategories\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<Category[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{},\\\"extends\\\":\\\"SmrtCollection\\\",\\\"extendsTypeArg\\\":\\\"Category\\\",\\\"exportName\\\":\\\"CategoryCollection\\\",\\\"collectionExportName\\\":\\\"CategoryCollectionCollection\\\",\\\"schema\\\":{\\\"tableName\\\":\\\"category_collections\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"category_collections\\\\\\\" (\\\\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);\\\",\\\"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\\\"}},\\\"indexes\\\":[{\\\"name\\\":\\\"category_collections_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"category_collections_created_at_idx\\\",\\\"columns\\\":[\\\"created_at\\\"]}],\\\"version\\\":\\\"f2f42d47\\\"}},\\\"@happyvertical/smrt-products:MaterialCollection\\\":{\\\"name\\\":\\\"materialcollection\\\",\\\"className\\\":\\\"MaterialCollection\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:MaterialCollection\\\",\\\"collection\\\":\\\"products\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/collections/MaterialCollection.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"fields\\\":{},\\\"methods\\\":{\\\"findByKind\\\":{\\\"name\\\":\\\"findByKind\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"materialKind\\\",\\\"type\\\":\\\"MaterialKind\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<Material[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableName\\\":\\\"products\\\"},\\\"extends\\\":\\\"ProductCollection\\\",\\\"exportName\\\":\\\"MaterialCollection\\\",\\\"collectionExportName\\\":\\\"MaterialCollectionCollection\\\",\\\"schema\\\":{\\\"tableName\\\":\\\"products\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"products\\\\\\\" (\\\\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);\\\",\\\"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\\\"}},\\\"indexes\\\":[{\\\"name\\\":\\\"products_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"products_created_at_idx\\\",\\\"columns\\\":[\\\"created_at\\\"]}],\\\"version\\\":\\\"d7d2c125\\\"}},\\\"@happyvertical/smrt-products:ProductAssetCollection\\\":{\\\"name\\\":\\\"productassetcollection\\\",\\\"className\\\":\\\"ProductAssetCollection\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:ProductAssetCollection\\\",\\\"collection\\\":\\\"productassets\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/collections/ProductAssetCollection.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"fields\\\":{},\\\"methods\\\":{\\\"byLeft\\\":{\\\"name\\\":\\\"byLeft\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"leftId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"JunctionFilterOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<TItem[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"byRight\\\":{\\\"name\\\":\\\"byRight\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"rightId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"JunctionFilterOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<TItem[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"attach\\\":{\\\"name\\\":\\\"attach\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"leftId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"rightId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"JunctionAttachOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<TItem>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"detach\\\":{\\\"name\\\":\\\"detach\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"leftId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"rightId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"JunctionFilterOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"setLinks\\\":{\\\"name\\\":\\\"setLinks\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"leftId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"rightIds\\\",\\\"type\\\":\\\"string[]\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"JunctionAttachOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAssets\\\":{\\\"name\\\":\\\"getAssets\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Asset[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"addAsset\\\":{\\\"name\\\":\\\"addAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"asset\\\",\\\"type\\\":\\\"Asset\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true,\\\"default\\\":\\\"attachment\\\"},{\\\"name\\\":\\\"sortOrder\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"removeAsset\\\":{\\\"name\\\":\\\"removeAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"assetId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"api\\\":false,\\\"mcp\\\":false,\\\"cli\\\":false,\\\"tableName\\\":\\\"product_assets\\\"},\\\"extends\\\":\\\"SmrtJunction\\\",\\\"extendsTypeArg\\\":\\\"ProductAsset\\\",\\\"exportName\\\":\\\"ProductAssetCollection\\\",\\\"collectionExportName\\\":\\\"ProductAssetCollectionCollection\\\",\\\"schema\\\":{\\\"tableName\\\":\\\"product_assets\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_assets\\\\\\\" (\\\\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);\\\",\\\"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\\\"}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_assets_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_assets_created_at_idx\\\",\\\"columns\\\":[\\\"created_at\\\"]}],\\\"version\\\":\\\"ffb1b593\\\"}},\\\"@happyvertical/smrt-products:ProductCollection\\\":{\\\"name\\\":\\\"productcollection\\\",\\\"className\\\":\\\"ProductCollection\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:ProductCollection\\\",\\\"collection\\\":\\\"products\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/collections/ProductCollection.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"fields\\\":{},\\\"methods\\\":{\\\"findByManufacturer\\\":{\\\"name\\\":\\\"findByManufacturer\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"manufacturer\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<Product[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"findInStock\\\":{\\\"name\\\":\\\"findInStock\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<Product[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAssets\\\":{\\\"name\\\":\\\"getAssets\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Asset[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"addAsset\\\":{\\\"name\\\":\\\"addAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"asset\\\",\\\"type\\\":\\\"Asset\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true,\\\"default\\\":\\\"attachment\\\"},{\\\"name\\\":\\\"sortOrder\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"removeAsset\\\":{\\\"name\\\":\\\"removeAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"assetId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{},\\\"extends\\\":\\\"SmrtCollection\\\",\\\"extendsTypeArg\\\":\\\"Product\\\",\\\"exportName\\\":\\\"ProductCollection\\\",\\\"collectionExportName\\\":\\\"ProductCollectionCollection\\\",\\\"schema\\\":{\\\"tableName\\\":\\\"product_collections\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_collections\\\\\\\" (\\\\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);\\\",\\\"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\\\"}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_collections_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_collections_created_at_idx\\\",\\\"columns\\\":[\\\"created_at\\\"]}],\\\"version\\\":\\\"51a90ef1\\\"}},\\\"@happyvertical/smrt-products:ProductVariantCollection\\\":{\\\"name\\\":\\\"productvariantcollection\\\",\\\"className\\\":\\\"ProductVariantCollection\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:ProductVariantCollection\\\",\\\"collection\\\":\\\"productvariants\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/collections/ProductVariantCollection.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"fields\\\":{},\\\"methods\\\":{\\\"findForProduct\\\":{\\\"name\\\":\\\"findForProduct\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<ProductVariant[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"findAxis\\\":{\\\"name\\\":\\\"findAxis\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"axisName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<ProductVariant | null>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableName\\\":\\\"product_variants\\\"},\\\"extends\\\":\\\"SmrtCollection\\\",\\\"extendsTypeArg\\\":\\\"ProductVariant\\\",\\\"exportName\\\":\\\"ProductVariantCollection\\\",\\\"collectionExportName\\\":\\\"ProductVariantCollectionCollection\\\",\\\"schema\\\":{\\\"tableName\\\":\\\"product_variants\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_variants\\\\\\\" (\\\\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);\\\",\\\"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\\\"}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_variants_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_variants_created_at_idx\\\",\\\"columns\\\":[\\\"created_at\\\"]}],\\\"version\\\":\\\"7e192164\\\"}},\\\"@happyvertical/smrt-products:SkuCollection\\\":{\\\"name\\\":\\\"skucollection\\\",\\\"className\\\":\\\"SkuCollection\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:SkuCollection\\\",\\\"collection\\\":\\\"skus\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/collections/SkuCollection.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"fields\\\":{},\\\"methods\\\":{\\\"findByCode\\\":{\\\"name\\\":\\\"findByCode\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"code\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<Sku | null>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"findByBarcode\\\":{\\\"name\\\":\\\"findByBarcode\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"barcode\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<Sku | null>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"findByProduct\\\":{\\\"name\\\":\\\"findByProduct\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<Sku[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"findByParent\\\":{\\\"name\\\":\\\"findByParent\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"parentSkuId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<Sku[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"findActive\\\":{\\\"name\\\":\\\"findActive\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Sku[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableName\\\":\\\"product_skus\\\"},\\\"extends\\\":\\\"SmrtCollection\\\",\\\"extendsTypeArg\\\":\\\"Sku\\\",\\\"exportName\\\":\\\"SkuCollection\\\",\\\"collectionExportName\\\":\\\"SkuCollectionCollection\\\",\\\"schema\\\":{\\\"tableName\\\":\\\"product_skus\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_skus\\\\\\\" (\\\\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);\\\",\\\"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\\\"}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_skus_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_skus_created_at_idx\\\",\\\"columns\\\":[\\\"created_at\\\"]}],\\\"version\\\":\\\"f3e8dedc\\\"}},\\\"@happyvertical/smrt-products:Category\\\":{\\\"name\\\":\\\"category\\\",\\\"className\\\":\\\"Category\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:Category\\\",\\\"collection\\\":\\\"categories\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/models/Category.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"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}}},\\\"name\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"description\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"parentId\\\":{\\\"type\\\":\\\"foreignKey\\\",\\\"required\\\":false,\\\"related\\\":\\\"Category\\\"},\\\"level\\\":{\\\"type\\\":\\\"integer\\\",\\\"required\\\":true,\\\"default\\\":0},\\\"productCount\\\":{\\\"type\\\":\\\"integer\\\",\\\"required\\\":true,\\\"default\\\":0},\\\"active\\\":{\\\"type\\\":\\\"boolean\\\",\\\"required\\\":true,\\\"default\\\":true}},\\\"methods\\\":{\\\"withDatabase\\\":{\\\"name\\\":\\\"withDatabase\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"db\\\",\\\"type\\\":\\\"DatabaseInterface\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"operation\\\",\\\"type\\\":\\\"Function\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<T>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAiUsageSnapshot\\\":{\\\"name\\\":\\\"getAiUsageSnapshot\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"AiUsageSnapshot | undefined\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"resetAiUsage\\\":{\\\"name\\\":\\\"resetAiUsage\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"listAiUsage\\\":{\\\"name\\\":\\\"listAiUsage\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiUsageListOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<SmrtAiUsageRecord[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"summarizeAiUsage\\\":{\\\"name\\\":\\\"summarizeAiUsage\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiUsageSummaryOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Record<string, AiUsageStats>>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"destroy\\\":{\\\"name\\\":\\\"destroy\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"markAsPersisted\\\":{\\\"name\\\":\\\"markAsPersisted\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"requireInsertOnSave\\\":{\\\"name\\\":\\\"requireInsertOnSave\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"initialize\\\":{\\\"name\\\":\\\"initialize\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadDataFromDb\\\":{\\\"name\\\":\\\"loadDataFromDb\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"data\\\",\\\"type\\\":\\\"Record<string>\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getFields\\\":{\\\"name\\\":\\\"getFields\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toJSON\\\":{\\\"name\\\":\\\"toJSON\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toPlainObject\\\":{\\\"name\\\":\\\"toPlainObject\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toPublicJSON\\\":{\\\"name\\\":\\\"toPublicJSON\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"PublicJsonOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getId\\\":{\\\"name\\\":\\\"getId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSlug\\\":{\\\"name\\\":\\\"getSlug\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSavedId\\\":{\\\"name\\\":\\\"getSavedId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"isSaved\\\":{\\\"name\\\":\\\"isSaved\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"save\\\":{\\\"name\\\":\\\"save\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"classifyConstraintError\\\":{\\\"name\\\":\\\"classifyConstraintError\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"message\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"'unique' | 'not_null' | null\\\",\\\"isStatic\\\":true,\\\"isPublic\\\":true},\\\"loadFromId\\\":{\\\"name\\\":\\\"loadFromId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadFromSlug\\\":{\\\"name\\\":\\\"loadFromSlug\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"is\\\":{\\\"name\\\":\\\"is\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"criteria\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"do\\\":{\\\"name\\\":\\\"do\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"instructions\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"describe\\\":{\\\"name\\\":\\\"describe\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"delete\\\":{\\\"name\\\":\\\"delete\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"isRelatedLoaded\\\":{\\\"name\\\":\\\"isRelatedLoaded\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"boolean\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"_setLoadedRelationship\\\":{\\\"name\\\":\\\"_setLoadedRelationship\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadRelated\\\":{\\\"name\\\":\\\"loadRelated\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadRelatedMany\\\":{\\\"name\\\":\\\"loadRelatedMany\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getRelated\\\":{\\\"name\\\":\\\"getRelated\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAvailableTools\\\":{\\\"name\\\":\\\"getAvailableTools\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"AITool[]\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"executeToolCall\\\":{\\\"name\\\":\\\"executeToolCall\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"toolCall\\\",\\\"type\\\":\\\"ToolCall\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<ToolCallResult>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"remember\\\":{\\\"name\\\":\\\"remember\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"recall\\\":{\\\"name\\\":\\\"recall\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"recallAll\\\":{\\\"name\\\":\\\"recallAll\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Map<string>>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"forget\\\":{\\\"name\\\":\\\"forget\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"forgetScope\\\":{\\\"name\\\":\\\"forgetScope\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<number>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"generateEmbeddings\\\":{\\\"name\\\":\\\"generateEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"GenerateEmbeddingsOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getEmbedding\\\":{\\\"name\\\":\\\"getEmbedding\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"model\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<number[] | null>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"hasStaleEmbeddings\\\":{\\\"name\\\":\\\"hasStaleEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<boolean>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"clearEmbeddings\\\":{\\\"name\\\":\\\"clearEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableStrategy\\\":\\\"sti\\\",\\\"api\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\",\\\"create\\\",\\\"update\\\"]},\\\"mcp\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\"]},\\\"cli\\\":true,\\\"tenantScoped\\\":{\\\"mode\\\":\\\"optional\\\"},\\\"conflictColumns\\\":[\\\"tenant_id\\\",\\\"slug\\\",\\\"context\\\",\\\"_meta_type\\\"]},\\\"extends\\\":\\\"SmrtObject\\\",\\\"exportName\\\":\\\"Category\\\",\\\"collectionExportName\\\":\\\"CategoryCollection\\\",\\\"validationRules\\\":[{\\\"field\\\":\\\"level\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"integer\\\"},{\\\"field\\\":\\\"productCount\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"integer\\\"},{\\\"field\\\":\\\"active\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"boolean\\\"}],\\\"schema\\\":{\\\"tableName\\\":\\\"categories\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"categories\\\\\\\" (\\\\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 \\\\\\\"name\\\\\\\" TEXT,\\\\n \\\\\\\"description\\\\\\\" TEXT,\\\\n \\\\\\\"parent_id\\\\\\\" UUID,\\\\n \\\\\\\"level\\\\\\\" INTEGER DEFAULT 0,\\\\n \\\\\\\"product_count\\\\\\\" INTEGER DEFAULT 0,\\\\n \\\\\\\"active\\\\\\\" BOOLEAN DEFAULT TRUE\\\\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},\\\"name\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"description\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"parent_id\\\":{\\\"type\\\":\\\"UUID\\\",\\\"referenceKind\\\":\\\"foreignKey\\\",\\\"notNull\\\":false,\\\"foreignKey\\\":{\\\"table\\\":\\\"categories\\\",\\\"column\\\":\\\"id\\\",\\\"onDelete\\\":\\\"NO ACTION\\\",\\\"onUpdate\\\":\\\"CASCADE\\\"}},\\\"level\\\":{\\\"type\\\":\\\"INTEGER\\\",\\\"notNull\\\":false,\\\"default\\\":0},\\\"product_count\\\":{\\\"type\\\":\\\"INTEGER\\\",\\\"notNull\\\":false,\\\"default\\\":0},\\\"active\\\":{\\\"type\\\":\\\"BOOLEAN\\\",\\\"notNull\\\":false,\\\"default\\\":true}},\\\"indexes\\\":[{\\\"name\\\":\\\"categories_slug_context_meta_type_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"slug\\\",\\\"context\\\",\\\"_meta_type\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"categories_meta_type_idx\\\",\\\"columns\\\":[\\\"_meta_type\\\"]},{\\\"name\\\":\\\"categories_tenant_id_created_at_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"created_at\\\"]},{\\\"name\\\":\\\"categories_parent_id_idx\\\",\\\"columns\\\":[\\\"parent_id\\\"]}],\\\"version\\\":\\\"78838be9\\\"}},\\\"@happyvertical/smrt-products:Material\\\":{\\\"name\\\":\\\"material\\\",\\\"className\\\":\\\"Material\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:Material\\\",\\\"collection\\\":\\\"products\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/models/Material.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"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}}},\\\"productType\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"name\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"description\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"category\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"manufacturer\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"model\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"price\\\":{\\\"type\\\":\\\"integer\\\",\\\"required\\\":true,\\\"default\\\":0},\\\"inStock\\\":{\\\"type\\\":\\\"boolean\\\",\\\"required\\\":true,\\\"default\\\":true},\\\"specifications\\\":{\\\"type\\\":\\\"json\\\",\\\"required\\\":false,\\\"default\\\":{}},\\\"tags\\\":{\\\"type\\\":\\\"json\\\",\\\"required\\\":false,\\\"default\\\":[]},\\\"materialKind\\\":{\\\"type\\\":\\\"meta\\\",\\\"required\\\":false,\\\"default\\\":\\\"component\\\",\\\"_meta\\\":{\\\"underlyingType\\\":\\\"text\\\"}},\\\"uom\\\":{\\\"type\\\":\\\"meta\\\",\\\"required\\\":false,\\\"default\\\":\\\"each\\\",\\\"_meta\\\":{\\\"underlyingType\\\":\\\"text\\\"}},\\\"costPerUnit\\\":{\\\"type\\\":\\\"meta\\\",\\\"required\\\":false,\\\"default\\\":0,\\\"_meta\\\":{\\\"underlyingType\\\":\\\"decimal\\\"}}},\\\"methods\\\":{\\\"withDatabase\\\":{\\\"name\\\":\\\"withDatabase\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"db\\\",\\\"type\\\":\\\"DatabaseInterface\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"operation\\\",\\\"type\\\":\\\"Function\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<T>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAiUsageSnapshot\\\":{\\\"name\\\":\\\"getAiUsageSnapshot\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"AiUsageSnapshot | undefined\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"resetAiUsage\\\":{\\\"name\\\":\\\"resetAiUsage\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"listAiUsage\\\":{\\\"name\\\":\\\"listAiUsage\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiUsageListOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<SmrtAiUsageRecord[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"summarizeAiUsage\\\":{\\\"name\\\":\\\"summarizeAiUsage\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiUsageSummaryOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Record<string, AiUsageStats>>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"destroy\\\":{\\\"name\\\":\\\"destroy\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"markAsPersisted\\\":{\\\"name\\\":\\\"markAsPersisted\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"requireInsertOnSave\\\":{\\\"name\\\":\\\"requireInsertOnSave\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"initialize\\\":{\\\"name\\\":\\\"initialize\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadDataFromDb\\\":{\\\"name\\\":\\\"loadDataFromDb\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"data\\\",\\\"type\\\":\\\"Record<string>\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getFields\\\":{\\\"name\\\":\\\"getFields\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toJSON\\\":{\\\"name\\\":\\\"toJSON\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toPlainObject\\\":{\\\"name\\\":\\\"toPlainObject\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toPublicJSON\\\":{\\\"name\\\":\\\"toPublicJSON\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"PublicJsonOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getId\\\":{\\\"name\\\":\\\"getId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSlug\\\":{\\\"name\\\":\\\"getSlug\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSavedId\\\":{\\\"name\\\":\\\"getSavedId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"isSaved\\\":{\\\"name\\\":\\\"isSaved\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"save\\\":{\\\"name\\\":\\\"save\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"classifyConstraintError\\\":{\\\"name\\\":\\\"classifyConstraintError\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"message\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"'unique' | 'not_null' | null\\\",\\\"isStatic\\\":true,\\\"isPublic\\\":true},\\\"loadFromId\\\":{\\\"name\\\":\\\"loadFromId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadFromSlug\\\":{\\\"name\\\":\\\"loadFromSlug\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"is\\\":{\\\"name\\\":\\\"is\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"criteria\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"do\\\":{\\\"name\\\":\\\"do\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"instructions\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"describe\\\":{\\\"name\\\":\\\"describe\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"delete\\\":{\\\"name\\\":\\\"delete\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"isRelatedLoaded\\\":{\\\"name\\\":\\\"isRelatedLoaded\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"boolean\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"_setLoadedRelationship\\\":{\\\"name\\\":\\\"_setLoadedRelationship\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadRelated\\\":{\\\"name\\\":\\\"loadRelated\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadRelatedMany\\\":{\\\"name\\\":\\\"loadRelatedMany\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getRelated\\\":{\\\"name\\\":\\\"getRelated\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAvailableTools\\\":{\\\"name\\\":\\\"getAvailableTools\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"AITool[]\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"executeToolCall\\\":{\\\"name\\\":\\\"executeToolCall\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"toolCall\\\",\\\"type\\\":\\\"ToolCall\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<ToolCallResult>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"remember\\\":{\\\"name\\\":\\\"remember\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"recall\\\":{\\\"name\\\":\\\"recall\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"recallAll\\\":{\\\"name\\\":\\\"recallAll\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Map<string>>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"forget\\\":{\\\"name\\\":\\\"forget\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"forgetScope\\\":{\\\"name\\\":\\\"forgetScope\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<number>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"generateEmbeddings\\\":{\\\"name\\\":\\\"generateEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"GenerateEmbeddingsOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getEmbedding\\\":{\\\"name\\\":\\\"getEmbedding\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"model\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<number[] | null>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"hasStaleEmbeddings\\\":{\\\"name\\\":\\\"hasStaleEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<boolean>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"clearEmbeddings\\\":{\\\"name\\\":\\\"clearEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSpecification\\\":{\\\"name\\\":\\\"getSpecification\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"key\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"updateSpecification\\\":{\\\"name\\\":\\\"updateSpecification\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"key\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAssets\\\":{\\\"name\\\":\\\"getAssets\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Asset[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"addAsset\\\":{\\\"name\\\":\\\"addAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"asset\\\",\\\"type\\\":\\\"Asset\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true,\\\"default\\\":\\\"attachment\\\"},{\\\"name\\\":\\\"sortOrder\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"removeAsset\\\":{\\\"name\\\":\\\"removeAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"assetId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"api\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\",\\\"create\\\",\\\"update\\\"]},\\\"mcp\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\"]},\\\"cli\\\":true,\\\"tenantScoped\\\":{\\\"mode\\\":\\\"optional\\\"},\\\"tableName\\\":\\\"products\\\",\\\"tableStrategy\\\":\\\"sti\\\"},\\\"extends\\\":\\\"Product\\\",\\\"exportName\\\":\\\"Material\\\",\\\"collectionExportName\\\":\\\"MaterialCollection\\\",\\\"validationRules\\\":[{\\\"field\\\":\\\"price\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"integer\\\"},{\\\"field\\\":\\\"inStock\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"boolean\\\"}],\\\"schema\\\":{\\\"tableName\\\":\\\"products\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"products\\\\\\\" (\\\\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 \\\\\\\"product_type\\\\\\\" TEXT,\\\\n \\\\\\\"name\\\\\\\" TEXT,\\\\n \\\\\\\"description\\\\\\\" TEXT,\\\\n \\\\\\\"category\\\\\\\" TEXT,\\\\n \\\\\\\"manufacturer\\\\\\\" TEXT,\\\\n \\\\\\\"model\\\\\\\" TEXT,\\\\n \\\\\\\"price\\\\\\\" INTEGER DEFAULT 0,\\\\n \\\\\\\"in_stock\\\\\\\" BOOLEAN DEFAULT TRUE,\\\\n \\\\\\\"specifications\\\\\\\" JSON DEFAULT '{}',\\\\n \\\\\\\"tags\\\\\\\" JSON 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},\\\"product_type\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"name\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"description\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"category\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"manufacturer\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"model\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"price\\\":{\\\"type\\\":\\\"INTEGER\\\",\\\"notNull\\\":false,\\\"default\\\":0},\\\"in_stock\\\":{\\\"type\\\":\\\"BOOLEAN\\\",\\\"notNull\\\":false,\\\"default\\\":true},\\\"specifications\\\":{\\\"type\\\":\\\"JSON\\\",\\\"notNull\\\":false,\\\"default\\\":{}},\\\"tags\\\":{\\\"type\\\":\\\"JSON\\\",\\\"notNull\\\":false,\\\"default\\\":[]}},\\\"indexes\\\":[{\\\"name\\\":\\\"products_slug_context_meta_type_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"slug\\\",\\\"context\\\",\\\"_meta_type\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"products_meta_type_idx\\\",\\\"columns\\\":[\\\"_meta_type\\\"]},{\\\"name\\\":\\\"products_tenant_id_created_at_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"created_at\\\"]}],\\\"version\\\":\\\"a7b4d592\\\"}},\\\"@happyvertical/smrt-products:Product\\\":{\\\"name\\\":\\\"product\\\",\\\"className\\\":\\\"Product\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:Product\\\",\\\"collection\\\":\\\"products\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/models/Product.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"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}}},\\\"productType\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"name\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"description\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"category\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"manufacturer\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"model\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"price\\\":{\\\"type\\\":\\\"integer\\\",\\\"required\\\":true,\\\"default\\\":0},\\\"inStock\\\":{\\\"type\\\":\\\"boolean\\\",\\\"required\\\":true,\\\"default\\\":true},\\\"specifications\\\":{\\\"type\\\":\\\"json\\\",\\\"required\\\":false,\\\"default\\\":{}},\\\"tags\\\":{\\\"type\\\":\\\"json\\\",\\\"required\\\":false,\\\"default\\\":[]}},\\\"methods\\\":{\\\"withDatabase\\\":{\\\"name\\\":\\\"withDatabase\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"db\\\",\\\"type\\\":\\\"DatabaseInterface\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"operation\\\",\\\"type\\\":\\\"Function\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<T>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAiUsageSnapshot\\\":{\\\"name\\\":\\\"getAiUsageSnapshot\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"AiUsageSnapshot | undefined\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"resetAiUsage\\\":{\\\"name\\\":\\\"resetAiUsage\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"listAiUsage\\\":{\\\"name\\\":\\\"listAiUsage\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiUsageListOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<SmrtAiUsageRecord[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"summarizeAiUsage\\\":{\\\"name\\\":\\\"summarizeAiUsage\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiUsageSummaryOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Record<string, AiUsageStats>>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"destroy\\\":{\\\"name\\\":\\\"destroy\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"markAsPersisted\\\":{\\\"name\\\":\\\"markAsPersisted\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"requireInsertOnSave\\\":{\\\"name\\\":\\\"requireInsertOnSave\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"initialize\\\":{\\\"name\\\":\\\"initialize\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadDataFromDb\\\":{\\\"name\\\":\\\"loadDataFromDb\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"data\\\",\\\"type\\\":\\\"Record<string>\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getFields\\\":{\\\"name\\\":\\\"getFields\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toJSON\\\":{\\\"name\\\":\\\"toJSON\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toPlainObject\\\":{\\\"name\\\":\\\"toPlainObject\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toPublicJSON\\\":{\\\"name\\\":\\\"toPublicJSON\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"PublicJsonOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getId\\\":{\\\"name\\\":\\\"getId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSlug\\\":{\\\"name\\\":\\\"getSlug\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSavedId\\\":{\\\"name\\\":\\\"getSavedId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"isSaved\\\":{\\\"name\\\":\\\"isSaved\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"save\\\":{\\\"name\\\":\\\"save\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"classifyConstraintError\\\":{\\\"name\\\":\\\"classifyConstraintError\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"message\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"'unique' | 'not_null' | null\\\",\\\"isStatic\\\":true,\\\"isPublic\\\":true},\\\"loadFromId\\\":{\\\"name\\\":\\\"loadFromId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadFromSlug\\\":{\\\"name\\\":\\\"loadFromSlug\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"is\\\":{\\\"name\\\":\\\"is\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"criteria\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"do\\\":{\\\"name\\\":\\\"do\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"instructions\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"describe\\\":{\\\"name\\\":\\\"describe\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"delete\\\":{\\\"name\\\":\\\"delete\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"isRelatedLoaded\\\":{\\\"name\\\":\\\"isRelatedLoaded\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"boolean\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"_setLoadedRelationship\\\":{\\\"name\\\":\\\"_setLoadedRelationship\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadRelated\\\":{\\\"name\\\":\\\"loadRelated\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadRelatedMany\\\":{\\\"name\\\":\\\"loadRelatedMany\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getRelated\\\":{\\\"name\\\":\\\"getRelated\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAvailableTools\\\":{\\\"name\\\":\\\"getAvailableTools\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"AITool[]\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"executeToolCall\\\":{\\\"name\\\":\\\"executeToolCall\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"toolCall\\\",\\\"type\\\":\\\"ToolCall\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<ToolCallResult>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"remember\\\":{\\\"name\\\":\\\"remember\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"recall\\\":{\\\"name\\\":\\\"recall\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"recallAll\\\":{\\\"name\\\":\\\"recallAll\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Map<string>>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"forget\\\":{\\\"name\\\":\\\"forget\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"forgetScope\\\":{\\\"name\\\":\\\"forgetScope\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<number>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"generateEmbeddings\\\":{\\\"name\\\":\\\"generateEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"GenerateEmbeddingsOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getEmbedding\\\":{\\\"name\\\":\\\"getEmbedding\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"model\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<number[] | null>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"hasStaleEmbeddings\\\":{\\\"name\\\":\\\"hasStaleEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<boolean>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"clearEmbeddings\\\":{\\\"name\\\":\\\"clearEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSpecification\\\":{\\\"name\\\":\\\"getSpecification\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"key\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"updateSpecification\\\":{\\\"name\\\":\\\"updateSpecification\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"key\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAssets\\\":{\\\"name\\\":\\\"getAssets\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Asset[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"addAsset\\\":{\\\"name\\\":\\\"addAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"asset\\\",\\\"type\\\":\\\"Asset\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true,\\\"default\\\":\\\"attachment\\\"},{\\\"name\\\":\\\"sortOrder\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"removeAsset\\\":{\\\"name\\\":\\\"removeAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"assetId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableStrategy\\\":\\\"sti\\\",\\\"api\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\",\\\"create\\\",\\\"update\\\"]},\\\"mcp\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\"]},\\\"cli\\\":true,\\\"tenantScoped\\\":{\\\"mode\\\":\\\"optional\\\"},\\\"conflictColumns\\\":[\\\"tenant_id\\\",\\\"slug\\\",\\\"context\\\",\\\"_meta_type\\\"]},\\\"extends\\\":\\\"SmrtObject\\\",\\\"exportName\\\":\\\"Product\\\",\\\"collectionExportName\\\":\\\"ProductCollection\\\",\\\"validationRules\\\":[{\\\"field\\\":\\\"price\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"integer\\\"},{\\\"field\\\":\\\"inStock\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"boolean\\\"}],\\\"schema\\\":{\\\"tableName\\\":\\\"products\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"products\\\\\\\" (\\\\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 \\\\\\\"product_type\\\\\\\" TEXT,\\\\n \\\\\\\"name\\\\\\\" TEXT,\\\\n \\\\\\\"description\\\\\\\" TEXT,\\\\n \\\\\\\"category\\\\\\\" TEXT,\\\\n \\\\\\\"manufacturer\\\\\\\" TEXT,\\\\n \\\\\\\"model\\\\\\\" TEXT,\\\\n \\\\\\\"price\\\\\\\" INTEGER DEFAULT 0,\\\\n \\\\\\\"in_stock\\\\\\\" BOOLEAN DEFAULT TRUE,\\\\n \\\\\\\"specifications\\\\\\\" JSON DEFAULT '{}',\\\\n \\\\\\\"tags\\\\\\\" JSON 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},\\\"product_type\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"name\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"description\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"category\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"manufacturer\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"model\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"price\\\":{\\\"type\\\":\\\"INTEGER\\\",\\\"notNull\\\":false,\\\"default\\\":0},\\\"in_stock\\\":{\\\"type\\\":\\\"BOOLEAN\\\",\\\"notNull\\\":false,\\\"default\\\":true},\\\"specifications\\\":{\\\"type\\\":\\\"JSON\\\",\\\"notNull\\\":false,\\\"default\\\":{}},\\\"tags\\\":{\\\"type\\\":\\\"JSON\\\",\\\"notNull\\\":false,\\\"default\\\":[]}},\\\"indexes\\\":[{\\\"name\\\":\\\"products_slug_context_meta_type_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"slug\\\",\\\"context\\\",\\\"_meta_type\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"products_meta_type_idx\\\",\\\"columns\\\":[\\\"_meta_type\\\"]},{\\\"name\\\":\\\"products_tenant_id_created_at_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"created_at\\\"]}],\\\"version\\\":\\\"a7b4d592\\\"}},\\\"@happyvertical/smrt-products:ProductAsset\\\":{\\\"name\\\":\\\"productasset\\\",\\\"className\\\":\\\"ProductAsset\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:ProductAsset\\\",\\\"collection\\\":\\\"productassets\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/models/ProductAsset.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"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}}},\\\"productId\\\":{\\\"type\\\":\\\"foreignKey\\\",\\\"required\\\":true,\\\"related\\\":\\\"Product\\\",\\\"_meta\\\":{\\\"required\\\":true}},\\\"assetId\\\":{\\\"type\\\":\\\"crossPackageRef\\\",\\\"required\\\":true,\\\"related\\\":\\\"@happyvertical/smrt-assets:Asset\\\"},\\\"relationship\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":true,\\\"_meta\\\":{\\\"required\\\":true}},\\\"sortOrder\\\":{\\\"type\\\":\\\"integer\\\",\\\"required\\\":true,\\\"default\\\":0}},\\\"methods\\\":{},\\\"decoratorConfig\\\":{\\\"tableName\\\":\\\"product_assets\\\",\\\"conflictColumns\\\":[\\\"product_id\\\",\\\"asset_id\\\",\\\"relationship\\\",\\\"tenant_id\\\"],\\\"api\\\":false,\\\"mcp\\\":false,\\\"cli\\\":false,\\\"tenantScoped\\\":{\\\"mode\\\":\\\"optional\\\"}},\\\"extends\\\":\\\"SmrtObject\\\",\\\"exportName\\\":\\\"ProductAsset\\\",\\\"collectionExportName\\\":\\\"ProductAssetCollection\\\",\\\"validationRules\\\":[{\\\"field\\\":\\\"productId\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"foreignKey\\\"},{\\\"field\\\":\\\"assetId\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"crossPackageRef\\\"},{\\\"field\\\":\\\"relationship\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"text\\\"},{\\\"field\\\":\\\"sortOrder\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"integer\\\"}],\\\"schema\\\":{\\\"tableName\\\":\\\"product_assets\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_assets\\\\\\\" (\\\\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 \\\\\\\"product_id\\\\\\\" UUID NOT NULL,\\\\n \\\\\\\"asset_id\\\\\\\" UUID NOT NULL,\\\\n \\\\\\\"relationship\\\\\\\" TEXT NOT NULL,\\\\n \\\\\\\"sort_order\\\\\\\" INTEGER NOT NULL 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},\\\"product_id\\\":{\\\"type\\\":\\\"UUID\\\",\\\"referenceKind\\\":\\\"foreignKey\\\",\\\"notNull\\\":true,\\\"unique\\\":false,\\\"foreignKey\\\":{\\\"table\\\":\\\"products\\\",\\\"column\\\":\\\"id\\\",\\\"onDelete\\\":\\\"CASCADE\\\",\\\"onUpdate\\\":\\\"CASCADE\\\"}},\\\"asset_id\\\":{\\\"type\\\":\\\"UUID\\\",\\\"referenceKind\\\":\\\"crossPackageRef\\\",\\\"notNull\\\":true,\\\"unique\\\":false},\\\"relationship\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":true,\\\"unique\\\":false},\\\"sort_order\\\":{\\\"type\\\":\\\"INTEGER\\\",\\\"notNull\\\":true,\\\"unique\\\":false,\\\"default\\\":0}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_assets_product_id_asset_id_idx\\\",\\\"columns\\\":[\\\"product_id\\\",\\\"asset_id\\\",\\\"relationship\\\",\\\"tenant_id\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_assets_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"]},{\\\"name\\\":\\\"product_assets_tenant_id_created_at_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"created_at\\\"]},{\\\"name\\\":\\\"product_assets_asset_id_idx\\\",\\\"columns\\\":[\\\"asset_id\\\"]}],\\\"version\\\":\\\"9d67ec65\\\"}},\\\"@happyvertical/smrt-products:ProductVariant\\\":{\\\"name\\\":\\\"productvariant\\\",\\\"className\\\":\\\"ProductVariant\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:ProductVariant\\\",\\\"collection\\\":\\\"productvariants\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/models/ProductVariant.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"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}}},\\\"productId\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":true,\\\"default\\\":\\\"\\\",\\\"_meta\\\":{\\\"required\\\":true}},\\\"axisName\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":true,\\\"default\\\":\\\"\\\",\\\"_meta\\\":{\\\"required\\\":true}},\\\"label\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false,\\\"default\\\":\\\"\\\"},\\\"allowedValues\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false,\\\"default\\\":\\\"[]\\\"},\\\"sortOrder\\\":{\\\"type\\\":\\\"integer\\\",\\\"required\\\":false,\\\"default\\\":0}},\\\"methods\\\":{\\\"getValues\\\":{\\\"name\\\":\\\"getValues\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"string[]\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"setValues\\\":{\\\"name\\\":\\\"setValues\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"string[] | string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableName\\\":\\\"product_variants\\\",\\\"conflictColumns\\\":[\\\"product_id\\\",\\\"axis_name\\\",\\\"tenant_id\\\"],\\\"api\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\",\\\"create\\\",\\\"update\\\"]},\\\"mcp\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\"]},\\\"cli\\\":true,\\\"tenantScoped\\\":{\\\"mode\\\":\\\"optional\\\"}},\\\"extends\\\":\\\"SmrtObject\\\",\\\"exportName\\\":\\\"ProductVariant\\\",\\\"collectionExportName\\\":\\\"ProductVariantCollection\\\",\\\"validationRules\\\":[{\\\"field\\\":\\\"productId\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"text\\\"},{\\\"field\\\":\\\"axisName\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"text\\\"}],\\\"schema\\\":{\\\"tableName\\\":\\\"product_variants\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_variants\\\\\\\" (\\\\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 \\\\\\\"product_id\\\\\\\" TEXT NOT NULL DEFAULT '',\\\\n \\\\\\\"axis_name\\\\\\\" TEXT NOT NULL DEFAULT '',\\\\n \\\\\\\"label\\\\\\\" TEXT DEFAULT '',\\\\n \\\\\\\"allowed_values\\\\\\\" 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\\\":\\\"\\\"},\\\"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},\\\"product_id\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":true,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"axis_name\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":true,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"label\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"allowed_values\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":\\\"[]\\\"},\\\"sort_order\\\":{\\\"type\\\":\\\"INTEGER\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":0}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_variants_product_id_axis_name_idx\\\",\\\"columns\\\":[\\\"product_id\\\",\\\"axis_name\\\",\\\"tenant_id\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_variants_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"]},{\\\"name\\\":\\\"product_variants_tenant_id_created_at_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"created_at\\\"]}],\\\"version\\\":\\\"2891ff02\\\"}},\\\"@happyvertical/smrt-products:Sku\\\":{\\\"name\\\":\\\"sku\\\",\\\"className\\\":\\\"Sku\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:Sku\\\",\\\"collection\\\":\\\"skus\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/models/Sku.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"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}}},\\\"productId\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":true,\\\"default\\\":\\\"\\\",\\\"_meta\\\":{\\\"required\\\":true}},\\\"code\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":true,\\\"default\\\":\\\"\\\",\\\"_meta\\\":{\\\"required\\\":true}},\\\"barcode\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false,\\\"default\\\":\\\"\\\"},\\\"name\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false,\\\"default\\\":\\\"\\\"},\\\"attributes\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false,\\\"default\\\":\\\"{}\\\"},\\\"weightGrams\\\":{\\\"type\\\":\\\"decimal\\\",\\\"required\\\":false,\\\"_meta\\\":{}},\\\"parentSkuId\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false,\\\"default\\\":\\\"\\\"},\\\"active\\\":{\\\"type\\\":\\\"boolean\\\",\\\"required\\\":false,\\\"default\\\":true}},\\\"methods\\\":{\\\"getAttributes\\\":{\\\"name\\\":\\\"getAttributes\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"setAttributes\\\":{\\\"name\\\":\\\"setAttributes\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"Record<string> | string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableName\\\":\\\"product_skus\\\",\\\"conflictColumns\\\":[\\\"code\\\",\\\"tenant_id\\\"],\\\"api\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\",\\\"create\\\",\\\"update\\\"]},\\\"mcp\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\"]},\\\"cli\\\":true,\\\"tenantScoped\\\":{\\\"mode\\\":\\\"optional\\\"}},\\\"extends\\\":\\\"SmrtObject\\\",\\\"exportName\\\":\\\"Sku\\\",\\\"collectionExportName\\\":\\\"SkuCollection\\\",\\\"validationRules\\\":[{\\\"field\\\":\\\"productId\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"text\\\"},{\\\"field\\\":\\\"code\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"text\\\"}],\\\"schema\\\":{\\\"tableName\\\":\\\"product_skus\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_skus\\\\\\\" (\\\\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 \\\\\\\"product_id\\\\\\\" TEXT NOT NULL DEFAULT '',\\\\n \\\\\\\"code\\\\\\\" TEXT NOT NULL DEFAULT '',\\\\n \\\\\\\"barcode\\\\\\\" TEXT DEFAULT '',\\\\n \\\\\\\"name\\\\\\\" TEXT DEFAULT '',\\\\n \\\\\\\"attributes\\\\\\\" TEXT DEFAULT '{}',\\\\n \\\\\\\"weight_grams\\\\\\\" REAL,\\\\n \\\\\\\"parent_sku_id\\\\\\\" TEXT DEFAULT '',\\\\n \\\\\\\"active\\\\\\\" BOOLEAN DEFAULT TRUE\\\\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},\\\"product_id\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":true,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"code\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":true,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"barcode\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"name\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"attributes\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":\\\"{}\\\"},\\\"weight_grams\\\":{\\\"type\\\":\\\"REAL\\\",\\\"notNull\\\":false,\\\"unique\\\":false},\\\"parent_sku_id\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"active\\\":{\\\"type\\\":\\\"BOOLEAN\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":true}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_skus_code_tenant_id_idx\\\",\\\"columns\\\":[\\\"code\\\",\\\"tenant_id\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_skus_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"]},{\\\"name\\\":\\\"product_skus_tenant_id_created_at_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"created_at\\\"]}],\\\"version\\\":\\\"89d5a311\\\"}}},\\\"moduleType\\\":\\\"smrt\\\",\\\"smrtDependencies\\\":[\\\"@happyvertical/smrt-assets\\\",\\\"@happyvertical/smrt-core\\\",\\\"@happyvertical/smrt-tenancy\\\"]}\"));\n"],"mappings":";;AAOA,eAAe,wBAAwB,KAAK,MAAM,69iEAA69iE,CAAC"}
|
|
1
|
+
{"version":3,"file":"__smrt-register__-bLWySlR6.js","names":[],"sources":["../../../src/__smrt-register__.ts"],"sourcesContent":["// Generated by @happyvertical/smrt-core smrtPlugin at library build time.\n// The package manifest is inlined so self-registration cannot miss when a\n// downstream bundler relocates this module away from dist/manifest.json\n// (https://github.com/happyvertical/smrt/issues/1506,\n// https://github.com/happyvertical/smrt/issues/1507).\nimport { ObjectRegistry } from '@happyvertical/smrt-core';\n\nObjectRegistry.registerPackageManifest(JSON.parse(\"{\\\"version\\\":\\\"1.0.0\\\",\\\"timestamp\\\":0,\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"packageVersion\\\":\\\"0.43.4\\\",\\\"objects\\\":{\\\"@happyvertical/smrt-products:CategoryCollection\\\":{\\\"name\\\":\\\"categorycollection\\\",\\\"className\\\":\\\"CategoryCollection\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:CategoryCollection\\\",\\\"collection\\\":\\\"categories\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/collections/CategoryCollection.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"fields\\\":{},\\\"methods\\\":{\\\"getRootCategories\\\":{\\\"name\\\":\\\"getRootCategories\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<Category[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{},\\\"extends\\\":\\\"SmrtCollection\\\",\\\"extendsTypeArg\\\":\\\"Category\\\",\\\"exportName\\\":\\\"CategoryCollection\\\",\\\"collectionExportName\\\":\\\"CategoryCollectionCollection\\\",\\\"schema\\\":{\\\"tableName\\\":\\\"category_collections\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"category_collections\\\\\\\" (\\\\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);\\\",\\\"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\\\"}},\\\"indexes\\\":[{\\\"name\\\":\\\"category_collections_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"category_collections_created_at_idx\\\",\\\"columns\\\":[\\\"created_at\\\"]}],\\\"version\\\":\\\"f2f42d47\\\"}},\\\"@happyvertical/smrt-products:MaterialCollection\\\":{\\\"name\\\":\\\"materialcollection\\\",\\\"className\\\":\\\"MaterialCollection\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:MaterialCollection\\\",\\\"collection\\\":\\\"products\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/collections/MaterialCollection.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"fields\\\":{},\\\"methods\\\":{\\\"findByKind\\\":{\\\"name\\\":\\\"findByKind\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"materialKind\\\",\\\"type\\\":\\\"MaterialKind\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<Material[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableName\\\":\\\"products\\\"},\\\"extends\\\":\\\"ProductCollection\\\",\\\"exportName\\\":\\\"MaterialCollection\\\",\\\"collectionExportName\\\":\\\"MaterialCollectionCollection\\\",\\\"schema\\\":{\\\"tableName\\\":\\\"products\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"products\\\\\\\" (\\\\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);\\\",\\\"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\\\"}},\\\"indexes\\\":[{\\\"name\\\":\\\"products_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"products_created_at_idx\\\",\\\"columns\\\":[\\\"created_at\\\"]}],\\\"version\\\":\\\"d7d2c125\\\"}},\\\"@happyvertical/smrt-products:ProductAssetCollection\\\":{\\\"name\\\":\\\"productassetcollection\\\",\\\"className\\\":\\\"ProductAssetCollection\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:ProductAssetCollection\\\",\\\"collection\\\":\\\"productassets\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/collections/ProductAssetCollection.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"fields\\\":{},\\\"methods\\\":{\\\"byLeft\\\":{\\\"name\\\":\\\"byLeft\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"leftId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"JunctionFilterOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<TItem[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"byRight\\\":{\\\"name\\\":\\\"byRight\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"rightId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"JunctionFilterOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<TItem[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"attach\\\":{\\\"name\\\":\\\"attach\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"leftId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"rightId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"JunctionAttachOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<TItem>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"detach\\\":{\\\"name\\\":\\\"detach\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"leftId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"rightId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"JunctionFilterOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"setLinks\\\":{\\\"name\\\":\\\"setLinks\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"leftId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"rightIds\\\",\\\"type\\\":\\\"string[]\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"JunctionAttachOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAssets\\\":{\\\"name\\\":\\\"getAssets\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Asset[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"addAsset\\\":{\\\"name\\\":\\\"addAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"asset\\\",\\\"type\\\":\\\"Asset\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true,\\\"default\\\":\\\"attachment\\\"},{\\\"name\\\":\\\"sortOrder\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"removeAsset\\\":{\\\"name\\\":\\\"removeAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"assetId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"api\\\":false,\\\"mcp\\\":false,\\\"cli\\\":false,\\\"tableName\\\":\\\"product_assets\\\"},\\\"extends\\\":\\\"SmrtJunction\\\",\\\"extendsTypeArg\\\":\\\"ProductAsset\\\",\\\"exportName\\\":\\\"ProductAssetCollection\\\",\\\"collectionExportName\\\":\\\"ProductAssetCollectionCollection\\\",\\\"schema\\\":{\\\"tableName\\\":\\\"product_assets\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_assets\\\\\\\" (\\\\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);\\\",\\\"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\\\"}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_assets_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_assets_created_at_idx\\\",\\\"columns\\\":[\\\"created_at\\\"]}],\\\"version\\\":\\\"ffb1b593\\\"}},\\\"@happyvertical/smrt-products:ProductCollection\\\":{\\\"name\\\":\\\"productcollection\\\",\\\"className\\\":\\\"ProductCollection\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:ProductCollection\\\",\\\"collection\\\":\\\"products\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/collections/ProductCollection.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"fields\\\":{},\\\"methods\\\":{\\\"findByManufacturer\\\":{\\\"name\\\":\\\"findByManufacturer\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"manufacturer\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<Product[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"findInStock\\\":{\\\"name\\\":\\\"findInStock\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<Product[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAssets\\\":{\\\"name\\\":\\\"getAssets\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Asset[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"addAsset\\\":{\\\"name\\\":\\\"addAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"asset\\\",\\\"type\\\":\\\"Asset\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true,\\\"default\\\":\\\"attachment\\\"},{\\\"name\\\":\\\"sortOrder\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"removeAsset\\\":{\\\"name\\\":\\\"removeAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"assetId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{},\\\"extends\\\":\\\"SmrtCollection\\\",\\\"extendsTypeArg\\\":\\\"Product\\\",\\\"exportName\\\":\\\"ProductCollection\\\",\\\"collectionExportName\\\":\\\"ProductCollectionCollection\\\",\\\"schema\\\":{\\\"tableName\\\":\\\"product_collections\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_collections\\\\\\\" (\\\\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);\\\",\\\"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\\\"}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_collections_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_collections_created_at_idx\\\",\\\"columns\\\":[\\\"created_at\\\"]}],\\\"version\\\":\\\"51a90ef1\\\"}},\\\"@happyvertical/smrt-products:ProductVariantCollection\\\":{\\\"name\\\":\\\"productvariantcollection\\\",\\\"className\\\":\\\"ProductVariantCollection\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:ProductVariantCollection\\\",\\\"collection\\\":\\\"productvariants\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/collections/ProductVariantCollection.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"fields\\\":{},\\\"methods\\\":{\\\"findForProduct\\\":{\\\"name\\\":\\\"findForProduct\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<ProductVariant[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"findAxis\\\":{\\\"name\\\":\\\"findAxis\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"axisName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<ProductVariant | null>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableName\\\":\\\"product_variants\\\"},\\\"extends\\\":\\\"SmrtCollection\\\",\\\"extendsTypeArg\\\":\\\"ProductVariant\\\",\\\"exportName\\\":\\\"ProductVariantCollection\\\",\\\"collectionExportName\\\":\\\"ProductVariantCollectionCollection\\\",\\\"schema\\\":{\\\"tableName\\\":\\\"product_variants\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_variants\\\\\\\" (\\\\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);\\\",\\\"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\\\"}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_variants_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_variants_created_at_idx\\\",\\\"columns\\\":[\\\"created_at\\\"]}],\\\"version\\\":\\\"7e192164\\\"}},\\\"@happyvertical/smrt-products:SkuCollection\\\":{\\\"name\\\":\\\"skucollection\\\",\\\"className\\\":\\\"SkuCollection\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:SkuCollection\\\",\\\"collection\\\":\\\"skus\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/collections/SkuCollection.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"fields\\\":{},\\\"methods\\\":{\\\"findByCode\\\":{\\\"name\\\":\\\"findByCode\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"code\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<Sku | null>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"findByBarcode\\\":{\\\"name\\\":\\\"findByBarcode\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"barcode\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<Sku | null>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"findByProduct\\\":{\\\"name\\\":\\\"findByProduct\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<Sku[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"findByParent\\\":{\\\"name\\\":\\\"findByParent\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"parentSkuId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<Sku[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"findActive\\\":{\\\"name\\\":\\\"findActive\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"productId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Sku[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableName\\\":\\\"product_skus\\\"},\\\"extends\\\":\\\"SmrtCollection\\\",\\\"extendsTypeArg\\\":\\\"Sku\\\",\\\"exportName\\\":\\\"SkuCollection\\\",\\\"collectionExportName\\\":\\\"SkuCollectionCollection\\\",\\\"schema\\\":{\\\"tableName\\\":\\\"product_skus\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_skus\\\\\\\" (\\\\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);\\\",\\\"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\\\"}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_skus_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_skus_created_at_idx\\\",\\\"columns\\\":[\\\"created_at\\\"]}],\\\"version\\\":\\\"f3e8dedc\\\"}},\\\"@happyvertical/smrt-products:Category\\\":{\\\"name\\\":\\\"category\\\",\\\"className\\\":\\\"Category\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:Category\\\",\\\"collection\\\":\\\"categories\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/models/Category.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"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}}},\\\"name\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"description\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"parentId\\\":{\\\"type\\\":\\\"foreignKey\\\",\\\"required\\\":false,\\\"related\\\":\\\"Category\\\"},\\\"level\\\":{\\\"type\\\":\\\"integer\\\",\\\"required\\\":true,\\\"default\\\":0},\\\"productCount\\\":{\\\"type\\\":\\\"integer\\\",\\\"required\\\":true,\\\"default\\\":0},\\\"active\\\":{\\\"type\\\":\\\"boolean\\\",\\\"required\\\":true,\\\"default\\\":true}},\\\"methods\\\":{\\\"withDatabase\\\":{\\\"name\\\":\\\"withDatabase\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"db\\\",\\\"type\\\":\\\"DatabaseInterface\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"operation\\\",\\\"type\\\":\\\"Function\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<T>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAiUsageSnapshot\\\":{\\\"name\\\":\\\"getAiUsageSnapshot\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"AiUsageSnapshot | undefined\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"resetAiUsage\\\":{\\\"name\\\":\\\"resetAiUsage\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"listAiUsage\\\":{\\\"name\\\":\\\"listAiUsage\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiUsageListOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<SmrtAiUsageRecord[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"summarizeAiUsage\\\":{\\\"name\\\":\\\"summarizeAiUsage\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiUsageSummaryOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Record<string, AiUsageStats>>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"destroy\\\":{\\\"name\\\":\\\"destroy\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"markAsPersisted\\\":{\\\"name\\\":\\\"markAsPersisted\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"requireInsertOnSave\\\":{\\\"name\\\":\\\"requireInsertOnSave\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"initialize\\\":{\\\"name\\\":\\\"initialize\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadDataFromDb\\\":{\\\"name\\\":\\\"loadDataFromDb\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"data\\\",\\\"type\\\":\\\"Record<string>\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getFields\\\":{\\\"name\\\":\\\"getFields\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toJSON\\\":{\\\"name\\\":\\\"toJSON\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toPlainObject\\\":{\\\"name\\\":\\\"toPlainObject\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toPublicJSON\\\":{\\\"name\\\":\\\"toPublicJSON\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"PublicJsonOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getId\\\":{\\\"name\\\":\\\"getId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSlug\\\":{\\\"name\\\":\\\"getSlug\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSavedId\\\":{\\\"name\\\":\\\"getSavedId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"isSaved\\\":{\\\"name\\\":\\\"isSaved\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"save\\\":{\\\"name\\\":\\\"save\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"classifyConstraintError\\\":{\\\"name\\\":\\\"classifyConstraintError\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"message\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"'unique' | 'not_null' | null\\\",\\\"isStatic\\\":true,\\\"isPublic\\\":true},\\\"loadFromId\\\":{\\\"name\\\":\\\"loadFromId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadFromSlug\\\":{\\\"name\\\":\\\"loadFromSlug\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"is\\\":{\\\"name\\\":\\\"is\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"criteria\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"do\\\":{\\\"name\\\":\\\"do\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"instructions\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"describe\\\":{\\\"name\\\":\\\"describe\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"delete\\\":{\\\"name\\\":\\\"delete\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"isRelatedLoaded\\\":{\\\"name\\\":\\\"isRelatedLoaded\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"boolean\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"_setLoadedRelationship\\\":{\\\"name\\\":\\\"_setLoadedRelationship\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadRelated\\\":{\\\"name\\\":\\\"loadRelated\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadRelatedMany\\\":{\\\"name\\\":\\\"loadRelatedMany\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getRelated\\\":{\\\"name\\\":\\\"getRelated\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAvailableTools\\\":{\\\"name\\\":\\\"getAvailableTools\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"AITool[]\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"executeToolCall\\\":{\\\"name\\\":\\\"executeToolCall\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"toolCall\\\",\\\"type\\\":\\\"ToolCall\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<ToolCallResult>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"remember\\\":{\\\"name\\\":\\\"remember\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"recall\\\":{\\\"name\\\":\\\"recall\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"recallAll\\\":{\\\"name\\\":\\\"recallAll\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Map<string>>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"forget\\\":{\\\"name\\\":\\\"forget\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"forgetScope\\\":{\\\"name\\\":\\\"forgetScope\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<number>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"generateEmbeddings\\\":{\\\"name\\\":\\\"generateEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"GenerateEmbeddingsOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getEmbedding\\\":{\\\"name\\\":\\\"getEmbedding\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"model\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<number[] | null>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"hasStaleEmbeddings\\\":{\\\"name\\\":\\\"hasStaleEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<boolean>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"clearEmbeddings\\\":{\\\"name\\\":\\\"clearEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableStrategy\\\":\\\"sti\\\",\\\"api\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\",\\\"create\\\",\\\"update\\\"]},\\\"mcp\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\"]},\\\"cli\\\":true,\\\"tenantScoped\\\":{\\\"mode\\\":\\\"optional\\\"},\\\"conflictColumns\\\":[\\\"tenant_id\\\",\\\"slug\\\",\\\"context\\\",\\\"_meta_type\\\"]},\\\"extends\\\":\\\"SmrtObject\\\",\\\"exportName\\\":\\\"Category\\\",\\\"collectionExportName\\\":\\\"CategoryCollection\\\",\\\"validationRules\\\":[{\\\"field\\\":\\\"level\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"integer\\\"},{\\\"field\\\":\\\"productCount\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"integer\\\"},{\\\"field\\\":\\\"active\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"boolean\\\"}],\\\"schema\\\":{\\\"tableName\\\":\\\"categories\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"categories\\\\\\\" (\\\\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 \\\\\\\"name\\\\\\\" TEXT,\\\\n \\\\\\\"description\\\\\\\" TEXT,\\\\n \\\\\\\"parent_id\\\\\\\" UUID,\\\\n \\\\\\\"level\\\\\\\" INTEGER DEFAULT 0,\\\\n \\\\\\\"product_count\\\\\\\" INTEGER DEFAULT 0,\\\\n \\\\\\\"active\\\\\\\" BOOLEAN DEFAULT TRUE\\\\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},\\\"name\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"description\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"parent_id\\\":{\\\"type\\\":\\\"UUID\\\",\\\"referenceKind\\\":\\\"foreignKey\\\",\\\"notNull\\\":false,\\\"foreignKey\\\":{\\\"table\\\":\\\"categories\\\",\\\"column\\\":\\\"id\\\",\\\"onDelete\\\":\\\"NO ACTION\\\",\\\"onUpdate\\\":\\\"CASCADE\\\"}},\\\"level\\\":{\\\"type\\\":\\\"INTEGER\\\",\\\"notNull\\\":false,\\\"default\\\":0},\\\"product_count\\\":{\\\"type\\\":\\\"INTEGER\\\",\\\"notNull\\\":false,\\\"default\\\":0},\\\"active\\\":{\\\"type\\\":\\\"BOOLEAN\\\",\\\"notNull\\\":false,\\\"default\\\":true}},\\\"indexes\\\":[{\\\"name\\\":\\\"categories_slug_context_meta_type_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"slug\\\",\\\"context\\\",\\\"_meta_type\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"categories_meta_type_idx\\\",\\\"columns\\\":[\\\"_meta_type\\\"]},{\\\"name\\\":\\\"categories_tenant_id_created_at_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"created_at\\\"]},{\\\"name\\\":\\\"categories_parent_id_idx\\\",\\\"columns\\\":[\\\"parent_id\\\"]}],\\\"version\\\":\\\"78838be9\\\"}},\\\"@happyvertical/smrt-products:Material\\\":{\\\"name\\\":\\\"material\\\",\\\"className\\\":\\\"Material\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:Material\\\",\\\"collection\\\":\\\"products\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/models/Material.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"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}}},\\\"productType\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"name\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"description\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"category\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"manufacturer\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"model\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"price\\\":{\\\"type\\\":\\\"integer\\\",\\\"required\\\":true,\\\"default\\\":0},\\\"inStock\\\":{\\\"type\\\":\\\"boolean\\\",\\\"required\\\":true,\\\"default\\\":true},\\\"specifications\\\":{\\\"type\\\":\\\"json\\\",\\\"required\\\":false,\\\"default\\\":{}},\\\"tags\\\":{\\\"type\\\":\\\"json\\\",\\\"required\\\":false,\\\"default\\\":[]},\\\"materialKind\\\":{\\\"type\\\":\\\"meta\\\",\\\"required\\\":false,\\\"default\\\":\\\"component\\\",\\\"_meta\\\":{\\\"underlyingType\\\":\\\"text\\\"}},\\\"uom\\\":{\\\"type\\\":\\\"meta\\\",\\\"required\\\":false,\\\"default\\\":\\\"each\\\",\\\"_meta\\\":{\\\"underlyingType\\\":\\\"text\\\"}},\\\"costPerUnit\\\":{\\\"type\\\":\\\"meta\\\",\\\"required\\\":false,\\\"default\\\":0,\\\"_meta\\\":{\\\"underlyingType\\\":\\\"decimal\\\"}}},\\\"methods\\\":{\\\"withDatabase\\\":{\\\"name\\\":\\\"withDatabase\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"db\\\",\\\"type\\\":\\\"DatabaseInterface\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"operation\\\",\\\"type\\\":\\\"Function\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<T>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAiUsageSnapshot\\\":{\\\"name\\\":\\\"getAiUsageSnapshot\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"AiUsageSnapshot | undefined\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"resetAiUsage\\\":{\\\"name\\\":\\\"resetAiUsage\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"listAiUsage\\\":{\\\"name\\\":\\\"listAiUsage\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiUsageListOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<SmrtAiUsageRecord[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"summarizeAiUsage\\\":{\\\"name\\\":\\\"summarizeAiUsage\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiUsageSummaryOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Record<string, AiUsageStats>>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"destroy\\\":{\\\"name\\\":\\\"destroy\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"markAsPersisted\\\":{\\\"name\\\":\\\"markAsPersisted\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"requireInsertOnSave\\\":{\\\"name\\\":\\\"requireInsertOnSave\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"initialize\\\":{\\\"name\\\":\\\"initialize\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadDataFromDb\\\":{\\\"name\\\":\\\"loadDataFromDb\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"data\\\",\\\"type\\\":\\\"Record<string>\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getFields\\\":{\\\"name\\\":\\\"getFields\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toJSON\\\":{\\\"name\\\":\\\"toJSON\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toPlainObject\\\":{\\\"name\\\":\\\"toPlainObject\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toPublicJSON\\\":{\\\"name\\\":\\\"toPublicJSON\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"PublicJsonOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getId\\\":{\\\"name\\\":\\\"getId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSlug\\\":{\\\"name\\\":\\\"getSlug\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSavedId\\\":{\\\"name\\\":\\\"getSavedId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"isSaved\\\":{\\\"name\\\":\\\"isSaved\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"save\\\":{\\\"name\\\":\\\"save\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"classifyConstraintError\\\":{\\\"name\\\":\\\"classifyConstraintError\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"message\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"'unique' | 'not_null' | null\\\",\\\"isStatic\\\":true,\\\"isPublic\\\":true},\\\"loadFromId\\\":{\\\"name\\\":\\\"loadFromId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadFromSlug\\\":{\\\"name\\\":\\\"loadFromSlug\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"is\\\":{\\\"name\\\":\\\"is\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"criteria\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"do\\\":{\\\"name\\\":\\\"do\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"instructions\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"describe\\\":{\\\"name\\\":\\\"describe\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"delete\\\":{\\\"name\\\":\\\"delete\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"isRelatedLoaded\\\":{\\\"name\\\":\\\"isRelatedLoaded\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"boolean\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"_setLoadedRelationship\\\":{\\\"name\\\":\\\"_setLoadedRelationship\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadRelated\\\":{\\\"name\\\":\\\"loadRelated\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadRelatedMany\\\":{\\\"name\\\":\\\"loadRelatedMany\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getRelated\\\":{\\\"name\\\":\\\"getRelated\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAvailableTools\\\":{\\\"name\\\":\\\"getAvailableTools\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"AITool[]\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"executeToolCall\\\":{\\\"name\\\":\\\"executeToolCall\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"toolCall\\\",\\\"type\\\":\\\"ToolCall\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<ToolCallResult>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"remember\\\":{\\\"name\\\":\\\"remember\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"recall\\\":{\\\"name\\\":\\\"recall\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"recallAll\\\":{\\\"name\\\":\\\"recallAll\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Map<string>>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"forget\\\":{\\\"name\\\":\\\"forget\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"forgetScope\\\":{\\\"name\\\":\\\"forgetScope\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<number>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"generateEmbeddings\\\":{\\\"name\\\":\\\"generateEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"GenerateEmbeddingsOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getEmbedding\\\":{\\\"name\\\":\\\"getEmbedding\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"model\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<number[] | null>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"hasStaleEmbeddings\\\":{\\\"name\\\":\\\"hasStaleEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<boolean>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"clearEmbeddings\\\":{\\\"name\\\":\\\"clearEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSpecification\\\":{\\\"name\\\":\\\"getSpecification\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"key\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"updateSpecification\\\":{\\\"name\\\":\\\"updateSpecification\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"key\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAssets\\\":{\\\"name\\\":\\\"getAssets\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Asset[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"addAsset\\\":{\\\"name\\\":\\\"addAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"asset\\\",\\\"type\\\":\\\"Asset\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true,\\\"default\\\":\\\"attachment\\\"},{\\\"name\\\":\\\"sortOrder\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"removeAsset\\\":{\\\"name\\\":\\\"removeAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"assetId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"api\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\",\\\"create\\\",\\\"update\\\"]},\\\"mcp\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\"]},\\\"cli\\\":true,\\\"tenantScoped\\\":{\\\"mode\\\":\\\"optional\\\"},\\\"tableName\\\":\\\"products\\\",\\\"tableStrategy\\\":\\\"sti\\\"},\\\"extends\\\":\\\"Product\\\",\\\"exportName\\\":\\\"Material\\\",\\\"collectionExportName\\\":\\\"MaterialCollection\\\",\\\"validationRules\\\":[{\\\"field\\\":\\\"price\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"integer\\\"},{\\\"field\\\":\\\"inStock\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"boolean\\\"}],\\\"schema\\\":{\\\"tableName\\\":\\\"products\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"products\\\\\\\" (\\\\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 \\\\\\\"product_type\\\\\\\" TEXT,\\\\n \\\\\\\"name\\\\\\\" TEXT,\\\\n \\\\\\\"description\\\\\\\" TEXT,\\\\n \\\\\\\"category\\\\\\\" TEXT,\\\\n \\\\\\\"manufacturer\\\\\\\" TEXT,\\\\n \\\\\\\"model\\\\\\\" TEXT,\\\\n \\\\\\\"price\\\\\\\" INTEGER DEFAULT 0,\\\\n \\\\\\\"in_stock\\\\\\\" BOOLEAN DEFAULT TRUE,\\\\n \\\\\\\"specifications\\\\\\\" JSON DEFAULT '{}',\\\\n \\\\\\\"tags\\\\\\\" JSON 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},\\\"product_type\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"name\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"description\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"category\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"manufacturer\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"model\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"price\\\":{\\\"type\\\":\\\"INTEGER\\\",\\\"notNull\\\":false,\\\"default\\\":0},\\\"in_stock\\\":{\\\"type\\\":\\\"BOOLEAN\\\",\\\"notNull\\\":false,\\\"default\\\":true},\\\"specifications\\\":{\\\"type\\\":\\\"JSON\\\",\\\"notNull\\\":false,\\\"default\\\":{}},\\\"tags\\\":{\\\"type\\\":\\\"JSON\\\",\\\"notNull\\\":false,\\\"default\\\":[]}},\\\"indexes\\\":[{\\\"name\\\":\\\"products_slug_context_meta_type_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"slug\\\",\\\"context\\\",\\\"_meta_type\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"products_meta_type_idx\\\",\\\"columns\\\":[\\\"_meta_type\\\"]},{\\\"name\\\":\\\"products_tenant_id_created_at_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"created_at\\\"]}],\\\"version\\\":\\\"a7b4d592\\\"}},\\\"@happyvertical/smrt-products:Product\\\":{\\\"name\\\":\\\"product\\\",\\\"className\\\":\\\"Product\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:Product\\\",\\\"collection\\\":\\\"products\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/models/Product.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"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}}},\\\"productType\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"name\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"description\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"category\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"manufacturer\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"model\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false},\\\"price\\\":{\\\"type\\\":\\\"integer\\\",\\\"required\\\":true,\\\"default\\\":0},\\\"inStock\\\":{\\\"type\\\":\\\"boolean\\\",\\\"required\\\":true,\\\"default\\\":true},\\\"specifications\\\":{\\\"type\\\":\\\"json\\\",\\\"required\\\":false,\\\"default\\\":{}},\\\"tags\\\":{\\\"type\\\":\\\"json\\\",\\\"required\\\":false,\\\"default\\\":[]}},\\\"methods\\\":{\\\"withDatabase\\\":{\\\"name\\\":\\\"withDatabase\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"db\\\",\\\"type\\\":\\\"DatabaseInterface\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"operation\\\",\\\"type\\\":\\\"Function\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<T>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAiUsageSnapshot\\\":{\\\"name\\\":\\\"getAiUsageSnapshot\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"AiUsageSnapshot | undefined\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"resetAiUsage\\\":{\\\"name\\\":\\\"resetAiUsage\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"listAiUsage\\\":{\\\"name\\\":\\\"listAiUsage\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiUsageListOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<SmrtAiUsageRecord[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"summarizeAiUsage\\\":{\\\"name\\\":\\\"summarizeAiUsage\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiUsageSummaryOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Record<string, AiUsageStats>>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"destroy\\\":{\\\"name\\\":\\\"destroy\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"markAsPersisted\\\":{\\\"name\\\":\\\"markAsPersisted\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"requireInsertOnSave\\\":{\\\"name\\\":\\\"requireInsertOnSave\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"initialize\\\":{\\\"name\\\":\\\"initialize\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadDataFromDb\\\":{\\\"name\\\":\\\"loadDataFromDb\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"data\\\",\\\"type\\\":\\\"Record<string>\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getFields\\\":{\\\"name\\\":\\\"getFields\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toJSON\\\":{\\\"name\\\":\\\"toJSON\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toPlainObject\\\":{\\\"name\\\":\\\"toPlainObject\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"toPublicJSON\\\":{\\\"name\\\":\\\"toPublicJSON\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"PublicJsonOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getId\\\":{\\\"name\\\":\\\"getId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSlug\\\":{\\\"name\\\":\\\"getSlug\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSavedId\\\":{\\\"name\\\":\\\"getSavedId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"isSaved\\\":{\\\"name\\\":\\\"isSaved\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"save\\\":{\\\"name\\\":\\\"save\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"classifyConstraintError\\\":{\\\"name\\\":\\\"classifyConstraintError\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"message\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"'unique' | 'not_null' | null\\\",\\\"isStatic\\\":true,\\\"isPublic\\\":true},\\\"loadFromId\\\":{\\\"name\\\":\\\"loadFromId\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadFromSlug\\\":{\\\"name\\\":\\\"loadFromSlug\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"is\\\":{\\\"name\\\":\\\"is\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"criteria\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"do\\\":{\\\"name\\\":\\\"do\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"instructions\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"describe\\\":{\\\"name\\\":\\\"describe\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"AiOperationOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"any\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"delete\\\":{\\\"name\\\":\\\"delete\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"isRelatedLoaded\\\":{\\\"name\\\":\\\"isRelatedLoaded\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"boolean\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"_setLoadedRelationship\\\":{\\\"name\\\":\\\"_setLoadedRelationship\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadRelated\\\":{\\\"name\\\":\\\"loadRelated\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"loadRelatedMany\\\":{\\\"name\\\":\\\"loadRelatedMany\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getRelated\\\":{\\\"name\\\":\\\"getRelated\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"opts\\\",\\\"type\\\":\\\"LoadRelatedOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<any>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAvailableTools\\\":{\\\"name\\\":\\\"getAvailableTools\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"AITool[]\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"executeToolCall\\\":{\\\"name\\\":\\\"executeToolCall\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"toolCall\\\",\\\"type\\\":\\\"ToolCall\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<ToolCallResult>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"remember\\\":{\\\"name\\\":\\\"remember\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"recall\\\":{\\\"name\\\":\\\"recall\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"recallAll\\\":{\\\"name\\\":\\\"recallAll\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Map<string>>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"forget\\\":{\\\"name\\\":\\\"forget\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"forgetScope\\\":{\\\"name\\\":\\\"forgetScope\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"object\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<number>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"generateEmbeddings\\\":{\\\"name\\\":\\\"generateEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"options\\\",\\\"type\\\":\\\"GenerateEmbeddingsOptions\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getEmbedding\\\":{\\\"name\\\":\\\"getEmbedding\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"fieldName\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"model\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<number[] | null>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"hasStaleEmbeddings\\\":{\\\"name\\\":\\\"hasStaleEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<boolean>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"clearEmbeddings\\\":{\\\"name\\\":\\\"clearEmbeddings\\\",\\\"async\\\":true,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getSpecification\\\":{\\\"name\\\":\\\"getSpecification\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"key\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"updateSpecification\\\":{\\\"name\\\":\\\"updateSpecification\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"key\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"getAssets\\\":{\\\"name\\\":\\\"getAssets\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<Asset[]>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"addAsset\\\":{\\\"name\\\":\\\"addAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"asset\\\",\\\"type\\\":\\\"Asset\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true,\\\"default\\\":\\\"attachment\\\"},{\\\"name\\\":\\\"sortOrder\\\",\\\"type\\\":\\\"any\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"removeAsset\\\":{\\\"name\\\":\\\"removeAsset\\\",\\\"async\\\":true,\\\"parameters\\\":[{\\\"name\\\":\\\"assetId\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"relationship\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":true}],\\\"returnType\\\":\\\"Promise<void>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableStrategy\\\":\\\"sti\\\",\\\"api\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\",\\\"create\\\",\\\"update\\\"]},\\\"mcp\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\"]},\\\"cli\\\":true,\\\"tenantScoped\\\":{\\\"mode\\\":\\\"optional\\\"},\\\"conflictColumns\\\":[\\\"tenant_id\\\",\\\"slug\\\",\\\"context\\\",\\\"_meta_type\\\"]},\\\"extends\\\":\\\"SmrtObject\\\",\\\"exportName\\\":\\\"Product\\\",\\\"collectionExportName\\\":\\\"ProductCollection\\\",\\\"validationRules\\\":[{\\\"field\\\":\\\"price\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"integer\\\"},{\\\"field\\\":\\\"inStock\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"boolean\\\"}],\\\"schema\\\":{\\\"tableName\\\":\\\"products\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"products\\\\\\\" (\\\\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 \\\\\\\"product_type\\\\\\\" TEXT,\\\\n \\\\\\\"name\\\\\\\" TEXT,\\\\n \\\\\\\"description\\\\\\\" TEXT,\\\\n \\\\\\\"category\\\\\\\" TEXT,\\\\n \\\\\\\"manufacturer\\\\\\\" TEXT,\\\\n \\\\\\\"model\\\\\\\" TEXT,\\\\n \\\\\\\"price\\\\\\\" INTEGER DEFAULT 0,\\\\n \\\\\\\"in_stock\\\\\\\" BOOLEAN DEFAULT TRUE,\\\\n \\\\\\\"specifications\\\\\\\" JSON DEFAULT '{}',\\\\n \\\\\\\"tags\\\\\\\" JSON 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},\\\"product_type\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"name\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"description\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"category\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"manufacturer\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"model\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false},\\\"price\\\":{\\\"type\\\":\\\"INTEGER\\\",\\\"notNull\\\":false,\\\"default\\\":0},\\\"in_stock\\\":{\\\"type\\\":\\\"BOOLEAN\\\",\\\"notNull\\\":false,\\\"default\\\":true},\\\"specifications\\\":{\\\"type\\\":\\\"JSON\\\",\\\"notNull\\\":false,\\\"default\\\":{}},\\\"tags\\\":{\\\"type\\\":\\\"JSON\\\",\\\"notNull\\\":false,\\\"default\\\":[]}},\\\"indexes\\\":[{\\\"name\\\":\\\"products_slug_context_meta_type_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"slug\\\",\\\"context\\\",\\\"_meta_type\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"products_meta_type_idx\\\",\\\"columns\\\":[\\\"_meta_type\\\"]},{\\\"name\\\":\\\"products_tenant_id_created_at_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"created_at\\\"]}],\\\"version\\\":\\\"a7b4d592\\\"}},\\\"@happyvertical/smrt-products:ProductAsset\\\":{\\\"name\\\":\\\"productasset\\\",\\\"className\\\":\\\"ProductAsset\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:ProductAsset\\\",\\\"collection\\\":\\\"productassets\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/models/ProductAsset.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"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}}},\\\"productId\\\":{\\\"type\\\":\\\"foreignKey\\\",\\\"required\\\":true,\\\"related\\\":\\\"Product\\\",\\\"_meta\\\":{\\\"required\\\":true}},\\\"assetId\\\":{\\\"type\\\":\\\"crossPackageRef\\\",\\\"required\\\":true,\\\"related\\\":\\\"@happyvertical/smrt-assets:Asset\\\"},\\\"relationship\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":true,\\\"_meta\\\":{\\\"required\\\":true}},\\\"sortOrder\\\":{\\\"type\\\":\\\"integer\\\",\\\"required\\\":true,\\\"default\\\":0}},\\\"methods\\\":{},\\\"decoratorConfig\\\":{\\\"tableName\\\":\\\"product_assets\\\",\\\"conflictColumns\\\":[\\\"product_id\\\",\\\"asset_id\\\",\\\"relationship\\\",\\\"tenant_id\\\"],\\\"api\\\":false,\\\"mcp\\\":false,\\\"cli\\\":false,\\\"tenantScoped\\\":{\\\"mode\\\":\\\"optional\\\"}},\\\"extends\\\":\\\"SmrtObject\\\",\\\"exportName\\\":\\\"ProductAsset\\\",\\\"collectionExportName\\\":\\\"ProductAssetCollection\\\",\\\"validationRules\\\":[{\\\"field\\\":\\\"productId\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"foreignKey\\\"},{\\\"field\\\":\\\"assetId\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"crossPackageRef\\\"},{\\\"field\\\":\\\"relationship\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"text\\\"},{\\\"field\\\":\\\"sortOrder\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"integer\\\"}],\\\"schema\\\":{\\\"tableName\\\":\\\"product_assets\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_assets\\\\\\\" (\\\\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 \\\\\\\"product_id\\\\\\\" UUID NOT NULL,\\\\n \\\\\\\"asset_id\\\\\\\" UUID NOT NULL,\\\\n \\\\\\\"relationship\\\\\\\" TEXT NOT NULL,\\\\n \\\\\\\"sort_order\\\\\\\" INTEGER NOT NULL 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},\\\"product_id\\\":{\\\"type\\\":\\\"UUID\\\",\\\"referenceKind\\\":\\\"foreignKey\\\",\\\"notNull\\\":true,\\\"unique\\\":false,\\\"foreignKey\\\":{\\\"table\\\":\\\"products\\\",\\\"column\\\":\\\"id\\\",\\\"onDelete\\\":\\\"CASCADE\\\",\\\"onUpdate\\\":\\\"CASCADE\\\"}},\\\"asset_id\\\":{\\\"type\\\":\\\"UUID\\\",\\\"referenceKind\\\":\\\"crossPackageRef\\\",\\\"notNull\\\":true,\\\"unique\\\":false},\\\"relationship\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":true,\\\"unique\\\":false},\\\"sort_order\\\":{\\\"type\\\":\\\"INTEGER\\\",\\\"notNull\\\":true,\\\"unique\\\":false,\\\"default\\\":0}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_assets_product_id_asset_id_idx\\\",\\\"columns\\\":[\\\"product_id\\\",\\\"asset_id\\\",\\\"relationship\\\",\\\"tenant_id\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_assets_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"]},{\\\"name\\\":\\\"product_assets_tenant_id_created_at_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"created_at\\\"]},{\\\"name\\\":\\\"product_assets_asset_id_idx\\\",\\\"columns\\\":[\\\"asset_id\\\"]}],\\\"version\\\":\\\"9d67ec65\\\"}},\\\"@happyvertical/smrt-products:ProductVariant\\\":{\\\"name\\\":\\\"productvariant\\\",\\\"className\\\":\\\"ProductVariant\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:ProductVariant\\\",\\\"collection\\\":\\\"productvariants\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/models/ProductVariant.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"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}}},\\\"productId\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":true,\\\"default\\\":\\\"\\\",\\\"_meta\\\":{\\\"required\\\":true}},\\\"axisName\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":true,\\\"default\\\":\\\"\\\",\\\"_meta\\\":{\\\"required\\\":true}},\\\"label\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false,\\\"default\\\":\\\"\\\"},\\\"allowedValues\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false,\\\"default\\\":\\\"[]\\\"},\\\"sortOrder\\\":{\\\"type\\\":\\\"integer\\\",\\\"required\\\":false,\\\"default\\\":0}},\\\"methods\\\":{\\\"getValues\\\":{\\\"name\\\":\\\"getValues\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"string[]\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"setValues\\\":{\\\"name\\\":\\\"setValues\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"string[] | string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableName\\\":\\\"product_variants\\\",\\\"conflictColumns\\\":[\\\"product_id\\\",\\\"axis_name\\\",\\\"tenant_id\\\"],\\\"api\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\",\\\"create\\\",\\\"update\\\"]},\\\"mcp\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\"]},\\\"cli\\\":true,\\\"tenantScoped\\\":{\\\"mode\\\":\\\"optional\\\"}},\\\"extends\\\":\\\"SmrtObject\\\",\\\"exportName\\\":\\\"ProductVariant\\\",\\\"collectionExportName\\\":\\\"ProductVariantCollection\\\",\\\"validationRules\\\":[{\\\"field\\\":\\\"productId\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"text\\\"},{\\\"field\\\":\\\"axisName\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"text\\\"}],\\\"schema\\\":{\\\"tableName\\\":\\\"product_variants\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_variants\\\\\\\" (\\\\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 \\\\\\\"product_id\\\\\\\" TEXT NOT NULL DEFAULT '',\\\\n \\\\\\\"axis_name\\\\\\\" TEXT NOT NULL DEFAULT '',\\\\n \\\\\\\"label\\\\\\\" TEXT DEFAULT '',\\\\n \\\\\\\"allowed_values\\\\\\\" 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\\\":\\\"\\\"},\\\"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},\\\"product_id\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":true,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"axis_name\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":true,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"label\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"allowed_values\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":\\\"[]\\\"},\\\"sort_order\\\":{\\\"type\\\":\\\"INTEGER\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":0}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_variants_product_id_axis_name_idx\\\",\\\"columns\\\":[\\\"product_id\\\",\\\"axis_name\\\",\\\"tenant_id\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_variants_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"]},{\\\"name\\\":\\\"product_variants_tenant_id_created_at_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"created_at\\\"]}],\\\"version\\\":\\\"2891ff02\\\"}},\\\"@happyvertical/smrt-products:Sku\\\":{\\\"name\\\":\\\"sku\\\",\\\"className\\\":\\\"Sku\\\",\\\"qualifiedName\\\":\\\"@happyvertical/smrt-products:Sku\\\",\\\"collection\\\":\\\"skus\\\",\\\"filePath\\\":\\\"/home/runner/work/smrt/smrt/packages/products/src/lib/models/Sku.ts\\\",\\\"packageName\\\":\\\"@happyvertical/smrt-products\\\",\\\"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}}},\\\"productId\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":true,\\\"default\\\":\\\"\\\",\\\"_meta\\\":{\\\"required\\\":true}},\\\"code\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":true,\\\"default\\\":\\\"\\\",\\\"_meta\\\":{\\\"required\\\":true}},\\\"barcode\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false,\\\"default\\\":\\\"\\\"},\\\"name\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false,\\\"default\\\":\\\"\\\"},\\\"attributes\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false,\\\"default\\\":\\\"{}\\\"},\\\"weightGrams\\\":{\\\"type\\\":\\\"decimal\\\",\\\"required\\\":false,\\\"_meta\\\":{}},\\\"parentSkuId\\\":{\\\"type\\\":\\\"text\\\",\\\"required\\\":false,\\\"default\\\":\\\"\\\"},\\\"active\\\":{\\\"type\\\":\\\"boolean\\\",\\\"required\\\":false,\\\"default\\\":true}},\\\"methods\\\":{\\\"getAttributes\\\":{\\\"name\\\":\\\"getAttributes\\\",\\\"async\\\":false,\\\"parameters\\\":[],\\\"returnType\\\":\\\"Record<string>\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true},\\\"setAttributes\\\":{\\\"name\\\":\\\"setAttributes\\\",\\\"async\\\":false,\\\"parameters\\\":[{\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"Record<string> | string\\\",\\\"optional\\\":false}],\\\"returnType\\\":\\\"void\\\",\\\"isStatic\\\":false,\\\"isPublic\\\":true}},\\\"decoratorConfig\\\":{\\\"tableName\\\":\\\"product_skus\\\",\\\"conflictColumns\\\":[\\\"code\\\",\\\"tenant_id\\\"],\\\"api\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\",\\\"create\\\",\\\"update\\\"]},\\\"mcp\\\":{\\\"include\\\":[\\\"list\\\",\\\"get\\\"]},\\\"cli\\\":true,\\\"tenantScoped\\\":{\\\"mode\\\":\\\"optional\\\"}},\\\"extends\\\":\\\"SmrtObject\\\",\\\"exportName\\\":\\\"Sku\\\",\\\"collectionExportName\\\":\\\"SkuCollection\\\",\\\"validationRules\\\":[{\\\"field\\\":\\\"productId\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"text\\\"},{\\\"field\\\":\\\"code\\\",\\\"rule\\\":\\\"required\\\",\\\"fieldType\\\":\\\"text\\\"}],\\\"schema\\\":{\\\"tableName\\\":\\\"product_skus\\\",\\\"ddl\\\":\\\"CREATE TABLE IF NOT EXISTS \\\\\\\"product_skus\\\\\\\" (\\\\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 \\\\\\\"product_id\\\\\\\" TEXT NOT NULL DEFAULT '',\\\\n \\\\\\\"code\\\\\\\" TEXT NOT NULL DEFAULT '',\\\\n \\\\\\\"barcode\\\\\\\" TEXT DEFAULT '',\\\\n \\\\\\\"name\\\\\\\" TEXT DEFAULT '',\\\\n \\\\\\\"attributes\\\\\\\" TEXT DEFAULT '{}',\\\\n \\\\\\\"weight_grams\\\\\\\" REAL,\\\\n \\\\\\\"parent_sku_id\\\\\\\" TEXT DEFAULT '',\\\\n \\\\\\\"active\\\\\\\" BOOLEAN DEFAULT TRUE\\\\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},\\\"product_id\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":true,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"code\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":true,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"barcode\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"name\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"attributes\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":\\\"{}\\\"},\\\"weight_grams\\\":{\\\"type\\\":\\\"REAL\\\",\\\"notNull\\\":false,\\\"unique\\\":false},\\\"parent_sku_id\\\":{\\\"type\\\":\\\"TEXT\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":\\\"\\\"},\\\"active\\\":{\\\"type\\\":\\\"BOOLEAN\\\",\\\"notNull\\\":false,\\\"unique\\\":false,\\\"default\\\":true}},\\\"indexes\\\":[{\\\"name\\\":\\\"product_skus_code_tenant_id_idx\\\",\\\"columns\\\":[\\\"code\\\",\\\"tenant_id\\\"],\\\"unique\\\":true},{\\\"name\\\":\\\"product_skus_slug_context_idx\\\",\\\"columns\\\":[\\\"slug\\\",\\\"context\\\"]},{\\\"name\\\":\\\"product_skus_tenant_id_created_at_idx\\\",\\\"columns\\\":[\\\"tenant_id\\\",\\\"created_at\\\"]}],\\\"version\\\":\\\"89d5a311\\\"}}},\\\"moduleType\\\":\\\"smrt\\\",\\\"smrtDependencies\\\":[\\\"@happyvertical/smrt-assets\\\",\\\"@happyvertical/smrt-core\\\",\\\"@happyvertical/smrt-tenancy\\\"]}\"));\n"],"mappings":";;AAOA,eAAe,wBAAwB,KAAK,MAAM,69iEAA69iE,CAAC"}
|