@dainamite/cpq 0.2.2 → 0.4.0

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.
Files changed (59) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/MIGRATION.md +34 -1
  3. package/README.md +17 -12
  4. package/dist/modules/cpq/api/product-attributes/route.js +28 -53
  5. package/dist/modules/cpq/api/product-attributes/route.js.map +2 -2
  6. package/dist/modules/cpq/api/product-charges/route.js +12 -2
  7. package/dist/modules/cpq/api/product-charges/route.js.map +2 -2
  8. package/dist/modules/cpq/api/product-offerings/route.js +2 -0
  9. package/dist/modules/cpq/api/product-offerings/route.js.map +2 -2
  10. package/dist/modules/cpq/backend/cpq/offerings/[id]/page.js +128 -59
  11. package/dist/modules/cpq/backend/cpq/offerings/[id]/page.js.map +2 -2
  12. package/dist/modules/cpq/backend/cpq/pricing/[id]/EntriesEditor.js +11 -11
  13. package/dist/modules/cpq/backend/cpq/pricing/[id]/EntriesEditor.js.map +2 -2
  14. package/dist/modules/cpq/backend/cpq/specifications/[id]/page.js +55 -1
  15. package/dist/modules/cpq/backend/cpq/specifications/[id]/page.js.map +2 -2
  16. package/dist/modules/cpq/cli.js +58 -4
  17. package/dist/modules/cpq/cli.js.map +3 -3
  18. package/dist/modules/cpq/data/charge-pricing.js +12 -0
  19. package/dist/modules/cpq/data/charge-pricing.js.map +7 -0
  20. package/dist/modules/cpq/data/entities.js +3 -0
  21. package/dist/modules/cpq/data/entities.js.map +2 -2
  22. package/dist/modules/cpq/data/validators.js +36 -15
  23. package/dist/modules/cpq/data/validators.js.map +2 -2
  24. package/dist/modules/cpq/events.js +7 -0
  25. package/dist/modules/cpq/events.js.map +2 -2
  26. package/dist/modules/cpq/lib/seeds/demo.js +103 -0
  27. package/dist/modules/cpq/lib/seeds/demo.js.map +7 -0
  28. package/dist/modules/cpq/migrations/Migration20260602000000_cpq_charge_model_split.js +28 -0
  29. package/dist/modules/cpq/migrations/Migration20260602000000_cpq_charge_model_split.js.map +7 -0
  30. package/dist/modules/cpq/services/cpqOrderService.js +130 -76
  31. package/dist/modules/cpq/services/cpqOrderService.js.map +2 -2
  32. package/dist/modules/cpq/services/cpqPricingService.js +53 -29
  33. package/dist/modules/cpq/services/cpqPricingService.js.map +3 -3
  34. package/dist/modules/cpq/services/types.js.map +2 -2
  35. package/package.json +11 -9
  36. package/src/modules/cpq/__integration__/TC-CPQ-012.spec.ts +34 -4
  37. package/src/modules/cpq/__tests__/package-isolation.test.ts +8 -3
  38. package/src/modules/cpq/api/product-attributes/__tests__/serializeAttribute.test.ts +62 -0
  39. package/src/modules/cpq/api/product-attributes/route.ts +34 -52
  40. package/src/modules/cpq/api/product-charges/route.ts +23 -2
  41. package/src/modules/cpq/api/product-offerings/route.ts +2 -0
  42. package/src/modules/cpq/backend/cpq/offerings/[id]/page.tsx +151 -62
  43. package/src/modules/cpq/backend/cpq/pricing/[id]/EntriesEditor.tsx +24 -22
  44. package/src/modules/cpq/backend/cpq/specifications/[id]/page.tsx +73 -1
  45. package/src/modules/cpq/cli.ts +83 -4
  46. package/src/modules/cpq/data/__tests__/charge-pricing.test.ts +49 -0
  47. package/src/modules/cpq/data/__tests__/validators.test.ts +60 -5
  48. package/src/modules/cpq/data/charge-pricing.ts +48 -0
  49. package/src/modules/cpq/data/entities.ts +10 -0
  50. package/src/modules/cpq/data/validators.ts +56 -26
  51. package/src/modules/cpq/events.ts +11 -3
  52. package/src/modules/cpq/lib/seeds/__tests__/demo.test.ts +78 -0
  53. package/src/modules/cpq/lib/seeds/demo.ts +145 -0
  54. package/src/modules/cpq/migrations/.snapshot-open-mercato.json +16 -0
  55. package/src/modules/cpq/migrations/Migration20260602000000_cpq_charge_model_split.ts +57 -0
  56. package/src/modules/cpq/services/__tests__/cpqPricingService.test.ts +172 -1
  57. package/src/modules/cpq/services/cpqOrderService.ts +214 -103
  58. package/src/modules/cpq/services/cpqPricingService.ts +82 -34
  59. package/src/modules/cpq/services/types.ts +4 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/modules/cpq/data/entities.ts"],
4
- "sourcesContent": ["import { OptionalProps } from '@mikro-orm/core'\nimport { Entity, Index, PrimaryKey, Property, Unique } from '@mikro-orm/decorators/legacy'\n\n// \u2500\u2500\u2500 CpqProductSpecification \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n// Additional indexes added in `Migration20260514110000_cpq_list_search_indexes`\n// (hand-written because MikroORM cannot express `gin_trgm_ops` / partial predicates):\n// - GIN trigram on code/name/description (powers list `$ilike` search)\n// - composite (org, tenant, deleted_at, created_at DESC) for default sort path\n@Entity({ tableName: 'cpq_product_specifications' })\n@Unique({ name: 'cpq_product_specifications_product_unique', properties: ['organizationId', 'tenantId', 'productId'] })\n@Unique({ name: 'cpq_product_specifications_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\n@Index({ name: 'cpq_product_specifications_lifecycle_idx', properties: ['organizationId', 'tenantId', 'lifecycleStatus'] })\nexport class CpqProductSpecification {\n [OptionalProps]?: 'specType' | 'isAssetizable' | 'lifecycleStatus' | 'version' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'product_id', type: 'uuid' })\n productId!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'spec_type', type: 'text', default: 'simple' })\n specType: string = 'simple'\n\n @Property({ name: 'is_assetizable', type: 'boolean', default: false })\n isAssetizable: boolean = false\n\n @Property({ name: 'lifecycle_status', type: 'text', default: 'draft' })\n lifecycleStatus: string = 'draft'\n\n @Property({ type: 'integer', default: 1 })\n version: number = 1\n\n @Property({ name: 'effective_from', type: Date, nullable: true })\n effectiveFrom?: Date | null\n\n @Property({ name: 'effective_to', type: Date, nullable: true })\n effectiveTo?: Date | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqProductOffering \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n// Additional indexes added in `Migration20260514110000_cpq_list_search_indexes`\n// (hand-written because MikroORM cannot express `gin_trgm_ops` / partial predicates):\n// - GIN trigram on code/name/description (powers list `$ilike` search)\n// - composite (org, tenant, deleted_at, created_at DESC) for default sort path\n@Entity({ tableName: 'cpq_product_offerings' })\n@Unique({ name: 'cpq_product_offerings_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\n@Index({ name: 'cpq_product_offerings_spec_idx', properties: ['organizationId', 'tenantId', 'specId'] })\n@Index({ name: 'cpq_product_offerings_lifecycle_idx', properties: ['organizationId', 'tenantId', 'lifecycleStatus'] })\nexport class CpqProductOffering {\n [OptionalProps]?: 'offeringType' | 'designTimeValues' | 'lifecycleStatus' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'spec_id', type: 'uuid' })\n specId!: string\n\n @Property({ name: 'catalog_offer_id', type: 'uuid', nullable: true })\n catalogOfferId?: string | null\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'offering_type', type: 'text', default: 'simple' })\n offeringType: string = 'simple'\n\n @Property({ name: 'design_time_values', type: 'jsonb', default: '{}' })\n designTimeValues: Record<string, unknown> = {}\n\n @Property({ name: 'lifecycle_status', type: 'text', default: 'draft' })\n lifecycleStatus: string = 'draft'\n\n @Property({ name: 'effective_from', type: Date, nullable: true })\n effectiveFrom?: Date | null\n\n @Property({ name: 'effective_to', type: Date, nullable: true })\n effectiveTo?: Date | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqProductRelationship \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_product_relationships' })\n@Unique({\n name: 'cpq_product_relationships_unique',\n properties: ['organizationId', 'tenantId', 'sourceSpecId', 'targetSpecId', 'relationshipType'],\n})\n@Index({ name: 'cpq_product_relationships_source_idx', properties: ['organizationId', 'tenantId', 'sourceSpecId'] })\n@Index({ name: 'cpq_product_relationships_target_idx', properties: ['organizationId', 'tenantId', 'targetSpecId'] })\nexport class CpqProductRelationship {\n [OptionalProps]?: 'cardinalityMin' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'source_spec_id', type: 'uuid' })\n sourceSpecId!: string\n\n @Property({ name: 'target_spec_id', type: 'uuid' })\n targetSpecId!: string\n\n @Property({ name: 'relationship_type', type: 'text' })\n relationshipType!: string\n\n @Property({ name: 'cardinality_min', type: 'integer', default: 0 })\n cardinalityMin: number = 0\n\n @Property({ name: 'cardinality_max', type: 'integer', nullable: true })\n cardinalityMax?: number | null\n\n @Property({ type: 'jsonb', nullable: true })\n condition?: Record<string, unknown> | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqBundleSlot \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_bundle_slots' })\n@Index({ name: 'cpq_bundle_slot_spec_idx', properties: ['organizationId', 'tenantId', 'specId'] })\n@Index({ name: 'cpq_bundle_slot_target_idx', properties: ['organizationId', 'tenantId', 'targetSpecId'] })\n@Index({ name: 'cpq_bundle_slot_group_idx', properties: ['organizationId', 'tenantId', 'specId', 'componentGroup'] })\nexport class CpqBundleSlot {\n [OptionalProps]?: 'cardinalityMin' | 'sortOrder' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'spec_id', type: 'uuid' })\n specId!: string\n\n @Property({ name: 'target_spec_id', type: 'uuid' })\n targetSpecId!: string\n\n @Property({ name: 'component_group', type: 'text' })\n componentGroup!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'cardinality_min', type: 'integer', default: 0 })\n cardinalityMin: number = 0\n\n @Property({ name: 'cardinality_max', type: 'integer', nullable: true })\n cardinalityMax?: number | null\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqOfferingComponent \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_offering_components' })\n@Index({ name: 'cpq_off_comp_offering_idx', properties: ['organizationId', 'tenantId', 'offeringId'] })\n@Index({ name: 'cpq_off_comp_slot_idx', properties: ['organizationId', 'tenantId', 'offeringId', 'slotId'] })\n@Index({ name: 'cpq_off_comp_child_idx', properties: ['organizationId', 'tenantId', 'childOfferingId'] })\n@Unique({ name: 'cpq_off_comp_unique', properties: ['organizationId', 'tenantId', 'offeringId', 'childOfferingId'] })\nexport class CpqOfferingComponent {\n [OptionalProps]?: 'isDefault' | 'sortOrder' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'offering_id', type: 'uuid' })\n offeringId!: string\n\n @Property({ name: 'slot_id', type: 'uuid' })\n slotId!: string\n\n @Property({ name: 'child_offering_id', type: 'uuid' })\n childOfferingId!: string\n\n @Property({ name: 'is_default', type: 'boolean', default: false })\n isDefault: boolean = false\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqProductAttribute \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_product_attributes' })\n@Index({ name: 'cpq_product_attributes_scope_idx', properties: ['organizationId', 'tenantId', 'productId'] })\n@Index({ name: 'cpq_product_attributes_spec_idx', properties: ['organizationId', 'tenantId', 'specId'] })\n@Index({ name: 'cpq_product_attributes_spec_resolution_idx', properties: ['organizationId', 'tenantId', 'specId', 'resolutionTime'] })\n@Unique({\n name: 'cpq_product_attributes_code_unique',\n properties: ['organizationId', 'tenantId', 'productId', 'code'],\n})\nexport class CpqProductAttribute {\n [OptionalProps]?: 'resolutionTime' | 'isRequired' | 'isActive' | 'sortOrder' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'product_id', type: 'uuid' })\n productId!: string\n\n @Property({ name: 'spec_id', type: 'uuid', nullable: true })\n specId?: string | null\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ name: 'attribute_type', type: 'text' })\n attributeType!: string\n\n @Property({ name: 'resolution_time', type: 'text', default: 'run_time' })\n resolutionTime: string = 'run_time'\n\n @Property({ type: 'jsonb', nullable: true })\n options?: Array<{ value: string; label: string }> | null\n\n @Property({ type: 'jsonb', nullable: true })\n constraints?: Record<string, unknown> | null\n\n @Property({ name: 'reference_entity', type: 'text', nullable: true })\n referenceEntity?: string | null\n\n @Property({ name: 'reference_filter', type: 'jsonb', nullable: true })\n referenceFilter?: Record<string, unknown> | null\n\n @Property({ name: 'depends_on', type: 'jsonb', nullable: true })\n dependsOn?: Record<string, unknown> | null\n\n @Property({ name: 'default_value', type: 'jsonb', nullable: true })\n defaultValue?: unknown | null\n\n @Property({ name: 'help_text', type: 'text', nullable: true })\n helpText?: string | null\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'is_required', type: 'boolean', default: true })\n isRequired: boolean = true\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqPricingTable \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_pricing_tables' })\n@Index({ name: 'cpq_pricing_tables_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'cpq_pricing_tables_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\nexport class CpqPricingTable {\n [OptionalProps]?: 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'jsonb' })\n dimensions!: Array<{ key: string; label: string }>\n\n @Property({ name: 'price_columns', type: 'jsonb' })\n priceColumns!: Array<{ key: string; label: string }>\n\n @Property({ name: 'currency_code_list', type: 'jsonb' })\n currencyCodeList!: string[]\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqPricingTableEntry \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_pricing_table_entries' })\n@Index({ name: 'cpq_pricing_table_entries_scope_idx', properties: ['organizationId', 'tenantId', 'pricingTableId'] })\n@Index({ name: 'cpq_pricing_table_entries_dim_gin_idx', properties: ['dimensionValues'], type: 'GIN' })\nexport class CpqPricingTableEntry {\n [OptionalProps]?: 'isActive' | 'currencyCode' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'pricing_table_id', type: 'uuid' })\n pricingTableId!: string\n\n @Property({ name: 'dimension_values', type: 'jsonb' })\n dimensionValues!: Record<string, string>\n\n @Property({ name: 'tier_number', type: 'integer', nullable: true })\n tierNumber?: number | null\n\n @Property({ name: 'range_from', type: 'numeric', nullable: true })\n rangeFrom?: string | null\n\n @Property({ name: 'range_to', type: 'numeric', nullable: true })\n rangeTo?: string | null\n\n @Property({ name: 'currency_code', type: 'text', default: 'USD' })\n currencyCode: string = 'USD'\n\n @Property({ type: 'jsonb' })\n prices!: Record<string, number>\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqProductCharge \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_product_charges' })\n@Index({ name: 'cpq_product_charges_scope_idx', properties: ['organizationId', 'tenantId', 'productId'] })\n@Index({ name: 'cpq_product_charges_offering_idx', properties: ['organizationId', 'tenantId', 'offeringId'] })\n@Unique({\n name: 'cpq_product_charges_offering_code_unique',\n properties: ['organizationId', 'tenantId', 'offeringId', 'code'],\n})\nexport class CpqProductCharge {\n [OptionalProps]?: 'isActive' | 'sortOrder' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'product_id', type: 'uuid' })\n productId!: string\n\n @Property({ name: 'offering_id', type: 'uuid', nullable: true })\n offeringId?: string | null\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'charge_type', type: 'text' })\n chargeType!: string\n\n @Property({ name: 'pricing_method', type: 'text' })\n pricingMethod!: string\n\n @Property({ name: 'pricing_table_id', type: 'uuid', nullable: true })\n pricingTableId?: string | null\n\n @Property({ name: 'price_column_key', type: 'text', nullable: true })\n priceColumnKey?: string | null\n\n @Property({ name: 'fixed_price', type: 'numeric', nullable: true })\n fixedPrice?: string | null\n\n @Property({ name: 'currency_code', type: 'text', nullable: true })\n currencyCode?: string | null\n\n @Property({ name: 'quantity_attribute_code', type: 'text', nullable: true })\n quantityAttributeCode?: string | null\n\n @Property({ name: 'applicability_condition', type: 'jsonb', nullable: true })\n applicabilityCondition?: Record<string, unknown> | null\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqPriceRule \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_price_rules' })\n@Index({ name: 'cpq_price_rules_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'cpq_price_rules_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\n@Index({ name: 'cpq_price_rules_product_idx', properties: ['organizationId', 'tenantId', 'productOfferingId'] })\nexport class CpqPriceRule {\n [OptionalProps]?: 'sortOrder' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'product_offering_id', type: 'uuid', nullable: true })\n productOfferingId?: string | null\n\n @Property({ name: 'rule_type', type: 'text' })\n ruleType!: string\n\n @Property({ type: 'numeric' })\n value!: string\n\n @Property({ name: 'charge_code_filter', type: 'text', nullable: true })\n chargeCodeFilter?: string | null\n\n @Property({ name: 'charge_type_filter', type: 'text', nullable: true })\n chargeTypeFilter?: string | null\n\n @Property({ name: 'applicability_condition', type: 'jsonb', nullable: true })\n applicabilityCondition?: Record<string, unknown> | null\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqQuoteConfiguration \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_quote_configurations' })\n@Unique({ name: 'cpq_quote_configurations_quote_unique', properties: ['organizationId', 'tenantId', 'quoteId'] })\n@Index({ name: 'cpq_quote_configurations_quote_type_idx', properties: ['organizationId', 'tenantId', 'quoteType'] })\nexport class CpqQuoteConfiguration {\n [OptionalProps]?:\n | 'cpqStatus'\n | 'version'\n | 'currencyCode'\n | 'quoteType'\n | 'createdAt'\n | 'updatedAt'\n | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'quote_id', type: 'uuid' })\n quoteId!: string\n\n @Property({ name: 'customer_id', type: 'uuid' })\n customerId!: string\n\n @Property({ name: 'cpq_status', type: 'text', default: 'new' })\n cpqStatus: string = 'new'\n\n @Property({ type: 'integer', default: 1 })\n version: number = 1\n\n @Property({ name: 'parent_quote_id', type: 'uuid', nullable: true })\n parentQuoteId?: string | null\n\n @Property({ name: 'currency_code', type: 'text', default: 'USD' })\n currencyCode: string = 'USD'\n\n @Property({ name: 'quote_context', type: 'jsonb', nullable: true })\n quoteContext?: Record<string, string | number | boolean> | null\n\n @Property({ name: 'validation_result', type: 'jsonb', nullable: true })\n validationResult?: Record<string, unknown> | null\n\n @Property({ name: 'pricing_summary', type: 'jsonb', nullable: true })\n pricingSummary?: Record<string, unknown> | null\n\n // \u2500\u2500 ARC (Amend / Renew / Cancel) \u2014 XD-250 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n @Property({ name: 'quote_type', type: 'text', default: 'new' })\n quoteType: string = 'new'\n\n // Cancel meta \u2014 only meaningful for quoteType='cancel'.\n @Property({ name: 'arc_reason_code', type: 'text', nullable: true })\n arcReasonCode?: string | null\n\n @Property({ name: 'arc_reason_text', type: 'text', nullable: true })\n arcReasonText?: string | null\n\n @Property({ name: 'arc_etf_amount', type: 'numeric', columnType: 'numeric(18, 4)', nullable: true })\n arcEtfAmount?: string | null\n\n @Property({ name: 'arc_etf_currency', type: 'text', nullable: true })\n arcEtfCurrency?: string | null\n\n // Merge meta \u2014 only meaningful for quoteType='renew' with \u22652 absorb targets.\n @Property({ name: 'arc_merge_new_term_start', type: 'date', nullable: true })\n arcMergeNewTermStart?: Date | null\n\n @Property({ name: 'arc_merge_new_term_end', type: 'date', nullable: true })\n arcMergeNewTermEnd?: Date | null\n\n @Property({ name: 'arc_merge_new_term_months', type: 'integer', nullable: true })\n arcMergeNewTermMonths?: number | null\n\n @Property({ name: 'arc_merge_new_sub_code', type: 'text', nullable: true })\n arcMergeNewSubCode?: string | null\n\n @Property({ name: 'arc_merge_new_sub_name', type: 'text', nullable: true })\n arcMergeNewSubName?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqWizardDefinition \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_wizard_definitions' })\n@Unique({ name: 'cpq_wizard_definitions_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\n@Index({ name: 'cpq_wizard_definitions_active_idx', properties: ['organizationId', 'tenantId', 'isActive'] })\n@Index({ name: 'cpq_wizard_definitions_surface_idx', properties: ['organizationId', 'tenantId', 'surface'] })\nexport class CpqWizardDefinition {\n [OptionalProps]?: 'version' | 'surface' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ type: 'integer', default: 1 })\n version: number = 1\n\n @Property({ type: 'jsonb', default: '[]' })\n steps!: Array<Record<string, unknown>>\n\n @Property({ type: 'jsonb', nullable: true })\n applicability?: Record<string, unknown> | null\n\n @Property({ name: 'params_schema', type: 'jsonb', nullable: true })\n paramsSchema?: Record<string, unknown> | null\n\n @Property({ type: 'text', default: 'backend' })\n surface: string = 'backend'\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqQuoteLineConfiguration \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_quote_line_configurations' })\n@Unique({ name: 'cpq_qlc_quote_line_unique', properties: ['organizationId', 'tenantId', 'quoteLineId'] })\n@Index({ name: 'cpq_qlc_quote_config_idx', properties: ['organizationId', 'tenantId', 'quoteConfigurationId'] })\n@Index({ name: 'cpq_qlc_parent_line_idx', properties: ['organizationId', 'tenantId', 'parentLineId'] })\n@Index({ name: 'cpq_qlc_target_sub_idx', properties: ['organizationId', 'tenantId', 'targetSubscriptionId'] })\nexport class CpqQuoteLineConfiguration {\n [OptionalProps]?: 'action' | 'configuration' | 'quantity' | 'nrcTotal' | 'mrcTotal' | 'isConfigured' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'quote_line_id', type: 'uuid' })\n quoteLineId!: string\n\n @Property({ name: 'quote_configuration_id', type: 'uuid' })\n quoteConfigurationId!: string\n\n @Property({ name: 'offering_id', type: 'uuid', nullable: true })\n offeringId?: string | null\n\n @Property({ name: 'product_id', type: 'uuid', nullable: true })\n productId?: string | null\n\n @Property({ name: 'spec_id', type: 'uuid', nullable: true })\n specId?: string | null\n\n @Property({ type: 'text', default: 'add' })\n action: string = 'add'\n\n @Property({ name: 'parent_line_id', type: 'uuid', nullable: true })\n parentLineId?: string | null\n\n @Property({ name: 'start_date', type: 'date', nullable: true })\n startDate?: Date | null\n\n @Property({ name: 'term_months', type: 'integer', nullable: true })\n termMonths?: number | null\n\n @Property({ name: 'end_date', type: 'date', nullable: true })\n endDate?: Date | null\n\n @Property({ type: 'jsonb', default: '{}' })\n configuration: Record<string, unknown> = {}\n\n @Property({ type: 'integer', default: 1 })\n quantity: number = 1\n\n @Property({ type: 'jsonb', nullable: true })\n charges?: Array<Record<string, unknown>> | null\n\n @Property({ name: 'nrc_total', columnType: 'numeric(18, 4)', default: 0 })\n nrcTotal: string = '0'\n\n @Property({ name: 'mrc_total', columnType: 'numeric(18, 4)', default: 0 })\n mrcTotal: string = '0'\n\n @Property({ name: 'usage_estimates', type: 'jsonb', nullable: true })\n usageEstimates?: Array<{ chargeCode: string; estimatedQuantity: number; estimatedTotal: number }> | null\n\n @Property({ name: 'usage_total_estimated', type: 'numeric', columnType: 'numeric(18, 4)', nullable: true })\n usageTotalEstimated?: string | null\n\n @Property({ name: 'validation_errors', type: 'jsonb', nullable: true })\n validationErrors?: Array<Record<string, unknown>> | null\n\n @Property({ name: 'is_configured', type: 'boolean', default: false })\n isConfigured: boolean = false\n\n // \u2500\u2500 ARC (Amend / Renew / Cancel) \u2014 XD-250 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n // For quote_type='amend'/'cancel'/'renew' standalone: identifies which\n // target subscription the line affects. Null for type='new' and merge\n // mode (M doesn't exist at quote time).\n @Property({ name: 'target_subscription_id', type: 'uuid', nullable: true })\n targetSubscriptionId?: string | null\n\n // Required when action \u2208 {cancel, modify} on amend/renew quotes.\n // Identifies the existing subscription item the line is changing.\n @Property({ name: 'source_subscription_item_id', type: 'uuid', nullable: true })\n sourceSubscriptionItemId?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqInventorySubscription \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_inventory_subscriptions' })\n@Index({ name: 'cpq_inventory_subscriptions_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'cpq_inventory_subscriptions_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\n@Index({ name: 'cpq_inventory_subscriptions_customer_idx', properties: ['organizationId', 'tenantId', 'customerId'] })\n@Index({ name: 'cpq_inventory_subscriptions_status_idx', properties: ['organizationId', 'tenantId', 'status'] })\n@Index({ name: 'cpq_inventory_subscriptions_source_quote_idx', properties: ['organizationId', 'tenantId', 'sourceQuoteId'] })\n@Index({ name: 'cpq_inventory_subscriptions_term_end_idx', properties: ['organizationId', 'tenantId', 'currentTermEnd'] })\n@Index({ name: 'cpq_inventory_subscriptions_merged_into_idx', properties: ['organizationId', 'tenantId', 'mergedIntoSubscriptionId'] })\nexport class CpqInventorySubscription {\n [OptionalProps]?:\n | 'status'\n | 'billingCycle'\n | 'currencyCode'\n | 'mrcAmount'\n | 'nrcAmount'\n | 'autoRenew'\n | 'version'\n | 'createdAt'\n | 'updatedAt'\n | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'customer_id', type: 'uuid' })\n customerId!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ type: 'text', default: 'pending' })\n status: string = 'pending'\n\n @Property({ name: 'billing_cycle', type: 'text', default: 'monthly' })\n billingCycle: string = 'monthly'\n\n @Property({ name: 'currency_code', type: 'text', default: 'USD' })\n currencyCode: string = 'USD'\n\n @Property({ name: 'mrc_amount', columnType: 'numeric(18, 4)', default: 0 })\n mrcAmount: string = '0'\n\n @Property({ name: 'nrc_amount', columnType: 'numeric(18, 4)', default: 0 })\n nrcAmount: string = '0'\n\n @Property({ name: 'start_date', type: 'date', nullable: true })\n startDate?: Date | null\n\n @Property({ name: 'current_term_start', type: 'date', nullable: true })\n currentTermStart?: Date | null\n\n @Property({ name: 'current_term_end', type: 'date', nullable: true })\n currentTermEnd?: Date | null\n\n @Property({ name: 'term_months', type: 'integer', nullable: true })\n termMonths?: number | null\n\n @Property({ name: 'auto_renew', type: 'boolean', default: true })\n autoRenew: boolean = true\n\n @Property({ name: 'activated_at', type: Date, nullable: true })\n activatedAt?: Date | null\n\n @Property({ name: 'suspended_at', type: Date, nullable: true })\n suspendedAt?: Date | null\n\n @Property({ name: 'terminated_at', type: Date, nullable: true })\n terminatedAt?: Date | null\n\n @Property({ name: 'pricing_summary', type: 'jsonb', nullable: true })\n pricingSummary?: Record<string, unknown> | null\n\n @Property({ name: 'source_quote_id', type: 'uuid', nullable: true })\n sourceQuoteId?: string | null\n\n @Property({ name: 'source_order_id', type: 'uuid', nullable: true })\n sourceOrderId?: string | null\n\n // \u2500\u2500 ARC (Amend / Renew / Cancel) \u2014 XD-250 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n // Set when this row is a merge source (terminal status='superseded').\n // Points at the new merge sub M that absorbed this one.\n @Property({ name: 'merged_into_subscription_id', type: 'uuid', nullable: true })\n mergedIntoSubscriptionId?: string | null\n\n // Convenience pointer to most recent CpqSubscriptionChangeLog for fast UI.\n @Property({ name: 'last_change_log_id', type: 'uuid', nullable: true })\n lastChangeLogId?: string | null\n\n // MikroORM optimistic lock \u2014 auto-increments on every UPDATE.\n @Property({ type: 'integer', version: true })\n version: number = 1\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqInventorySubscriptionItem \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_inventory_subscription_items' })\n@Index({ name: 'cpq_inventory_subscription_items_scope_idx', properties: ['organizationId', 'tenantId', 'subscriptionId'] })\n@Index({ name: 'cpq_inventory_subscription_items_customer_idx', properties: ['organizationId', 'tenantId', 'customerId'] })\n@Index({ name: 'cpq_inventory_subscription_items_parent_idx', properties: ['organizationId', 'tenantId', 'parentItemId'] })\n@Index({ name: 'cpq_inventory_subscription_items_status_idx', properties: ['organizationId', 'tenantId', 'status'] })\nexport class CpqInventorySubscriptionItem {\n [OptionalProps]?: 'status' | 'configuration' | 'mrcAmount' | 'nrcAmount' | 'currencyCode' | 'quantity' | 'sortOrder' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'subscription_id', type: 'uuid' })\n subscriptionId!: string\n\n @Property({ name: 'customer_id', type: 'uuid' })\n customerId!: string\n\n @Property({ name: 'parent_item_id', type: 'uuid', nullable: true })\n parentItemId?: string | null\n\n @Property({ name: 'product_id', type: 'uuid', nullable: true })\n productId?: string | null\n\n @Property({ name: 'offering_id', type: 'uuid', nullable: true })\n offeringId?: string | null\n\n @Property({ name: 'spec_id', type: 'uuid', nullable: true })\n specId?: string | null\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', default: 'pending' })\n status: string = 'pending'\n\n @Property({ type: 'jsonb', default: '{}' })\n configuration: Record<string, unknown> = {}\n\n @Property({ type: 'jsonb', nullable: true })\n charges?: Array<Record<string, unknown>> | null\n\n @Property({ name: 'mrc_amount', columnType: 'numeric(18, 4)', default: 0 })\n mrcAmount: string = '0'\n\n @Property({ name: 'nrc_amount', columnType: 'numeric(18, 4)', default: 0 })\n nrcAmount: string = '0'\n\n @Property({ name: 'currency_code', type: 'text', default: 'USD' })\n currencyCode: string = 'USD'\n\n @Property({ type: 'integer', default: 1 })\n quantity: number = 1\n\n @Property({ name: 'capacity_total', type: 'numeric', columnType: 'numeric(18, 4)', nullable: true })\n capacityTotal?: string | null\n\n @Property({ name: 'capacity_used', type: 'numeric', columnType: 'numeric(18, 4)', nullable: true })\n capacityUsed?: string | null\n\n @Property({ name: 'capacity_unit', type: 'text', nullable: true })\n capacityUnit?: string | null\n\n @Property({ name: 'source_quote_line_id', type: 'uuid', nullable: true })\n sourceQuoteLineId?: string | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqInventoryAsset \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_inventory_assets' })\n@Index({ name: 'cpq_inventory_assets_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'cpq_inventory_assets_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\n@Index({ name: 'cpq_inventory_assets_customer_idx', properties: ['organizationId', 'tenantId', 'customerId'] })\n@Index({ name: 'cpq_inventory_assets_status_idx', properties: ['organizationId', 'tenantId', 'status'] })\n@Index({ name: 'cpq_inventory_assets_subscription_idx', properties: ['organizationId', 'tenantId', 'subscriptionId'] })\n@Index({ name: 'cpq_inventory_assets_item_idx', properties: ['organizationId', 'tenantId', 'subscriptionItemId'] })\nexport class CpqInventoryAsset {\n [OptionalProps]?: 'status' | 'assetType' | 'currencyCode' | 'purchasePrice' | 'quantity' | 'configuration' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'customer_id', type: 'uuid' })\n customerId!: string\n\n @Property({ name: 'subscription_id', type: 'uuid', nullable: true })\n subscriptionId?: string | null\n\n @Property({ name: 'subscription_item_id', type: 'uuid', nullable: true })\n subscriptionItemId?: string | null\n\n @Property({ name: 'product_id', type: 'uuid', nullable: true })\n productId?: string | null\n\n @Property({ name: 'offering_id', type: 'uuid', nullable: true })\n offeringId?: string | null\n\n @Property({ name: 'spec_id', type: 'uuid', nullable: true })\n specId?: string | null\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ type: 'text', default: 'pending' })\n status: string = 'pending'\n\n @Property({ name: 'asset_type', type: 'text', default: 'one_time' })\n assetType: string = 'one_time'\n\n @Property({ name: 'currency_code', type: 'text', default: 'USD' })\n currencyCode: string = 'USD'\n\n @Property({ name: 'purchase_price', columnType: 'numeric(18, 4)', default: 0 })\n purchasePrice: string = '0'\n\n @Property({ type: 'integer', default: 1 })\n quantity: number = 1\n\n @Property({ name: 'purchase_date', type: 'date', nullable: true })\n purchaseDate?: Date | null\n\n @Property({ name: 'delivery_date', type: 'date', nullable: true })\n deliveryDate?: Date | null\n\n @Property({ type: 'jsonb', default: '{}' })\n configuration: Record<string, unknown> = {}\n\n @Property({ type: 'jsonb', nullable: true })\n charges?: Array<Record<string, unknown>> | null\n\n @Property({ name: 'source_quote_id', type: 'uuid', nullable: true })\n sourceQuoteId?: string | null\n\n @Property({ name: 'source_order_id', type: 'uuid', nullable: true })\n sourceOrderId?: string | null\n\n @Property({ name: 'source_quote_line_id', type: 'uuid', nullable: true })\n sourceQuoteLineId?: string | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqOrderConfiguration \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_order_configurations' })\n@Unique({ name: 'cpq_order_configurations_order_unique', properties: ['organizationId', 'tenantId', 'orderId'] })\n@Index({ name: 'cpq_order_configurations_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'cpq_order_configurations_customer_idx', properties: ['organizationId', 'tenantId', 'customerId'] })\n@Index({ name: 'cpq_order_configurations_source_quote_idx', properties: ['organizationId', 'tenantId', 'sourceQuoteId'] })\n@Index({ name: 'cpq_order_configurations_status_idx', properties: ['organizationId', 'tenantId', 'cpqStatus'] })\nexport class CpqOrderConfiguration {\n [OptionalProps]?: 'cpqStatus' | 'currencyCode' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'order_id', type: 'uuid' })\n orderId!: string\n\n @Property({ name: 'source_quote_id', type: 'uuid', nullable: true })\n sourceQuoteId?: string | null\n\n @Property({ name: 'customer_id', type: 'uuid' })\n customerId!: string\n\n @Property({ name: 'cpq_status', type: 'text', default: 'draft' })\n cpqStatus: string = 'draft'\n\n @Property({ name: 'currency_code', type: 'text', default: 'USD' })\n currencyCode: string = 'USD'\n\n @Property({ name: 'pricing_summary', type: 'jsonb', nullable: true })\n pricingSummary?: Record<string, unknown> | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'activated_at', type: Date, nullable: true })\n activatedAt?: Date | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqOrderLineConfiguration \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_order_line_configurations' })\n@Unique({ name: 'cpq_olc_order_line_unique', properties: ['organizationId', 'tenantId', 'orderLineId'] })\n@Index({ name: 'cpq_olc_order_config_idx', properties: ['organizationId', 'tenantId', 'orderConfigurationId'] })\n@Index({ name: 'cpq_olc_parent_line_idx', properties: ['organizationId', 'tenantId', 'parentLineId'] })\nexport class CpqOrderLineConfiguration {\n [OptionalProps]?: 'action' | 'configuration' | 'quantity' | 'nrcTotal' | 'mrcTotal' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'order_line_id', type: 'uuid' })\n orderLineId!: string\n\n @Property({ name: 'order_configuration_id', type: 'uuid' })\n orderConfigurationId!: string\n\n @Property({ name: 'offering_id', type: 'uuid', nullable: true })\n offeringId?: string | null\n\n @Property({ name: 'product_id', type: 'uuid', nullable: true })\n productId?: string | null\n\n @Property({ name: 'spec_id', type: 'uuid', nullable: true })\n specId?: string | null\n\n @Property({ type: 'text', default: 'add' })\n action: string = 'add'\n\n @Property({ name: 'parent_line_id', type: 'uuid', nullable: true })\n parentLineId?: string | null\n\n @Property({ name: 'start_date', type: 'date', nullable: true })\n startDate?: Date | null\n\n @Property({ name: 'term_months', type: 'integer', nullable: true })\n termMonths?: number | null\n\n @Property({ name: 'end_date', type: 'date', nullable: true })\n endDate?: Date | null\n\n @Property({ type: 'jsonb', default: '{}' })\n configuration: Record<string, unknown> = {}\n\n @Property({ type: 'integer', default: 1 })\n quantity: number = 1\n\n @Property({ type: 'jsonb', nullable: true })\n charges?: Array<Record<string, unknown>> | null\n\n @Property({ name: 'nrc_total', columnType: 'numeric(18, 4)', default: 0 })\n nrcTotal: string = '0'\n\n @Property({ name: 'mrc_total', columnType: 'numeric(18, 4)', default: 0 })\n mrcTotal: string = '0'\n\n @Property({ name: 'source_quote_line_id', type: 'uuid', nullable: true })\n sourceQuoteLineId?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqQuoteTargetSubscription (XD-250 ARC) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n//\n// Junction between an ARC quote and the subscription(s) it targets.\n// One row per (quote, subscription) pair.\n\n@Entity({ tableName: 'cpq_quote_target_subscriptions' })\n@Unique({\n name: 'cpq_qts_quote_sub_unique',\n properties: ['organizationId', 'tenantId', 'quoteId', 'subscriptionId'],\n})\n@Index({ name: 'cpq_qts_quote_idx', properties: ['organizationId', 'tenantId', 'quoteId'] })\n@Index({\n name: 'cpq_qts_sub_type_idx',\n properties: ['organizationId', 'tenantId', 'subscriptionId', 'quoteType'],\n})\nexport class CpqQuoteTargetSubscription {\n [OptionalProps]?: 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n // FK to CpqQuoteConfiguration.id (intra-module \u2014 could be ORM relation,\n // kept as string id for consistency with the rest of the CPQ schema).\n @Property({ name: 'quote_id', type: 'uuid' })\n quoteId!: string\n\n // FK to CpqInventorySubscription.id (intra-module).\n @Property({ name: 'subscription_id', type: 'uuid' })\n subscriptionId!: string\n\n // MUST mirror parent CpqQuoteConfiguration.quoteType \u2208 {amend, renew, cancel}.\n @Property({ name: 'quote_type', type: 'text' })\n quoteType!: string\n\n // Renew-only: standalone (single target, in-place mutation) or absorb\n // (merge source \u2014 items migrate to a new sub at activation). Null for\n // amend / cancel.\n @Property({ name: 'merge_action', type: 'text', nullable: true })\n mergeAction?: string | null\n\n // Renew-only, populated only when merge_action='standalone'.\n @Property({ name: 'new_term_start', type: 'date', nullable: true })\n newTermStart?: Date | null\n\n @Property({ name: 'new_term_end', type: 'date', nullable: true })\n newTermEnd?: Date | null\n\n @Property({ name: 'new_term_months', type: 'integer', nullable: true })\n newTermMonths?: number | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqSubscriptionChangeLog (XD-250 ARC) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n//\n// Append-only audit record. One row per ARC operation per affected\n// subscription. Drives the \"Change History\" UI tab and downstream\n// billing / notification consumers.\n\n@Entity({ tableName: 'cpq_subscription_change_logs' })\n@Index({\n name: 'cpq_scl_sub_history_idx',\n properties: ['organizationId', 'tenantId', 'subscriptionId', 'createdAt'],\n})\n@Index({ name: 'cpq_scl_source_order_idx', properties: ['sourceOrderId'] })\n@Index({ name: 'cpq_scl_merged_into_idx', properties: ['mergedIntoSubscriptionId'] })\n// Idempotency: re-running activation for the same (order, sub) pair is a no-op.\n// PostgreSQL treats NULLs as distinct in UNIQUE indexes by default, so multiple\n// rows with NULL source_order_id can coexist for the same subscription\n// (hypothetical future non-order-driven entries \u2014 manual reconciliation, etc.).\n@Unique({\n name: 'cpq_scl_order_sub_unique',\n properties: ['sourceOrderId', 'subscriptionId'],\n})\nexport class CpqSubscriptionChangeLog {\n [OptionalProps]?: 'createdAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n // FK to CpqInventorySubscription.id (intra-module).\n @Property({ name: 'subscription_id', type: 'uuid' })\n subscriptionId!: string\n\n // 'amend' | 'renew' | 'cancel' | 'merge-result' | 'merge-source'.\n // Validated in service layer (see CHANGE_LOG_TYPES in services/types.ts).\n @Property({ name: 'change_type', type: 'text' })\n changeType!: string\n\n @Property({ name: 'source_quote_id', type: 'uuid', nullable: true })\n sourceQuoteId?: string | null\n\n @Property({ name: 'source_order_id', type: 'uuid', nullable: true })\n sourceOrderId?: string | null\n\n @Property({ name: 'performed_by_user_id', type: 'uuid', nullable: true })\n performedByUserId?: string | null\n\n @Property({ name: 'effective_at', type: Date })\n effectiveAt: Date = new Date()\n\n // Full state snapshot (subscription + items + assets) before mutation.\n // Null on change_type='merge-result' (M is brand new \u2014 no \"before\").\n @Property({ name: 'before_snapshot', type: 'jsonb', nullable: true })\n beforeSnapshot?: Record<string, unknown> | null\n\n // Full state snapshot after mutation. Null on change_type='merge-source'\n // (source's terminal state is the meaningful \"after\").\n @Property({ name: 'after_snapshot', type: 'jsonb', nullable: true })\n afterSnapshot?: Record<string, unknown> | null\n\n // Summary array: [{ action, lineId, productCode, qty, mrcDelta, ... }]\n @Property({ name: 'line_changes', type: 'jsonb', nullable: true })\n lineChanges?: Array<Record<string, unknown>> | null\n\n // { oldTermStart, newTermStart, oldTermEnd, newTermEnd, oldTermMonths, newTermMonths }\n // Populated for change_type='renew' (standalone) and 'merge-result'.\n @Property({ name: 'term_change', type: 'jsonb', nullable: true })\n termChange?: Record<string, unknown> | null\n\n // Set on change_type='merge-source' rows; points at the new merge sub M.\n @Property({ name: 'merged_into_subscription_id', type: 'uuid', nullable: true })\n mergedIntoSubscriptionId?: string | null\n\n // Set on change_type='merge-result' rows; array of source ids absorbed into M.\n @Property({ name: 'merged_from_subscription_ids', type: 'jsonb', nullable: true })\n mergedFromSubscriptionIds?: string[] | null\n\n // Cancel-only.\n @Property({ name: 'reason_code', type: 'text', nullable: true })\n reasonCode?: string | null\n\n @Property({ name: 'reason_text', type: 'text', nullable: true })\n reasonText?: string | null\n\n @Property({ name: 'etf_amount', type: 'numeric', columnType: 'numeric(18, 4)', nullable: true })\n etfAmount?: string | null\n\n @Property({ name: 'etf_currency', type: 'text', nullable: true })\n etfCurrency?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n // Soft-delete reserved for compliance erasure; runtime ignores deleted rows.\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { OptionalProps } from '@mikro-orm/core'\nimport { Entity, Index, PrimaryKey, Property, Unique } from '@mikro-orm/decorators/legacy'\n\n// \u2500\u2500\u2500 CpqProductSpecification \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n// Additional indexes added in `Migration20260514110000_cpq_list_search_indexes`\n// (hand-written because MikroORM cannot express `gin_trgm_ops` / partial predicates):\n// - GIN trigram on code/name/description (powers list `$ilike` search)\n// - composite (org, tenant, deleted_at, created_at DESC) for default sort path\n@Entity({ tableName: 'cpq_product_specifications' })\n@Unique({ name: 'cpq_product_specifications_product_unique', properties: ['organizationId', 'tenantId', 'productId'] })\n@Unique({ name: 'cpq_product_specifications_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\n@Index({ name: 'cpq_product_specifications_lifecycle_idx', properties: ['organizationId', 'tenantId', 'lifecycleStatus'] })\nexport class CpqProductSpecification {\n [OptionalProps]?: 'specType' | 'isAssetizable' | 'lifecycleStatus' | 'version' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'product_id', type: 'uuid' })\n productId!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'spec_type', type: 'text', default: 'simple' })\n specType: string = 'simple'\n\n @Property({ name: 'is_assetizable', type: 'boolean', default: false })\n isAssetizable: boolean = false\n\n @Property({ name: 'lifecycle_status', type: 'text', default: 'draft' })\n lifecycleStatus: string = 'draft'\n\n @Property({ type: 'integer', default: 1 })\n version: number = 1\n\n @Property({ name: 'effective_from', type: Date, nullable: true })\n effectiveFrom?: Date | null\n\n @Property({ name: 'effective_to', type: Date, nullable: true })\n effectiveTo?: Date | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqProductOffering \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n// Additional indexes added in `Migration20260514110000_cpq_list_search_indexes`\n// (hand-written because MikroORM cannot express `gin_trgm_ops` / partial predicates):\n// - GIN trigram on code/name/description (powers list `$ilike` search)\n// - composite (org, tenant, deleted_at, created_at DESC) for default sort path\n@Entity({ tableName: 'cpq_product_offerings' })\n@Unique({ name: 'cpq_product_offerings_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\n@Index({ name: 'cpq_product_offerings_spec_idx', properties: ['organizationId', 'tenantId', 'specId'] })\n@Index({ name: 'cpq_product_offerings_lifecycle_idx', properties: ['organizationId', 'tenantId', 'lifecycleStatus'] })\nexport class CpqProductOffering {\n [OptionalProps]?: 'offeringType' | 'designTimeValues' | 'lifecycleStatus' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'spec_id', type: 'uuid' })\n specId!: string\n\n @Property({ name: 'catalog_offer_id', type: 'uuid', nullable: true })\n catalogOfferId?: string | null\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'offering_type', type: 'text', default: 'simple' })\n offeringType: string = 'simple'\n\n @Property({ name: 'design_time_values', type: 'jsonb', default: '{}' })\n designTimeValues: Record<string, unknown> = {}\n\n @Property({ name: 'lifecycle_status', type: 'text', default: 'draft' })\n lifecycleStatus: string = 'draft'\n\n @Property({ name: 'effective_from', type: Date, nullable: true })\n effectiveFrom?: Date | null\n\n @Property({ name: 'effective_to', type: Date, nullable: true })\n effectiveTo?: Date | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqProductRelationship \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_product_relationships' })\n@Unique({\n name: 'cpq_product_relationships_unique',\n properties: ['organizationId', 'tenantId', 'sourceSpecId', 'targetSpecId', 'relationshipType'],\n})\n@Index({ name: 'cpq_product_relationships_source_idx', properties: ['organizationId', 'tenantId', 'sourceSpecId'] })\n@Index({ name: 'cpq_product_relationships_target_idx', properties: ['organizationId', 'tenantId', 'targetSpecId'] })\nexport class CpqProductRelationship {\n [OptionalProps]?: 'cardinalityMin' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'source_spec_id', type: 'uuid' })\n sourceSpecId!: string\n\n @Property({ name: 'target_spec_id', type: 'uuid' })\n targetSpecId!: string\n\n @Property({ name: 'relationship_type', type: 'text' })\n relationshipType!: string\n\n @Property({ name: 'cardinality_min', type: 'integer', default: 0 })\n cardinalityMin: number = 0\n\n @Property({ name: 'cardinality_max', type: 'integer', nullable: true })\n cardinalityMax?: number | null\n\n @Property({ type: 'jsonb', nullable: true })\n condition?: Record<string, unknown> | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqBundleSlot \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_bundle_slots' })\n@Index({ name: 'cpq_bundle_slot_spec_idx', properties: ['organizationId', 'tenantId', 'specId'] })\n@Index({ name: 'cpq_bundle_slot_target_idx', properties: ['organizationId', 'tenantId', 'targetSpecId'] })\n@Index({ name: 'cpq_bundle_slot_group_idx', properties: ['organizationId', 'tenantId', 'specId', 'componentGroup'] })\nexport class CpqBundleSlot {\n [OptionalProps]?: 'cardinalityMin' | 'sortOrder' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'spec_id', type: 'uuid' })\n specId!: string\n\n @Property({ name: 'target_spec_id', type: 'uuid' })\n targetSpecId!: string\n\n @Property({ name: 'component_group', type: 'text' })\n componentGroup!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'cardinality_min', type: 'integer', default: 0 })\n cardinalityMin: number = 0\n\n @Property({ name: 'cardinality_max', type: 'integer', nullable: true })\n cardinalityMax?: number | null\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqOfferingComponent \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_offering_components' })\n@Index({ name: 'cpq_off_comp_offering_idx', properties: ['organizationId', 'tenantId', 'offeringId'] })\n@Index({ name: 'cpq_off_comp_slot_idx', properties: ['organizationId', 'tenantId', 'offeringId', 'slotId'] })\n@Index({ name: 'cpq_off_comp_child_idx', properties: ['organizationId', 'tenantId', 'childOfferingId'] })\n@Unique({ name: 'cpq_off_comp_unique', properties: ['organizationId', 'tenantId', 'offeringId', 'childOfferingId'] })\nexport class CpqOfferingComponent {\n [OptionalProps]?: 'isDefault' | 'sortOrder' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'offering_id', type: 'uuid' })\n offeringId!: string\n\n @Property({ name: 'slot_id', type: 'uuid' })\n slotId!: string\n\n @Property({ name: 'child_offering_id', type: 'uuid' })\n childOfferingId!: string\n\n @Property({ name: 'is_default', type: 'boolean', default: false })\n isDefault: boolean = false\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqProductAttribute \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_product_attributes' })\n@Index({ name: 'cpq_product_attributes_scope_idx', properties: ['organizationId', 'tenantId', 'productId'] })\n@Index({ name: 'cpq_product_attributes_spec_idx', properties: ['organizationId', 'tenantId', 'specId'] })\n@Index({ name: 'cpq_product_attributes_spec_resolution_idx', properties: ['organizationId', 'tenantId', 'specId', 'resolutionTime'] })\n@Unique({\n name: 'cpq_product_attributes_code_unique',\n properties: ['organizationId', 'tenantId', 'productId', 'code'],\n})\nexport class CpqProductAttribute {\n [OptionalProps]?: 'resolutionTime' | 'isRequired' | 'isActive' | 'sortOrder' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'product_id', type: 'uuid' })\n productId!: string\n\n @Property({ name: 'spec_id', type: 'uuid', nullable: true })\n specId?: string | null\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ name: 'attribute_type', type: 'text' })\n attributeType!: string\n\n @Property({ name: 'resolution_time', type: 'text', default: 'run_time' })\n resolutionTime: string = 'run_time'\n\n @Property({ type: 'jsonb', nullable: true })\n options?: Array<{ value: string; label: string }> | null\n\n @Property({ type: 'jsonb', nullable: true })\n constraints?: Record<string, unknown> | null\n\n @Property({ name: 'reference_entity', type: 'text', nullable: true })\n referenceEntity?: string | null\n\n @Property({ name: 'reference_filter', type: 'jsonb', nullable: true })\n referenceFilter?: Record<string, unknown> | null\n\n @Property({ name: 'depends_on', type: 'jsonb', nullable: true })\n dependsOn?: Record<string, unknown> | null\n\n @Property({ name: 'default_value', type: 'jsonb', nullable: true })\n defaultValue?: unknown | null\n\n @Property({ name: 'help_text', type: 'text', nullable: true })\n helpText?: string | null\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'is_required', type: 'boolean', default: true })\n isRequired: boolean = true\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqPricingTable \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_pricing_tables' })\n@Index({ name: 'cpq_pricing_tables_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'cpq_pricing_tables_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\nexport class CpqPricingTable {\n [OptionalProps]?: 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'jsonb' })\n dimensions!: Array<{ key: string; label: string }>\n\n @Property({ name: 'price_columns', type: 'jsonb' })\n priceColumns!: Array<{ key: string; label: string }>\n\n @Property({ name: 'currency_code_list', type: 'jsonb' })\n currencyCodeList!: string[]\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqPricingTableEntry \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_pricing_table_entries' })\n@Index({ name: 'cpq_pricing_table_entries_scope_idx', properties: ['organizationId', 'tenantId', 'pricingTableId'] })\n@Index({ name: 'cpq_pricing_table_entries_dim_gin_idx', properties: ['dimensionValues'], type: 'GIN' })\nexport class CpqPricingTableEntry {\n [OptionalProps]?: 'isActive' | 'currencyCode' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'pricing_table_id', type: 'uuid' })\n pricingTableId!: string\n\n @Property({ name: 'dimension_values', type: 'jsonb' })\n dimensionValues!: Record<string, string>\n\n @Property({ name: 'tier_number', type: 'integer', nullable: true })\n tierNumber?: number | null\n\n @Property({ name: 'range_from', type: 'numeric', nullable: true })\n rangeFrom?: string | null\n\n @Property({ name: 'range_to', type: 'numeric', nullable: true })\n rangeTo?: string | null\n\n @Property({ name: 'currency_code', type: 'text', default: 'USD' })\n currencyCode: string = 'USD'\n\n @Property({ type: 'jsonb' })\n prices!: Record<string, number>\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqProductCharge \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_product_charges' })\n@Index({ name: 'cpq_product_charges_scope_idx', properties: ['organizationId', 'tenantId', 'productId'] })\n@Index({ name: 'cpq_product_charges_offering_idx', properties: ['organizationId', 'tenantId', 'offeringId'] })\n@Unique({\n name: 'cpq_product_charges_offering_code_unique',\n properties: ['organizationId', 'tenantId', 'offeringId', 'code'],\n})\nexport class CpqProductCharge {\n [OptionalProps]?: 'isActive' | 'sortOrder' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'product_id', type: 'uuid' })\n productId!: string\n\n @Property({ name: 'offering_id', type: 'uuid', nullable: true })\n offeringId?: string | null\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'charge_type', type: 'text' })\n chargeType!: string\n\n // XD-297: charge \"shape\" split into two orthogonal axes.\n // chargeModel \u2014 how quantity drives the charge: flat | per_unit | volume | tiered\n // pricingMethod \u2014 where the unit price comes from: fixed | table\n // Legacy rows (pre-split) carry the old combined pricingMethod values\n // (flat | per_unit | tiered); the migration backfills both columns and the\n // pricing service normalises any that slip through. chargeModel is nullable\n // so the additive migration is default-safe.\n @Property({ name: 'charge_model', type: 'text', nullable: true })\n chargeModel?: string | null\n\n @Property({ name: 'pricing_method', type: 'text' })\n pricingMethod!: string\n\n @Property({ name: 'pricing_table_id', type: 'uuid', nullable: true })\n pricingTableId?: string | null\n\n @Property({ name: 'price_column_key', type: 'text', nullable: true })\n priceColumnKey?: string | null\n\n @Property({ name: 'fixed_price', type: 'numeric', nullable: true })\n fixedPrice?: string | null\n\n @Property({ name: 'currency_code', type: 'text', nullable: true })\n currencyCode?: string | null\n\n @Property({ name: 'quantity_attribute_code', type: 'text', nullable: true })\n quantityAttributeCode?: string | null\n\n @Property({ name: 'applicability_condition', type: 'jsonb', nullable: true })\n applicabilityCondition?: Record<string, unknown> | null\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqPriceRule \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_price_rules' })\n@Index({ name: 'cpq_price_rules_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'cpq_price_rules_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\n@Index({ name: 'cpq_price_rules_product_idx', properties: ['organizationId', 'tenantId', 'productOfferingId'] })\nexport class CpqPriceRule {\n [OptionalProps]?: 'sortOrder' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'product_offering_id', type: 'uuid', nullable: true })\n productOfferingId?: string | null\n\n @Property({ name: 'rule_type', type: 'text' })\n ruleType!: string\n\n @Property({ type: 'numeric' })\n value!: string\n\n @Property({ name: 'charge_code_filter', type: 'text', nullable: true })\n chargeCodeFilter?: string | null\n\n @Property({ name: 'charge_type_filter', type: 'text', nullable: true })\n chargeTypeFilter?: string | null\n\n @Property({ name: 'applicability_condition', type: 'jsonb', nullable: true })\n applicabilityCondition?: Record<string, unknown> | null\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqQuoteConfiguration \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_quote_configurations' })\n@Unique({ name: 'cpq_quote_configurations_quote_unique', properties: ['organizationId', 'tenantId', 'quoteId'] })\n@Index({ name: 'cpq_quote_configurations_quote_type_idx', properties: ['organizationId', 'tenantId', 'quoteType'] })\nexport class CpqQuoteConfiguration {\n [OptionalProps]?:\n | 'cpqStatus'\n | 'version'\n | 'currencyCode'\n | 'quoteType'\n | 'createdAt'\n | 'updatedAt'\n | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'quote_id', type: 'uuid' })\n quoteId!: string\n\n @Property({ name: 'customer_id', type: 'uuid' })\n customerId!: string\n\n @Property({ name: 'cpq_status', type: 'text', default: 'new' })\n cpqStatus: string = 'new'\n\n @Property({ type: 'integer', default: 1 })\n version: number = 1\n\n @Property({ name: 'parent_quote_id', type: 'uuid', nullable: true })\n parentQuoteId?: string | null\n\n @Property({ name: 'currency_code', type: 'text', default: 'USD' })\n currencyCode: string = 'USD'\n\n @Property({ name: 'quote_context', type: 'jsonb', nullable: true })\n quoteContext?: Record<string, string | number | boolean> | null\n\n @Property({ name: 'validation_result', type: 'jsonb', nullable: true })\n validationResult?: Record<string, unknown> | null\n\n @Property({ name: 'pricing_summary', type: 'jsonb', nullable: true })\n pricingSummary?: Record<string, unknown> | null\n\n // \u2500\u2500 ARC (Amend / Renew / Cancel) \u2014 XD-250 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n @Property({ name: 'quote_type', type: 'text', default: 'new' })\n quoteType: string = 'new'\n\n // Cancel meta \u2014 only meaningful for quoteType='cancel'.\n @Property({ name: 'arc_reason_code', type: 'text', nullable: true })\n arcReasonCode?: string | null\n\n @Property({ name: 'arc_reason_text', type: 'text', nullable: true })\n arcReasonText?: string | null\n\n @Property({ name: 'arc_etf_amount', type: 'numeric', columnType: 'numeric(18, 4)', nullable: true })\n arcEtfAmount?: string | null\n\n @Property({ name: 'arc_etf_currency', type: 'text', nullable: true })\n arcEtfCurrency?: string | null\n\n // Merge meta \u2014 only meaningful for quoteType='renew' with \u22652 absorb targets.\n @Property({ name: 'arc_merge_new_term_start', type: 'date', nullable: true })\n arcMergeNewTermStart?: Date | null\n\n @Property({ name: 'arc_merge_new_term_end', type: 'date', nullable: true })\n arcMergeNewTermEnd?: Date | null\n\n @Property({ name: 'arc_merge_new_term_months', type: 'integer', nullable: true })\n arcMergeNewTermMonths?: number | null\n\n @Property({ name: 'arc_merge_new_sub_code', type: 'text', nullable: true })\n arcMergeNewSubCode?: string | null\n\n @Property({ name: 'arc_merge_new_sub_name', type: 'text', nullable: true })\n arcMergeNewSubName?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqWizardDefinition \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_wizard_definitions' })\n@Unique({ name: 'cpq_wizard_definitions_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\n@Index({ name: 'cpq_wizard_definitions_active_idx', properties: ['organizationId', 'tenantId', 'isActive'] })\n@Index({ name: 'cpq_wizard_definitions_surface_idx', properties: ['organizationId', 'tenantId', 'surface'] })\nexport class CpqWizardDefinition {\n [OptionalProps]?: 'version' | 'surface' | 'isActive' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ type: 'integer', default: 1 })\n version: number = 1\n\n @Property({ type: 'jsonb', default: '[]' })\n steps!: Array<Record<string, unknown>>\n\n @Property({ type: 'jsonb', nullable: true })\n applicability?: Record<string, unknown> | null\n\n @Property({ name: 'params_schema', type: 'jsonb', nullable: true })\n paramsSchema?: Record<string, unknown> | null\n\n @Property({ type: 'text', default: 'backend' })\n surface: string = 'backend'\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqQuoteLineConfiguration \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_quote_line_configurations' })\n@Unique({ name: 'cpq_qlc_quote_line_unique', properties: ['organizationId', 'tenantId', 'quoteLineId'] })\n@Index({ name: 'cpq_qlc_quote_config_idx', properties: ['organizationId', 'tenantId', 'quoteConfigurationId'] })\n@Index({ name: 'cpq_qlc_parent_line_idx', properties: ['organizationId', 'tenantId', 'parentLineId'] })\n@Index({ name: 'cpq_qlc_target_sub_idx', properties: ['organizationId', 'tenantId', 'targetSubscriptionId'] })\nexport class CpqQuoteLineConfiguration {\n [OptionalProps]?: 'action' | 'configuration' | 'quantity' | 'nrcTotal' | 'mrcTotal' | 'isConfigured' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'quote_line_id', type: 'uuid' })\n quoteLineId!: string\n\n @Property({ name: 'quote_configuration_id', type: 'uuid' })\n quoteConfigurationId!: string\n\n @Property({ name: 'offering_id', type: 'uuid', nullable: true })\n offeringId?: string | null\n\n @Property({ name: 'product_id', type: 'uuid', nullable: true })\n productId?: string | null\n\n @Property({ name: 'spec_id', type: 'uuid', nullable: true })\n specId?: string | null\n\n @Property({ type: 'text', default: 'add' })\n action: string = 'add'\n\n @Property({ name: 'parent_line_id', type: 'uuid', nullable: true })\n parentLineId?: string | null\n\n @Property({ name: 'start_date', type: 'date', nullable: true })\n startDate?: Date | null\n\n @Property({ name: 'term_months', type: 'integer', nullable: true })\n termMonths?: number | null\n\n @Property({ name: 'end_date', type: 'date', nullable: true })\n endDate?: Date | null\n\n @Property({ type: 'jsonb', default: '{}' })\n configuration: Record<string, unknown> = {}\n\n @Property({ type: 'integer', default: 1 })\n quantity: number = 1\n\n @Property({ type: 'jsonb', nullable: true })\n charges?: Array<Record<string, unknown>> | null\n\n @Property({ name: 'nrc_total', columnType: 'numeric(18, 4)', default: 0 })\n nrcTotal: string = '0'\n\n @Property({ name: 'mrc_total', columnType: 'numeric(18, 4)', default: 0 })\n mrcTotal: string = '0'\n\n @Property({ name: 'usage_estimates', type: 'jsonb', nullable: true })\n usageEstimates?: Array<{ chargeCode: string; estimatedQuantity: number; estimatedTotal: number }> | null\n\n @Property({ name: 'usage_total_estimated', type: 'numeric', columnType: 'numeric(18, 4)', nullable: true })\n usageTotalEstimated?: string | null\n\n @Property({ name: 'validation_errors', type: 'jsonb', nullable: true })\n validationErrors?: Array<Record<string, unknown>> | null\n\n @Property({ name: 'is_configured', type: 'boolean', default: false })\n isConfigured: boolean = false\n\n // \u2500\u2500 ARC (Amend / Renew / Cancel) \u2014 XD-250 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n // For quote_type='amend'/'cancel'/'renew' standalone: identifies which\n // target subscription the line affects. Null for type='new' and merge\n // mode (M doesn't exist at quote time).\n @Property({ name: 'target_subscription_id', type: 'uuid', nullable: true })\n targetSubscriptionId?: string | null\n\n // Required when action \u2208 {cancel, modify} on amend/renew quotes.\n // Identifies the existing subscription item the line is changing.\n @Property({ name: 'source_subscription_item_id', type: 'uuid', nullable: true })\n sourceSubscriptionItemId?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqInventorySubscription \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_inventory_subscriptions' })\n@Index({ name: 'cpq_inventory_subscriptions_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'cpq_inventory_subscriptions_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\n@Index({ name: 'cpq_inventory_subscriptions_customer_idx', properties: ['organizationId', 'tenantId', 'customerId'] })\n@Index({ name: 'cpq_inventory_subscriptions_status_idx', properties: ['organizationId', 'tenantId', 'status'] })\n@Index({ name: 'cpq_inventory_subscriptions_source_quote_idx', properties: ['organizationId', 'tenantId', 'sourceQuoteId'] })\n@Index({ name: 'cpq_inventory_subscriptions_term_end_idx', properties: ['organizationId', 'tenantId', 'currentTermEnd'] })\n@Index({ name: 'cpq_inventory_subscriptions_merged_into_idx', properties: ['organizationId', 'tenantId', 'mergedIntoSubscriptionId'] })\nexport class CpqInventorySubscription {\n [OptionalProps]?:\n | 'status'\n | 'billingCycle'\n | 'currencyCode'\n | 'mrcAmount'\n | 'nrcAmount'\n | 'autoRenew'\n | 'version'\n | 'createdAt'\n | 'updatedAt'\n | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'customer_id', type: 'uuid' })\n customerId!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ type: 'text', default: 'pending' })\n status: string = 'pending'\n\n @Property({ name: 'billing_cycle', type: 'text', default: 'monthly' })\n billingCycle: string = 'monthly'\n\n @Property({ name: 'currency_code', type: 'text', default: 'USD' })\n currencyCode: string = 'USD'\n\n @Property({ name: 'mrc_amount', columnType: 'numeric(18, 4)', default: 0 })\n mrcAmount: string = '0'\n\n @Property({ name: 'nrc_amount', columnType: 'numeric(18, 4)', default: 0 })\n nrcAmount: string = '0'\n\n @Property({ name: 'start_date', type: 'date', nullable: true })\n startDate?: Date | null\n\n @Property({ name: 'current_term_start', type: 'date', nullable: true })\n currentTermStart?: Date | null\n\n @Property({ name: 'current_term_end', type: 'date', nullable: true })\n currentTermEnd?: Date | null\n\n @Property({ name: 'term_months', type: 'integer', nullable: true })\n termMonths?: number | null\n\n @Property({ name: 'auto_renew', type: 'boolean', default: true })\n autoRenew: boolean = true\n\n @Property({ name: 'activated_at', type: Date, nullable: true })\n activatedAt?: Date | null\n\n @Property({ name: 'suspended_at', type: Date, nullable: true })\n suspendedAt?: Date | null\n\n @Property({ name: 'terminated_at', type: Date, nullable: true })\n terminatedAt?: Date | null\n\n @Property({ name: 'pricing_summary', type: 'jsonb', nullable: true })\n pricingSummary?: Record<string, unknown> | null\n\n @Property({ name: 'source_quote_id', type: 'uuid', nullable: true })\n sourceQuoteId?: string | null\n\n @Property({ name: 'source_order_id', type: 'uuid', nullable: true })\n sourceOrderId?: string | null\n\n // \u2500\u2500 ARC (Amend / Renew / Cancel) \u2014 XD-250 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n // Set when this row is a merge source (terminal status='superseded').\n // Points at the new merge sub M that absorbed this one.\n @Property({ name: 'merged_into_subscription_id', type: 'uuid', nullable: true })\n mergedIntoSubscriptionId?: string | null\n\n // Convenience pointer to most recent CpqSubscriptionChangeLog for fast UI.\n @Property({ name: 'last_change_log_id', type: 'uuid', nullable: true })\n lastChangeLogId?: string | null\n\n // MikroORM optimistic lock \u2014 auto-increments on every UPDATE.\n @Property({ type: 'integer', version: true })\n version: number = 1\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqInventorySubscriptionItem \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_inventory_subscription_items' })\n@Index({ name: 'cpq_inventory_subscription_items_scope_idx', properties: ['organizationId', 'tenantId', 'subscriptionId'] })\n@Index({ name: 'cpq_inventory_subscription_items_customer_idx', properties: ['organizationId', 'tenantId', 'customerId'] })\n@Index({ name: 'cpq_inventory_subscription_items_parent_idx', properties: ['organizationId', 'tenantId', 'parentItemId'] })\n@Index({ name: 'cpq_inventory_subscription_items_status_idx', properties: ['organizationId', 'tenantId', 'status'] })\nexport class CpqInventorySubscriptionItem {\n [OptionalProps]?: 'status' | 'configuration' | 'mrcAmount' | 'nrcAmount' | 'currencyCode' | 'quantity' | 'sortOrder' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'subscription_id', type: 'uuid' })\n subscriptionId!: string\n\n @Property({ name: 'customer_id', type: 'uuid' })\n customerId!: string\n\n @Property({ name: 'parent_item_id', type: 'uuid', nullable: true })\n parentItemId?: string | null\n\n @Property({ name: 'product_id', type: 'uuid', nullable: true })\n productId?: string | null\n\n @Property({ name: 'offering_id', type: 'uuid', nullable: true })\n offeringId?: string | null\n\n @Property({ name: 'spec_id', type: 'uuid', nullable: true })\n specId?: string | null\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', default: 'pending' })\n status: string = 'pending'\n\n @Property({ type: 'jsonb', default: '{}' })\n configuration: Record<string, unknown> = {}\n\n @Property({ type: 'jsonb', nullable: true })\n charges?: Array<Record<string, unknown>> | null\n\n @Property({ name: 'mrc_amount', columnType: 'numeric(18, 4)', default: 0 })\n mrcAmount: string = '0'\n\n @Property({ name: 'nrc_amount', columnType: 'numeric(18, 4)', default: 0 })\n nrcAmount: string = '0'\n\n @Property({ name: 'currency_code', type: 'text', default: 'USD' })\n currencyCode: string = 'USD'\n\n @Property({ type: 'integer', default: 1 })\n quantity: number = 1\n\n @Property({ name: 'capacity_total', type: 'numeric', columnType: 'numeric(18, 4)', nullable: true })\n capacityTotal?: string | null\n\n @Property({ name: 'capacity_used', type: 'numeric', columnType: 'numeric(18, 4)', nullable: true })\n capacityUsed?: string | null\n\n @Property({ name: 'capacity_unit', type: 'text', nullable: true })\n capacityUnit?: string | null\n\n @Property({ name: 'source_quote_line_id', type: 'uuid', nullable: true })\n sourceQuoteLineId?: string | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqInventoryAsset \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_inventory_assets' })\n@Index({ name: 'cpq_inventory_assets_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'cpq_inventory_assets_code_unique', properties: ['organizationId', 'tenantId', 'code'] })\n@Index({ name: 'cpq_inventory_assets_customer_idx', properties: ['organizationId', 'tenantId', 'customerId'] })\n@Index({ name: 'cpq_inventory_assets_status_idx', properties: ['organizationId', 'tenantId', 'status'] })\n@Index({ name: 'cpq_inventory_assets_subscription_idx', properties: ['organizationId', 'tenantId', 'subscriptionId'] })\n@Index({ name: 'cpq_inventory_assets_item_idx', properties: ['organizationId', 'tenantId', 'subscriptionItemId'] })\nexport class CpqInventoryAsset {\n [OptionalProps]?: 'status' | 'assetType' | 'currencyCode' | 'purchasePrice' | 'quantity' | 'configuration' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'customer_id', type: 'uuid' })\n customerId!: string\n\n @Property({ name: 'subscription_id', type: 'uuid', nullable: true })\n subscriptionId?: string | null\n\n @Property({ name: 'subscription_item_id', type: 'uuid', nullable: true })\n subscriptionItemId?: string | null\n\n @Property({ name: 'product_id', type: 'uuid', nullable: true })\n productId?: string | null\n\n @Property({ name: 'offering_id', type: 'uuid', nullable: true })\n offeringId?: string | null\n\n @Property({ name: 'spec_id', type: 'uuid', nullable: true })\n specId?: string | null\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ type: 'text', default: 'pending' })\n status: string = 'pending'\n\n @Property({ name: 'asset_type', type: 'text', default: 'one_time' })\n assetType: string = 'one_time'\n\n @Property({ name: 'currency_code', type: 'text', default: 'USD' })\n currencyCode: string = 'USD'\n\n @Property({ name: 'purchase_price', columnType: 'numeric(18, 4)', default: 0 })\n purchasePrice: string = '0'\n\n @Property({ type: 'integer', default: 1 })\n quantity: number = 1\n\n @Property({ name: 'purchase_date', type: 'date', nullable: true })\n purchaseDate?: Date | null\n\n @Property({ name: 'delivery_date', type: 'date', nullable: true })\n deliveryDate?: Date | null\n\n @Property({ type: 'jsonb', default: '{}' })\n configuration: Record<string, unknown> = {}\n\n @Property({ type: 'jsonb', nullable: true })\n charges?: Array<Record<string, unknown>> | null\n\n @Property({ name: 'source_quote_id', type: 'uuid', nullable: true })\n sourceQuoteId?: string | null\n\n @Property({ name: 'source_order_id', type: 'uuid', nullable: true })\n sourceOrderId?: string | null\n\n @Property({ name: 'source_quote_line_id', type: 'uuid', nullable: true })\n sourceQuoteLineId?: string | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqOrderConfiguration \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_order_configurations' })\n@Unique({ name: 'cpq_order_configurations_order_unique', properties: ['organizationId', 'tenantId', 'orderId'] })\n@Index({ name: 'cpq_order_configurations_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'cpq_order_configurations_customer_idx', properties: ['organizationId', 'tenantId', 'customerId'] })\n@Index({ name: 'cpq_order_configurations_source_quote_idx', properties: ['organizationId', 'tenantId', 'sourceQuoteId'] })\n@Index({ name: 'cpq_order_configurations_status_idx', properties: ['organizationId', 'tenantId', 'cpqStatus'] })\nexport class CpqOrderConfiguration {\n [OptionalProps]?: 'cpqStatus' | 'currencyCode' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'order_id', type: 'uuid' })\n orderId!: string\n\n @Property({ name: 'source_quote_id', type: 'uuid', nullable: true })\n sourceQuoteId?: string | null\n\n @Property({ name: 'customer_id', type: 'uuid' })\n customerId!: string\n\n @Property({ name: 'cpq_status', type: 'text', default: 'draft' })\n cpqStatus: string = 'draft'\n\n @Property({ name: 'currency_code', type: 'text', default: 'USD' })\n currencyCode: string = 'USD'\n\n @Property({ name: 'pricing_summary', type: 'jsonb', nullable: true })\n pricingSummary?: Record<string, unknown> | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'activated_at', type: Date, nullable: true })\n activatedAt?: Date | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqOrderLineConfiguration \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n@Entity({ tableName: 'cpq_order_line_configurations' })\n@Unique({ name: 'cpq_olc_order_line_unique', properties: ['organizationId', 'tenantId', 'orderLineId'] })\n@Index({ name: 'cpq_olc_order_config_idx', properties: ['organizationId', 'tenantId', 'orderConfigurationId'] })\n@Index({ name: 'cpq_olc_parent_line_idx', properties: ['organizationId', 'tenantId', 'parentLineId'] })\nexport class CpqOrderLineConfiguration {\n [OptionalProps]?: 'action' | 'configuration' | 'quantity' | 'nrcTotal' | 'mrcTotal' | 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'order_line_id', type: 'uuid' })\n orderLineId!: string\n\n @Property({ name: 'order_configuration_id', type: 'uuid' })\n orderConfigurationId!: string\n\n @Property({ name: 'offering_id', type: 'uuid', nullable: true })\n offeringId?: string | null\n\n @Property({ name: 'product_id', type: 'uuid', nullable: true })\n productId?: string | null\n\n @Property({ name: 'spec_id', type: 'uuid', nullable: true })\n specId?: string | null\n\n @Property({ type: 'text', default: 'add' })\n action: string = 'add'\n\n @Property({ name: 'parent_line_id', type: 'uuid', nullable: true })\n parentLineId?: string | null\n\n @Property({ name: 'start_date', type: 'date', nullable: true })\n startDate?: Date | null\n\n @Property({ name: 'term_months', type: 'integer', nullable: true })\n termMonths?: number | null\n\n @Property({ name: 'end_date', type: 'date', nullable: true })\n endDate?: Date | null\n\n @Property({ type: 'jsonb', default: '{}' })\n configuration: Record<string, unknown> = {}\n\n @Property({ type: 'integer', default: 1 })\n quantity: number = 1\n\n @Property({ type: 'jsonb', nullable: true })\n charges?: Array<Record<string, unknown>> | null\n\n @Property({ name: 'nrc_total', columnType: 'numeric(18, 4)', default: 0 })\n nrcTotal: string = '0'\n\n @Property({ name: 'mrc_total', columnType: 'numeric(18, 4)', default: 0 })\n mrcTotal: string = '0'\n\n @Property({ name: 'source_quote_line_id', type: 'uuid', nullable: true })\n sourceQuoteLineId?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqQuoteTargetSubscription (XD-250 ARC) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n//\n// Junction between an ARC quote and the subscription(s) it targets.\n// One row per (quote, subscription) pair.\n\n@Entity({ tableName: 'cpq_quote_target_subscriptions' })\n@Unique({\n name: 'cpq_qts_quote_sub_unique',\n properties: ['organizationId', 'tenantId', 'quoteId', 'subscriptionId'],\n})\n@Index({ name: 'cpq_qts_quote_idx', properties: ['organizationId', 'tenantId', 'quoteId'] })\n@Index({\n name: 'cpq_qts_sub_type_idx',\n properties: ['organizationId', 'tenantId', 'subscriptionId', 'quoteType'],\n})\nexport class CpqQuoteTargetSubscription {\n [OptionalProps]?: 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n // FK to CpqQuoteConfiguration.id (intra-module \u2014 could be ORM relation,\n // kept as string id for consistency with the rest of the CPQ schema).\n @Property({ name: 'quote_id', type: 'uuid' })\n quoteId!: string\n\n // FK to CpqInventorySubscription.id (intra-module).\n @Property({ name: 'subscription_id', type: 'uuid' })\n subscriptionId!: string\n\n // MUST mirror parent CpqQuoteConfiguration.quoteType \u2208 {amend, renew, cancel}.\n @Property({ name: 'quote_type', type: 'text' })\n quoteType!: string\n\n // Renew-only: standalone (single target, in-place mutation) or absorb\n // (merge source \u2014 items migrate to a new sub at activation). Null for\n // amend / cancel.\n @Property({ name: 'merge_action', type: 'text', nullable: true })\n mergeAction?: string | null\n\n // Renew-only, populated only when merge_action='standalone'.\n @Property({ name: 'new_term_start', type: 'date', nullable: true })\n newTermStart?: Date | null\n\n @Property({ name: 'new_term_end', type: 'date', nullable: true })\n newTermEnd?: Date | null\n\n @Property({ name: 'new_term_months', type: 'integer', nullable: true })\n newTermMonths?: number | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// \u2500\u2500\u2500 CpqSubscriptionChangeLog (XD-250 ARC) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n//\n// Append-only audit record. One row per ARC operation per affected\n// subscription. Drives the \"Change History\" UI tab and downstream\n// billing / notification consumers.\n\n@Entity({ tableName: 'cpq_subscription_change_logs' })\n@Index({\n name: 'cpq_scl_sub_history_idx',\n properties: ['organizationId', 'tenantId', 'subscriptionId', 'createdAt'],\n})\n@Index({ name: 'cpq_scl_source_order_idx', properties: ['sourceOrderId'] })\n@Index({ name: 'cpq_scl_merged_into_idx', properties: ['mergedIntoSubscriptionId'] })\n// Idempotency: re-running activation for the same (order, sub) pair is a no-op.\n// PostgreSQL treats NULLs as distinct in UNIQUE indexes by default, so multiple\n// rows with NULL source_order_id can coexist for the same subscription\n// (hypothetical future non-order-driven entries \u2014 manual reconciliation, etc.).\n@Unique({\n name: 'cpq_scl_order_sub_unique',\n properties: ['sourceOrderId', 'subscriptionId'],\n})\nexport class CpqSubscriptionChangeLog {\n [OptionalProps]?: 'createdAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n // FK to CpqInventorySubscription.id (intra-module).\n @Property({ name: 'subscription_id', type: 'uuid' })\n subscriptionId!: string\n\n // 'amend' | 'renew' | 'cancel' | 'merge-result' | 'merge-source'.\n // Validated in service layer (see CHANGE_LOG_TYPES in services/types.ts).\n @Property({ name: 'change_type', type: 'text' })\n changeType!: string\n\n @Property({ name: 'source_quote_id', type: 'uuid', nullable: true })\n sourceQuoteId?: string | null\n\n @Property({ name: 'source_order_id', type: 'uuid', nullable: true })\n sourceOrderId?: string | null\n\n @Property({ name: 'performed_by_user_id', type: 'uuid', nullable: true })\n performedByUserId?: string | null\n\n @Property({ name: 'effective_at', type: Date })\n effectiveAt: Date = new Date()\n\n // Full state snapshot (subscription + items + assets) before mutation.\n // Null on change_type='merge-result' (M is brand new \u2014 no \"before\").\n @Property({ name: 'before_snapshot', type: 'jsonb', nullable: true })\n beforeSnapshot?: Record<string, unknown> | null\n\n // Full state snapshot after mutation. Null on change_type='merge-source'\n // (source's terminal state is the meaningful \"after\").\n @Property({ name: 'after_snapshot', type: 'jsonb', nullable: true })\n afterSnapshot?: Record<string, unknown> | null\n\n // Summary array: [{ action, lineId, productCode, qty, mrcDelta, ... }]\n @Property({ name: 'line_changes', type: 'jsonb', nullable: true })\n lineChanges?: Array<Record<string, unknown>> | null\n\n // { oldTermStart, newTermStart, oldTermEnd, newTermEnd, oldTermMonths, newTermMonths }\n // Populated for change_type='renew' (standalone) and 'merge-result'.\n @Property({ name: 'term_change', type: 'jsonb', nullable: true })\n termChange?: Record<string, unknown> | null\n\n // Set on change_type='merge-source' rows; points at the new merge sub M.\n @Property({ name: 'merged_into_subscription_id', type: 'uuid', nullable: true })\n mergedIntoSubscriptionId?: string | null\n\n // Set on change_type='merge-result' rows; array of source ids absorbed into M.\n @Property({ name: 'merged_from_subscription_ids', type: 'jsonb', nullable: true })\n mergedFromSubscriptionIds?: string[] | null\n\n // Cancel-only.\n @Property({ name: 'reason_code', type: 'text', nullable: true })\n reasonCode?: string | null\n\n @Property({ name: 'reason_text', type: 'text', nullable: true })\n reasonText?: string | null\n\n @Property({ name: 'etf_amount', type: 'numeric', columnType: 'numeric(18, 4)', nullable: true })\n etfAmount?: string | null\n\n @Property({ name: 'etf_currency', type: 'text', nullable: true })\n etfCurrency?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n // Soft-delete reserved for compliance erasure; runtime ignores deleted rows.\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }