@open-mercato/core 0.4.5-develop-0f0e676c72 → 0.4.5-develop-e694581d9f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/entities/customer_deal/index.js +4 -0
- package/dist/generated/entities/customer_deal/index.js.map +2 -2
- package/dist/generated/entities/customer_pipeline/index.js +17 -0
- package/dist/generated/entities/customer_pipeline/index.js.map +7 -0
- package/dist/generated/entities/customer_pipeline_stage/index.js +19 -0
- package/dist/generated/entities/customer_pipeline_stage/index.js.map +7 -0
- package/dist/generated/entities.ids.generated.js +2 -0
- package/dist/generated/entities.ids.generated.js.map +2 -2
- package/dist/generated/entity-fields-registry.js +4 -0
- package/dist/generated/entity-fields-registry.js.map +2 -2
- package/dist/modules/customers/acl.js +2 -0
- package/dist/modules/customers/acl.js.map +2 -2
- package/dist/modules/customers/api/deals/[id]/route.js +4 -0
- package/dist/modules/customers/api/deals/[id]/route.js.map +2 -2
- package/dist/modules/customers/api/deals/route.js +12 -0
- package/dist/modules/customers/api/deals/route.js.map +2 -2
- package/dist/modules/customers/api/dictionaries/[kind]/route.js +20 -1
- package/dist/modules/customers/api/dictionaries/[kind]/route.js.map +2 -2
- package/dist/modules/customers/api/pipeline-stages/reorder/route.js +69 -0
- package/dist/modules/customers/api/pipeline-stages/reorder/route.js.map +7 -0
- package/dist/modules/customers/api/pipeline-stages/route.js +275 -0
- package/dist/modules/customers/api/pipeline-stages/route.js.map +7 -0
- package/dist/modules/customers/api/pipelines/route.js +245 -0
- package/dist/modules/customers/api/pipelines/route.js.map +7 -0
- package/dist/modules/customers/backend/config/customers/page.js +2 -0
- package/dist/modules/customers/backend/config/customers/page.js.map +2 -2
- package/dist/modules/customers/backend/config/customers/pipeline-stages/page.js +439 -0
- package/dist/modules/customers/backend/config/customers/pipeline-stages/page.js.map +7 -0
- package/dist/modules/customers/backend/config/customers/pipeline-stages/page.meta.js +17 -0
- package/dist/modules/customers/backend/config/customers/pipeline-stages/page.meta.js.map +7 -0
- package/dist/modules/customers/backend/customers/deals/[id]/page.js +19 -1
- package/dist/modules/customers/backend/customers/deals/[id]/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/page.js +35 -1
- package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/pipeline/page.js +102 -74
- package/dist/modules/customers/backend/customers/deals/pipeline/page.js.map +2 -2
- package/dist/modules/customers/cli.js +28 -2
- package/dist/modules/customers/cli.js.map +2 -2
- package/dist/modules/customers/commands/deals.js +34 -2
- package/dist/modules/customers/commands/deals.js.map +2 -2
- package/dist/modules/customers/commands/index.js +2 -0
- package/dist/modules/customers/commands/index.js.map +2 -2
- package/dist/modules/customers/commands/pipeline-stages.js +126 -0
- package/dist/modules/customers/commands/pipeline-stages.js.map +7 -0
- package/dist/modules/customers/commands/pipelines.js +87 -0
- package/dist/modules/customers/commands/pipelines.js.map +7 -0
- package/dist/modules/customers/components/DictionarySettings.js +0 -5
- package/dist/modules/customers/components/DictionarySettings.js.map +2 -2
- package/dist/modules/customers/components/PipelineSettings.js +474 -0
- package/dist/modules/customers/components/PipelineSettings.js.map +7 -0
- package/dist/modules/customers/components/detail/DealForm.js +84 -12
- package/dist/modules/customers/components/detail/DealForm.js.map +2 -2
- package/dist/modules/customers/data/entities.js +78 -0
- package/dist/modules/customers/data/entities.js.map +2 -2
- package/dist/modules/customers/data/validators.js +44 -0
- package/dist/modules/customers/data/validators.js.map +2 -2
- package/dist/modules/customers/migrations/Migration20260218191730.js +77 -0
- package/dist/modules/customers/migrations/Migration20260218191730.js.map +7 -0
- package/dist/modules/customers/setup.js +7 -3
- package/dist/modules/customers/setup.js.map +2 -2
- package/dist/modules/translations/api/[entityType]/[entityId]/route.js +46 -44
- package/dist/modules/translations/api/[entityType]/[entityId]/route.js.map +2 -2
- package/dist/modules/translations/api/context.js +10 -1
- package/dist/modules/translations/api/context.js.map +2 -2
- package/dist/modules/translations/commands/index.js +2 -0
- package/dist/modules/translations/commands/index.js.map +7 -0
- package/dist/modules/translations/commands/translations.js +160 -0
- package/dist/modules/translations/commands/translations.js.map +7 -0
- package/dist/modules/translations/index.js +1 -0
- package/dist/modules/translations/index.js.map +2 -2
- package/dist/modules/workflows/migrations/Migration20260222205305.js +14 -0
- package/dist/modules/workflows/migrations/Migration20260222205305.js.map +7 -0
- package/generated/entities/customer_deal/index.ts +2 -0
- package/generated/entities/customer_pipeline/index.ts +7 -0
- package/generated/entities/customer_pipeline_stage/index.ts +8 -0
- package/generated/entities.ids.generated.ts +2 -0
- package/generated/entity-fields-registry.ts +4 -0
- package/package.json +2 -2
- package/src/modules/customers/acl.ts +2 -0
- package/src/modules/customers/api/deals/[id]/route.ts +4 -0
- package/src/modules/customers/api/deals/route.ts +12 -0
- package/src/modules/customers/api/dictionaries/[kind]/route.ts +21 -1
- package/src/modules/customers/api/pipeline-stages/reorder/route.ts +71 -0
- package/src/modules/customers/api/pipeline-stages/route.ts +296 -0
- package/src/modules/customers/api/pipelines/route.ts +261 -0
- package/src/modules/customers/backend/config/customers/page.tsx +2 -0
- package/src/modules/customers/backend/config/customers/pipeline-stages/page.meta.ts +13 -0
- package/src/modules/customers/backend/config/customers/pipeline-stages/page.tsx +512 -0
- package/src/modules/customers/backend/customers/deals/[id]/page.tsx +21 -1
- package/src/modules/customers/backend/customers/deals/page.tsx +33 -1
- package/src/modules/customers/backend/customers/deals/pipeline/page.tsx +119 -79
- package/src/modules/customers/cli.ts +29 -1
- package/src/modules/customers/commands/deals.ts +44 -1
- package/src/modules/customers/commands/index.ts +2 -0
- package/src/modules/customers/commands/pipeline-stages.ts +156 -0
- package/src/modules/customers/commands/pipelines.ts +105 -0
- package/src/modules/customers/components/DictionarySettings.tsx +0 -5
- package/src/modules/customers/components/PipelineSettings.tsx +570 -0
- package/src/modules/customers/components/detail/DealForm.tsx +89 -11
- package/src/modules/customers/data/entities.ts +64 -0
- package/src/modules/customers/data/validators.ts +57 -0
- package/src/modules/customers/i18n/de.json +4 -0
- package/src/modules/customers/i18n/en.json +4 -0
- package/src/modules/customers/i18n/es.json +4 -0
- package/src/modules/customers/i18n/pl.json +5 -1
- package/src/modules/customers/migrations/Migration20260218191730.ts +84 -0
- package/src/modules/customers/setup.ts +5 -1
- package/src/modules/translations/api/[entityType]/[entityId]/route.ts +65 -60
- package/src/modules/translations/api/context.ts +12 -0
- package/src/modules/translations/commands/index.ts +1 -0
- package/src/modules/translations/commands/translations.ts +253 -0
- package/src/modules/translations/index.ts +1 -0
- package/src/modules/workflows/migrations/Migration20260222205305.ts +13 -0
|
@@ -308,6 +308,12 @@ __decorateClass([
|
|
|
308
308
|
__decorateClass([
|
|
309
309
|
Property({ name: "pipeline_stage", type: "text", nullable: true })
|
|
310
310
|
], CustomerDeal.prototype, "pipelineStage", 2);
|
|
311
|
+
__decorateClass([
|
|
312
|
+
Property({ name: "pipeline_id", type: "uuid", nullable: true })
|
|
313
|
+
], CustomerDeal.prototype, "pipelineId", 2);
|
|
314
|
+
__decorateClass([
|
|
315
|
+
Property({ name: "pipeline_stage_id", type: "uuid", nullable: true })
|
|
316
|
+
], CustomerDeal.prototype, "pipelineStageId", 2);
|
|
311
317
|
__decorateClass([
|
|
312
318
|
Property({ name: "value_amount", type: "numeric", precision: 14, scale: 2, nullable: true })
|
|
313
319
|
], CustomerDeal.prototype, "valueAmount", 2);
|
|
@@ -725,6 +731,76 @@ CustomerDictionaryEntry = __decorateClass([
|
|
|
725
731
|
Unique({ name: "customer_dictionary_entries_unique", properties: ["organizationId", "tenantId", "kind", "normalizedValue"] })
|
|
726
732
|
], CustomerDictionaryEntry);
|
|
727
733
|
OptionalProps;
|
|
734
|
+
let CustomerPipeline = class {
|
|
735
|
+
constructor() {
|
|
736
|
+
this.isDefault = false;
|
|
737
|
+
this.createdAt = /* @__PURE__ */ new Date();
|
|
738
|
+
this.updatedAt = /* @__PURE__ */ new Date();
|
|
739
|
+
}
|
|
740
|
+
};
|
|
741
|
+
__decorateClass([
|
|
742
|
+
PrimaryKey({ type: "uuid", defaultRaw: "gen_random_uuid()" })
|
|
743
|
+
], CustomerPipeline.prototype, "id", 2);
|
|
744
|
+
__decorateClass([
|
|
745
|
+
Property({ name: "organization_id", type: "uuid" })
|
|
746
|
+
], CustomerPipeline.prototype, "organizationId", 2);
|
|
747
|
+
__decorateClass([
|
|
748
|
+
Property({ name: "tenant_id", type: "uuid" })
|
|
749
|
+
], CustomerPipeline.prototype, "tenantId", 2);
|
|
750
|
+
__decorateClass([
|
|
751
|
+
Property({ type: "text" })
|
|
752
|
+
], CustomerPipeline.prototype, "name", 2);
|
|
753
|
+
__decorateClass([
|
|
754
|
+
Property({ name: "is_default", type: "boolean", default: false })
|
|
755
|
+
], CustomerPipeline.prototype, "isDefault", 2);
|
|
756
|
+
__decorateClass([
|
|
757
|
+
Property({ name: "created_at", type: Date, onCreate: () => /* @__PURE__ */ new Date() })
|
|
758
|
+
], CustomerPipeline.prototype, "createdAt", 2);
|
|
759
|
+
__decorateClass([
|
|
760
|
+
Property({ name: "updated_at", type: Date, onUpdate: () => /* @__PURE__ */ new Date() })
|
|
761
|
+
], CustomerPipeline.prototype, "updatedAt", 2);
|
|
762
|
+
CustomerPipeline = __decorateClass([
|
|
763
|
+
Entity({ tableName: "customer_pipelines" }),
|
|
764
|
+
Index({ name: "customer_pipelines_org_tenant_idx", properties: ["organizationId", "tenantId"] })
|
|
765
|
+
], CustomerPipeline);
|
|
766
|
+
OptionalProps;
|
|
767
|
+
let CustomerPipelineStage = class {
|
|
768
|
+
constructor() {
|
|
769
|
+
this.order = 0;
|
|
770
|
+
this.createdAt = /* @__PURE__ */ new Date();
|
|
771
|
+
this.updatedAt = /* @__PURE__ */ new Date();
|
|
772
|
+
}
|
|
773
|
+
};
|
|
774
|
+
__decorateClass([
|
|
775
|
+
PrimaryKey({ type: "uuid", defaultRaw: "gen_random_uuid()" })
|
|
776
|
+
], CustomerPipelineStage.prototype, "id", 2);
|
|
777
|
+
__decorateClass([
|
|
778
|
+
Property({ name: "organization_id", type: "uuid" })
|
|
779
|
+
], CustomerPipelineStage.prototype, "organizationId", 2);
|
|
780
|
+
__decorateClass([
|
|
781
|
+
Property({ name: "tenant_id", type: "uuid" })
|
|
782
|
+
], CustomerPipelineStage.prototype, "tenantId", 2);
|
|
783
|
+
__decorateClass([
|
|
784
|
+
Property({ name: "pipeline_id", type: "uuid" })
|
|
785
|
+
], CustomerPipelineStage.prototype, "pipelineId", 2);
|
|
786
|
+
__decorateClass([
|
|
787
|
+
Property({ name: "name", type: "text" })
|
|
788
|
+
], CustomerPipelineStage.prototype, "label", 2);
|
|
789
|
+
__decorateClass([
|
|
790
|
+
Property({ name: "position", type: "int", default: 0 })
|
|
791
|
+
], CustomerPipelineStage.prototype, "order", 2);
|
|
792
|
+
__decorateClass([
|
|
793
|
+
Property({ name: "created_at", type: Date, onCreate: () => /* @__PURE__ */ new Date() })
|
|
794
|
+
], CustomerPipelineStage.prototype, "createdAt", 2);
|
|
795
|
+
__decorateClass([
|
|
796
|
+
Property({ name: "updated_at", type: Date, onUpdate: () => /* @__PURE__ */ new Date() })
|
|
797
|
+
], CustomerPipelineStage.prototype, "updatedAt", 2);
|
|
798
|
+
CustomerPipelineStage = __decorateClass([
|
|
799
|
+
Entity({ tableName: "customer_pipeline_stages" }),
|
|
800
|
+
Index({ name: "customer_pipeline_stages_pipeline_position_idx", properties: ["pipelineId", "order"] }),
|
|
801
|
+
Index({ name: "customer_pipeline_stages_org_tenant_idx", properties: ["organizationId", "tenantId"] })
|
|
802
|
+
], CustomerPipelineStage);
|
|
803
|
+
OptionalProps;
|
|
728
804
|
let CustomerTodoLink = class {
|
|
729
805
|
constructor() {
|
|
730
806
|
this.todoSource = "example:todo";
|
|
@@ -772,6 +848,8 @@ export {
|
|
|
772
848
|
CustomerDictionaryEntry,
|
|
773
849
|
CustomerEntity,
|
|
774
850
|
CustomerPersonProfile,
|
|
851
|
+
CustomerPipeline,
|
|
852
|
+
CustomerPipelineStage,
|
|
775
853
|
CustomerSettings,
|
|
776
854
|
CustomerTag,
|
|
777
855
|
CustomerTagAssignment,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/modules/customers/data/entities.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n Entity,\n PrimaryKey,\n Property,\n Index,\n Unique,\n OneToOne,\n OneToMany,\n ManyToOne,\n Collection,\n OptionalProps,\n} from '@mikro-orm/core'\n\nexport type CustomerEntityKind = 'person' | 'company'\nexport type CustomerAddressFormat = 'line_first' | 'street_first'\n\n@Entity({ tableName: 'customer_entities' })\n@Index({ name: 'customer_entities_org_tenant_kind_idx', properties: ['organizationId', 'tenantId', 'kind'] })\n@Index({\n name: 'idx_ce_tenant_org_person_id',\n expression:\n `create index \"idx_ce_tenant_org_person_id\" on \"customer_entities\" (\"tenant_id\", \"organization_id\", \"id\") where deleted_at is null and kind = 'person'`,\n})\n@Index({\n name: 'idx_ce_tenant_org_company_id',\n expression:\n `create index \"idx_ce_tenant_org_company_id\" on \"customer_entities\" (\"tenant_id\", \"organization_id\", \"id\") where deleted_at is null and kind = 'company'`,\n})\n@Index({\n name: 'idx_ce_tenant_company_id',\n expression:\n `create index \"idx_ce_tenant_company_id\" on \"customer_entities\" (\"tenant_id\", \"id\") where deleted_at is null and kind = 'company'`,\n})\n@Index({\n name: 'idx_ce_tenant_person_id',\n expression:\n `create index \"idx_ce_tenant_person_id\" on \"customer_entities\" (\"tenant_id\", \"id\") where deleted_at is null and kind = 'person'`,\n})\nexport class CustomerEntity {\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 kind!: CustomerEntityKind\n\n @Property({ name: 'display_name', type: 'text' })\n displayName!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'owner_user_id', type: 'uuid', nullable: true })\n ownerUserId?: string | null\n\n @Property({ name: 'primary_email', type: 'text', nullable: true })\n primaryEmail?: string | null\n\n @Property({ name: 'primary_phone', type: 'text', nullable: true })\n primaryPhone?: string | null\n\n @Property({ name: 'status', type: 'text', nullable: true })\n status?: string | null\n\n @Property({ name: 'lifecycle_stage', type: 'text', nullable: true })\n lifecycleStage?: string | null\n\n @Property({ name: 'source', type: 'text', nullable: true })\n source?: string | null\n\n @Property({ name: 'next_interaction_at', type: Date, nullable: true })\n nextInteractionAt?: Date | null\n\n @Property({ name: 'next_interaction_name', type: 'text', nullable: true })\n nextInteractionName?: string | null\n\n @Property({ name: 'next_interaction_ref_id', type: 'text', nullable: true })\n nextInteractionRefId?: string | null\n\n @Property({ name: 'next_interaction_icon', type: 'text', nullable: true })\n nextInteractionIcon?: string | null\n\n @Property({ name: 'next_interaction_color', type: 'text', nullable: true })\n nextInteractionColor?: string | 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 @OneToOne(() => CustomerPersonProfile, (profile) => profile.entity, { nullable: true, mappedBy: 'entity' })\n personProfile?: CustomerPersonProfile | null\n\n @OneToOne(() => CustomerCompanyProfile, (profile) => profile.entity, { nullable: true, mappedBy: 'entity' })\n companyProfile?: CustomerCompanyProfile | null\n\n @OneToMany(() => CustomerAddress, (address) => address.entity)\n addresses = new Collection<CustomerAddress>(this)\n\n @OneToMany(() => CustomerActivity, (activity) => activity.entity)\n activities = new Collection<CustomerActivity>(this)\n\n @OneToMany(() => CustomerComment, (comment) => comment.entity)\n comments = new Collection<CustomerComment>(this)\n\n @OneToMany(() => CustomerTagAssignment, (assignment) => assignment.entity)\n tagAssignments = new Collection<CustomerTagAssignment>(this)\n\n @OneToMany(() => CustomerTodoLink, (link) => link.entity)\n todoLinks = new Collection<CustomerTodoLink>(this)\n\n @OneToMany(() => CustomerDealPersonLink, (link) => link.person)\n dealPersonLinks = new Collection<CustomerDealPersonLink>(this)\n\n @OneToMany(() => CustomerDealCompanyLink, (link) => link.company)\n dealCompanyLinks = new Collection<CustomerDealCompanyLink>(this)\n\n @OneToMany(() => CustomerPersonProfile, (person) => person.company)\n companyMembers = new Collection<CustomerPersonProfile>(this)\n}\n\n@Entity({ tableName: 'customer_people' })\n@Index({ name: 'customer_people_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'idx_customer_people_entity_id',\n expression:\n `create index \"idx_customer_people_entity_id\" on \"customer_people\" (\"entity_id\")`,\n})\nexport class CustomerPersonProfile {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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: 'first_name', type: 'text', nullable: true })\n firstName?: string | null\n\n @Property({ name: 'last_name', type: 'text', nullable: true })\n lastName?: string | null\n\n @Property({ name: 'preferred_name', type: 'text', nullable: true })\n preferredName?: string | null\n\n @Property({ name: 'job_title', type: 'text', nullable: true })\n jobTitle?: string | null\n\n @Property({ name: 'department', type: 'text', nullable: true })\n department?: string | null\n\n @Property({ name: 'seniority', type: 'text', nullable: true })\n seniority?: string | null\n\n @Property({ name: 'timezone', type: 'text', nullable: true })\n timezone?: string | null\n\n @Property({ name: 'linked_in_url', type: 'text', nullable: true })\n linkedInUrl?: string | null\n\n @Property({ name: 'twitter_url', type: 'text', nullable: true })\n twitterUrl?: 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 @OneToOne(() => CustomerEntity, (entity) => entity.personProfile, {\n fieldName: 'entity_id',\n owner: true,\n })\n entity!: CustomerEntity\n\n @ManyToOne(() => CustomerEntity, {\n fieldName: 'company_entity_id',\n nullable: true,\n })\n company?: CustomerEntity | null\n}\n\n@Entity({ tableName: 'customer_companies' })\n@Index({ name: 'customer_companies_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'idx_customer_companies_entity_id',\n expression:\n `create index \"idx_customer_companies_entity_id\" on \"customer_companies\" (\"entity_id\")`,\n})\nexport class CustomerCompanyProfile {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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: 'legal_name', type: 'text', nullable: true })\n legalName?: string | null\n\n @Property({ name: 'brand_name', type: 'text', nullable: true })\n brandName?: string | null\n\n @Property({ name: 'domain', type: 'text', nullable: true })\n domain?: string | null\n\n @Property({ name: 'website_url', type: 'text', nullable: true })\n websiteUrl?: string | null\n\n @Property({ name: 'industry', type: 'text', nullable: true })\n industry?: string | null\n\n @Property({ name: 'size_bucket', type: 'text', nullable: true })\n sizeBucket?: string | null\n\n @Property({ name: 'annual_revenue', type: 'numeric', precision: 16, scale: 2, nullable: true })\n annualRevenue?: 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 @OneToOne(() => CustomerEntity, (entity) => entity.companyProfile, {\n fieldName: 'entity_id',\n owner: true,\n })\n entity!: CustomerEntity\n\n}\n\n@Entity({ tableName: 'customer_deals' })\n@Index({ name: 'customer_deals_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\nexport class CustomerDeal {\n [OptionalProps]?: 'status' | '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 title!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'status', type: 'text', default: 'open' })\n status: string = 'open'\n\n @Property({ name: 'pipeline_stage', type: 'text', nullable: true })\n pipelineStage?: string | null\n\n @Property({ name: 'value_amount', type: 'numeric', precision: 14, scale: 2, nullable: true })\n valueAmount?: string | null\n\n @Property({ name: 'value_currency', type: 'text', nullable: true })\n valueCurrency?: string | null\n\n @Property({ name: 'probability', type: 'int', nullable: true })\n probability?: number | null\n\n @Property({ name: 'expected_close_at', type: Date, nullable: true })\n expectedCloseAt?: Date | null\n\n @Property({ name: 'owner_user_id', type: 'uuid', nullable: true })\n ownerUserId?: string | null\n\n @Property({ name: 'source', type: 'text', nullable: true })\n source?: 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 @OneToMany(() => CustomerDealPersonLink, (link) => link.deal)\n people = new Collection<CustomerDealPersonLink>(this)\n\n @OneToMany(() => CustomerDealCompanyLink, (link) => link.deal)\n companies = new Collection<CustomerDealCompanyLink>(this)\n\n @OneToMany(() => CustomerActivity, (activity) => activity.deal)\n activities = new Collection<CustomerActivity>(this)\n\n @OneToMany(() => CustomerComment, (comment) => comment.deal)\n comments = new Collection<CustomerComment>(this)\n}\n\n@Entity({ tableName: 'customer_deal_people' })\n@Index({ name: 'customer_deal_people_deal_idx', properties: ['deal'] })\n@Index({ name: 'customer_deal_people_person_idx', properties: ['person'] })\n@Unique({ name: 'customer_deal_people_unique', properties: ['deal', 'person'] })\nexport class CustomerDealPersonLink {\n [OptionalProps]?: 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'role', type: 'text', nullable: true })\n participantRole?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @ManyToOne(() => CustomerDeal, { fieldName: 'deal_id' })\n deal!: CustomerDeal\n\n @ManyToOne(() => CustomerEntity, { fieldName: 'person_entity_id' })\n person!: CustomerEntity\n}\n\n@Entity({ tableName: 'customer_deal_companies' })\n@Index({ name: 'customer_deal_companies_deal_idx', properties: ['deal'] })\n@Index({ name: 'customer_deal_companies_company_idx', properties: ['company'] })\n@Unique({ name: 'customer_deal_companies_unique', properties: ['deal', 'company'] })\nexport class CustomerDealCompanyLink {\n [OptionalProps]?: 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @ManyToOne(() => CustomerDeal, { fieldName: 'deal_id' })\n deal!: CustomerDeal\n\n @ManyToOne(() => CustomerEntity, { fieldName: 'company_entity_id' })\n company!: CustomerEntity\n}\n\n@Entity({ tableName: 'customer_activities' })\n@Index({ name: 'customer_activities_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'customer_activities_entity_idx', properties: ['entity'] })\n@Index({ name: 'customer_activities_entity_occurred_created_idx', properties: ['entity', 'occurredAt', 'createdAt'] })\nexport class CustomerActivity {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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: 'activity_type', type: 'text' })\n activityType!: string\n\n @Property({ name: 'subject', type: 'text', nullable: true })\n subject?: string | null\n\n @Property({ name: 'body', type: 'text', nullable: true })\n body?: string | null\n\n @Property({ name: 'occurred_at', type: Date, nullable: true })\n occurredAt?: Date | null\n\n @Property({ name: 'author_user_id', type: 'uuid', nullable: true })\n authorUserId?: string | null\n\n @Property({ name: 'appearance_icon', type: 'text', nullable: true })\n appearanceIcon?: string | null\n\n @Property({ name: 'appearance_color', type: 'text', nullable: true })\n appearanceColor?: 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 @ManyToOne(() => CustomerEntity, { fieldName: 'entity_id' })\n entity!: CustomerEntity\n\n @ManyToOne(() => CustomerDeal, { fieldName: 'deal_id', nullable: true })\n deal?: CustomerDeal | null\n}\n\n@Entity({ tableName: 'customer_comments' })\n@Index({ name: 'customer_comments_entity_idx', properties: ['entity'] })\n@Index({ name: 'customer_comments_entity_created_idx', properties: ['entity', 'createdAt'] })\nexport class CustomerComment {\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 @Property({ name: 'body', type: 'text' })\n body!: string\n\n @Property({ name: 'author_user_id', type: 'uuid', nullable: true })\n authorUserId?: string | null\n\n @Property({ name: 'appearance_icon', type: 'text', nullable: true })\n appearanceIcon?: string | null\n\n @Property({ name: 'appearance_color', type: 'text', nullable: true })\n appearanceColor?: 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 @ManyToOne(() => CustomerEntity, { fieldName: 'entity_id' })\n entity!: CustomerEntity\n\n @ManyToOne(() => CustomerDeal, { fieldName: 'deal_id', nullable: true })\n deal?: CustomerDeal | null\n}\n\n@Entity({ tableName: 'customer_addresses' })\n@Index({ name: 'customer_addresses_entity_idx', properties: ['entity'] })\nexport class CustomerAddress {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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: 'name', type: 'text', nullable: true })\n name?: string | null\n\n @Property({ name: 'purpose', type: 'text', nullable: true })\n purpose?: string | null\n\n @Property({ name: 'company_name', type: 'text', nullable: true })\n companyName?: string | null\n\n @Property({ name: 'address_line1', type: 'text' })\n addressLine1!: string\n\n @Property({ name: 'address_line2', type: 'text', nullable: true })\n addressLine2?: string | null\n\n @Property({ name: 'city', type: 'text', nullable: true })\n city?: string | null\n\n @Property({ name: 'region', type: 'text', nullable: true })\n region?: string | null\n\n @Property({ name: 'postal_code', type: 'text', nullable: true })\n postalCode?: string | null\n\n @Property({ name: 'country', type: 'text', nullable: true })\n country?: string | null\n\n @Property({ name: 'building_number', type: 'text', nullable: true })\n buildingNumber?: string | null\n\n @Property({ name: 'flat_number', type: 'text', nullable: true })\n flatNumber?: string | null\n\n @Property({ name: 'latitude', type: 'float', nullable: true })\n latitude?: number | null\n\n @Property({ name: 'longitude', type: 'float', nullable: true })\n longitude?: number | null\n\n @Property({ name: 'is_primary', type: 'boolean', default: false })\n isPrimary: boolean = false\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 @ManyToOne(() => CustomerEntity, { fieldName: 'entity_id' })\n entity!: CustomerEntity\n}\n\n@Entity({ tableName: 'customer_settings' })\n@Unique({ name: 'customer_settings_scope_unique', properties: ['organizationId', 'tenantId'] })\nexport class CustomerSettings {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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: 'address_format', type: 'text', default: 'line_first' })\n addressFormat: CustomerAddressFormat = 'line_first'\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\n@Entity({ tableName: 'customer_tags' })\n@Index({ name: 'customer_tags_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'customer_tags_org_slug_unique', properties: ['organizationId', 'tenantId', 'slug'] })\nexport class CustomerTag {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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 slug!: string\n\n @Property({ type: 'text' })\n label!: string\n\n @Property({ name: 'color', type: 'text', nullable: true })\n color?: string | null\n\n @Property({ name: 'description', type: 'text', nullable: true })\n description?: 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 @OneToMany(() => CustomerTagAssignment, (assignment) => assignment.tag)\n assignments = new Collection<CustomerTagAssignment>(this)\n}\n\n@Entity({ tableName: 'customer_tag_assignments' })\n@Index({ name: 'customer_tag_assignments_entity_idx', properties: ['entity'] })\n@Unique({ name: 'customer_tag_assignments_unique', properties: ['tag', 'entity'] })\nexport class CustomerTagAssignment {\n [OptionalProps]?: 'createdAt'\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: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @ManyToOne(() => CustomerTag, { fieldName: 'tag_id' })\n tag!: CustomerTag\n\n@ManyToOne(() => CustomerEntity, { fieldName: 'entity_id' })\n entity!: CustomerEntity\n}\n\n@Entity({ tableName: 'customer_dictionary_entries' })\n@Index({ name: 'customer_dictionary_entries_scope_idx', properties: ['organizationId', 'tenantId', 'kind'] })\n@Unique({ name: 'customer_dictionary_entries_unique', properties: ['organizationId', 'tenantId', 'kind', 'normalizedValue'] })\nexport class CustomerDictionaryEntry {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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 kind!: string\n\n @Property({ type: 'text' })\n value!: string\n\n @Property({ name: 'normalized_value', type: 'text' })\n normalizedValue!: string\n\n @Property({ type: 'text' })\n label!: string\n\n @Property({ type: 'text', nullable: true })\n color?: string | null\n\n @Property({ type: 'text', nullable: true })\n icon?: 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\n@Entity({ tableName: 'customer_todo_links' })\n@Index({ name: 'customer_todo_links_entity_idx', properties: ['entity'] })\n@Index({ name: 'customer_todo_links_entity_created_idx', properties: ['entity', 'createdAt'] })\n@Unique({ name: 'customer_todo_links_unique', properties: ['entity', 'todoId', 'todoSource'] })\nexport class CustomerTodoLink {\n [OptionalProps]?: 'createdAt' | 'createdByUserId'\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: 'todo_id', type: 'uuid' })\n todoId!: string\n\n @Property({ name: 'todo_source', type: 'text', default: 'example:todo' })\n todoSource: string = 'example:todo'\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'created_by_user_id', type: 'uuid', nullable: true })\n createdByUserId?: string | null\n\n @ManyToOne(() => CustomerEntity, { fieldName: 'entity_id' })\n entity!: CustomerEntity\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import {\n Entity,\n PrimaryKey,\n Property,\n Index,\n Unique,\n OneToOne,\n OneToMany,\n ManyToOne,\n Collection,\n OptionalProps,\n} from '@mikro-orm/core'\n\nexport type CustomerEntityKind = 'person' | 'company'\nexport type CustomerAddressFormat = 'line_first' | 'street_first'\n\n@Entity({ tableName: 'customer_entities' })\n@Index({ name: 'customer_entities_org_tenant_kind_idx', properties: ['organizationId', 'tenantId', 'kind'] })\n@Index({\n name: 'idx_ce_tenant_org_person_id',\n expression:\n `create index \"idx_ce_tenant_org_person_id\" on \"customer_entities\" (\"tenant_id\", \"organization_id\", \"id\") where deleted_at is null and kind = 'person'`,\n})\n@Index({\n name: 'idx_ce_tenant_org_company_id',\n expression:\n `create index \"idx_ce_tenant_org_company_id\" on \"customer_entities\" (\"tenant_id\", \"organization_id\", \"id\") where deleted_at is null and kind = 'company'`,\n})\n@Index({\n name: 'idx_ce_tenant_company_id',\n expression:\n `create index \"idx_ce_tenant_company_id\" on \"customer_entities\" (\"tenant_id\", \"id\") where deleted_at is null and kind = 'company'`,\n})\n@Index({\n name: 'idx_ce_tenant_person_id',\n expression:\n `create index \"idx_ce_tenant_person_id\" on \"customer_entities\" (\"tenant_id\", \"id\") where deleted_at is null and kind = 'person'`,\n})\nexport class CustomerEntity {\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 kind!: CustomerEntityKind\n\n @Property({ name: 'display_name', type: 'text' })\n displayName!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'owner_user_id', type: 'uuid', nullable: true })\n ownerUserId?: string | null\n\n @Property({ name: 'primary_email', type: 'text', nullable: true })\n primaryEmail?: string | null\n\n @Property({ name: 'primary_phone', type: 'text', nullable: true })\n primaryPhone?: string | null\n\n @Property({ name: 'status', type: 'text', nullable: true })\n status?: string | null\n\n @Property({ name: 'lifecycle_stage', type: 'text', nullable: true })\n lifecycleStage?: string | null\n\n @Property({ name: 'source', type: 'text', nullable: true })\n source?: string | null\n\n @Property({ name: 'next_interaction_at', type: Date, nullable: true })\n nextInteractionAt?: Date | null\n\n @Property({ name: 'next_interaction_name', type: 'text', nullable: true })\n nextInteractionName?: string | null\n\n @Property({ name: 'next_interaction_ref_id', type: 'text', nullable: true })\n nextInteractionRefId?: string | null\n\n @Property({ name: 'next_interaction_icon', type: 'text', nullable: true })\n nextInteractionIcon?: string | null\n\n @Property({ name: 'next_interaction_color', type: 'text', nullable: true })\n nextInteractionColor?: string | 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 @OneToOne(() => CustomerPersonProfile, (profile) => profile.entity, { nullable: true, mappedBy: 'entity' })\n personProfile?: CustomerPersonProfile | null\n\n @OneToOne(() => CustomerCompanyProfile, (profile) => profile.entity, { nullable: true, mappedBy: 'entity' })\n companyProfile?: CustomerCompanyProfile | null\n\n @OneToMany(() => CustomerAddress, (address) => address.entity)\n addresses = new Collection<CustomerAddress>(this)\n\n @OneToMany(() => CustomerActivity, (activity) => activity.entity)\n activities = new Collection<CustomerActivity>(this)\n\n @OneToMany(() => CustomerComment, (comment) => comment.entity)\n comments = new Collection<CustomerComment>(this)\n\n @OneToMany(() => CustomerTagAssignment, (assignment) => assignment.entity)\n tagAssignments = new Collection<CustomerTagAssignment>(this)\n\n @OneToMany(() => CustomerTodoLink, (link) => link.entity)\n todoLinks = new Collection<CustomerTodoLink>(this)\n\n @OneToMany(() => CustomerDealPersonLink, (link) => link.person)\n dealPersonLinks = new Collection<CustomerDealPersonLink>(this)\n\n @OneToMany(() => CustomerDealCompanyLink, (link) => link.company)\n dealCompanyLinks = new Collection<CustomerDealCompanyLink>(this)\n\n @OneToMany(() => CustomerPersonProfile, (person) => person.company)\n companyMembers = new Collection<CustomerPersonProfile>(this)\n}\n\n@Entity({ tableName: 'customer_people' })\n@Index({ name: 'customer_people_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'idx_customer_people_entity_id',\n expression:\n `create index \"idx_customer_people_entity_id\" on \"customer_people\" (\"entity_id\")`,\n})\nexport class CustomerPersonProfile {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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: 'first_name', type: 'text', nullable: true })\n firstName?: string | null\n\n @Property({ name: 'last_name', type: 'text', nullable: true })\n lastName?: string | null\n\n @Property({ name: 'preferred_name', type: 'text', nullable: true })\n preferredName?: string | null\n\n @Property({ name: 'job_title', type: 'text', nullable: true })\n jobTitle?: string | null\n\n @Property({ name: 'department', type: 'text', nullable: true })\n department?: string | null\n\n @Property({ name: 'seniority', type: 'text', nullable: true })\n seniority?: string | null\n\n @Property({ name: 'timezone', type: 'text', nullable: true })\n timezone?: string | null\n\n @Property({ name: 'linked_in_url', type: 'text', nullable: true })\n linkedInUrl?: string | null\n\n @Property({ name: 'twitter_url', type: 'text', nullable: true })\n twitterUrl?: 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 @OneToOne(() => CustomerEntity, (entity) => entity.personProfile, {\n fieldName: 'entity_id',\n owner: true,\n })\n entity!: CustomerEntity\n\n @ManyToOne(() => CustomerEntity, {\n fieldName: 'company_entity_id',\n nullable: true,\n })\n company?: CustomerEntity | null\n}\n\n@Entity({ tableName: 'customer_companies' })\n@Index({ name: 'customer_companies_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'idx_customer_companies_entity_id',\n expression:\n `create index \"idx_customer_companies_entity_id\" on \"customer_companies\" (\"entity_id\")`,\n})\nexport class CustomerCompanyProfile {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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: 'legal_name', type: 'text', nullable: true })\n legalName?: string | null\n\n @Property({ name: 'brand_name', type: 'text', nullable: true })\n brandName?: string | null\n\n @Property({ name: 'domain', type: 'text', nullable: true })\n domain?: string | null\n\n @Property({ name: 'website_url', type: 'text', nullable: true })\n websiteUrl?: string | null\n\n @Property({ name: 'industry', type: 'text', nullable: true })\n industry?: string | null\n\n @Property({ name: 'size_bucket', type: 'text', nullable: true })\n sizeBucket?: string | null\n\n @Property({ name: 'annual_revenue', type: 'numeric', precision: 16, scale: 2, nullable: true })\n annualRevenue?: 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 @OneToOne(() => CustomerEntity, (entity) => entity.companyProfile, {\n fieldName: 'entity_id',\n owner: true,\n })\n entity!: CustomerEntity\n\n}\n\n@Entity({ tableName: 'customer_deals' })\n@Index({ name: 'customer_deals_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\nexport class CustomerDeal {\n [OptionalProps]?: 'status' | '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 title!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'status', type: 'text', default: 'open' })\n status: string = 'open'\n\n @Property({ name: 'pipeline_stage', type: 'text', nullable: true })\n pipelineStage?: string | null\n\n @Property({ name: 'pipeline_id', type: 'uuid', nullable: true })\n pipelineId?: string | null\n\n @Property({ name: 'pipeline_stage_id', type: 'uuid', nullable: true })\n pipelineStageId?: string | null\n\n @Property({ name: 'value_amount', type: 'numeric', precision: 14, scale: 2, nullable: true })\n valueAmount?: string | null\n\n @Property({ name: 'value_currency', type: 'text', nullable: true })\n valueCurrency?: string | null\n\n @Property({ name: 'probability', type: 'int', nullable: true })\n probability?: number | null\n\n @Property({ name: 'expected_close_at', type: Date, nullable: true })\n expectedCloseAt?: Date | null\n\n @Property({ name: 'owner_user_id', type: 'uuid', nullable: true })\n ownerUserId?: string | null\n\n @Property({ name: 'source', type: 'text', nullable: true })\n source?: 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 @OneToMany(() => CustomerDealPersonLink, (link) => link.deal)\n people = new Collection<CustomerDealPersonLink>(this)\n\n @OneToMany(() => CustomerDealCompanyLink, (link) => link.deal)\n companies = new Collection<CustomerDealCompanyLink>(this)\n\n @OneToMany(() => CustomerActivity, (activity) => activity.deal)\n activities = new Collection<CustomerActivity>(this)\n\n @OneToMany(() => CustomerComment, (comment) => comment.deal)\n comments = new Collection<CustomerComment>(this)\n}\n\n@Entity({ tableName: 'customer_deal_people' })\n@Index({ name: 'customer_deal_people_deal_idx', properties: ['deal'] })\n@Index({ name: 'customer_deal_people_person_idx', properties: ['person'] })\n@Unique({ name: 'customer_deal_people_unique', properties: ['deal', 'person'] })\nexport class CustomerDealPersonLink {\n [OptionalProps]?: 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'role', type: 'text', nullable: true })\n participantRole?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @ManyToOne(() => CustomerDeal, { fieldName: 'deal_id' })\n deal!: CustomerDeal\n\n @ManyToOne(() => CustomerEntity, { fieldName: 'person_entity_id' })\n person!: CustomerEntity\n}\n\n@Entity({ tableName: 'customer_deal_companies' })\n@Index({ name: 'customer_deal_companies_deal_idx', properties: ['deal'] })\n@Index({ name: 'customer_deal_companies_company_idx', properties: ['company'] })\n@Unique({ name: 'customer_deal_companies_unique', properties: ['deal', 'company'] })\nexport class CustomerDealCompanyLink {\n [OptionalProps]?: 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @ManyToOne(() => CustomerDeal, { fieldName: 'deal_id' })\n deal!: CustomerDeal\n\n @ManyToOne(() => CustomerEntity, { fieldName: 'company_entity_id' })\n company!: CustomerEntity\n}\n\n@Entity({ tableName: 'customer_activities' })\n@Index({ name: 'customer_activities_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'customer_activities_entity_idx', properties: ['entity'] })\n@Index({ name: 'customer_activities_entity_occurred_created_idx', properties: ['entity', 'occurredAt', 'createdAt'] })\nexport class CustomerActivity {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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: 'activity_type', type: 'text' })\n activityType!: string\n\n @Property({ name: 'subject', type: 'text', nullable: true })\n subject?: string | null\n\n @Property({ name: 'body', type: 'text', nullable: true })\n body?: string | null\n\n @Property({ name: 'occurred_at', type: Date, nullable: true })\n occurredAt?: Date | null\n\n @Property({ name: 'author_user_id', type: 'uuid', nullable: true })\n authorUserId?: string | null\n\n @Property({ name: 'appearance_icon', type: 'text', nullable: true })\n appearanceIcon?: string | null\n\n @Property({ name: 'appearance_color', type: 'text', nullable: true })\n appearanceColor?: 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 @ManyToOne(() => CustomerEntity, { fieldName: 'entity_id' })\n entity!: CustomerEntity\n\n @ManyToOne(() => CustomerDeal, { fieldName: 'deal_id', nullable: true })\n deal?: CustomerDeal | null\n}\n\n@Entity({ tableName: 'customer_comments' })\n@Index({ name: 'customer_comments_entity_idx', properties: ['entity'] })\n@Index({ name: 'customer_comments_entity_created_idx', properties: ['entity', 'createdAt'] })\nexport class CustomerComment {\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 @Property({ name: 'body', type: 'text' })\n body!: string\n\n @Property({ name: 'author_user_id', type: 'uuid', nullable: true })\n authorUserId?: string | null\n\n @Property({ name: 'appearance_icon', type: 'text', nullable: true })\n appearanceIcon?: string | null\n\n @Property({ name: 'appearance_color', type: 'text', nullable: true })\n appearanceColor?: 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 @ManyToOne(() => CustomerEntity, { fieldName: 'entity_id' })\n entity!: CustomerEntity\n\n @ManyToOne(() => CustomerDeal, { fieldName: 'deal_id', nullable: true })\n deal?: CustomerDeal | null\n}\n\n@Entity({ tableName: 'customer_addresses' })\n@Index({ name: 'customer_addresses_entity_idx', properties: ['entity'] })\nexport class CustomerAddress {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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: 'name', type: 'text', nullable: true })\n name?: string | null\n\n @Property({ name: 'purpose', type: 'text', nullable: true })\n purpose?: string | null\n\n @Property({ name: 'company_name', type: 'text', nullable: true })\n companyName?: string | null\n\n @Property({ name: 'address_line1', type: 'text' })\n addressLine1!: string\n\n @Property({ name: 'address_line2', type: 'text', nullable: true })\n addressLine2?: string | null\n\n @Property({ name: 'city', type: 'text', nullable: true })\n city?: string | null\n\n @Property({ name: 'region', type: 'text', nullable: true })\n region?: string | null\n\n @Property({ name: 'postal_code', type: 'text', nullable: true })\n postalCode?: string | null\n\n @Property({ name: 'country', type: 'text', nullable: true })\n country?: string | null\n\n @Property({ name: 'building_number', type: 'text', nullable: true })\n buildingNumber?: string | null\n\n @Property({ name: 'flat_number', type: 'text', nullable: true })\n flatNumber?: string | null\n\n @Property({ name: 'latitude', type: 'float', nullable: true })\n latitude?: number | null\n\n @Property({ name: 'longitude', type: 'float', nullable: true })\n longitude?: number | null\n\n @Property({ name: 'is_primary', type: 'boolean', default: false })\n isPrimary: boolean = false\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 @ManyToOne(() => CustomerEntity, { fieldName: 'entity_id' })\n entity!: CustomerEntity\n}\n\n@Entity({ tableName: 'customer_settings' })\n@Unique({ name: 'customer_settings_scope_unique', properties: ['organizationId', 'tenantId'] })\nexport class CustomerSettings {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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: 'address_format', type: 'text', default: 'line_first' })\n addressFormat: CustomerAddressFormat = 'line_first'\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\n@Entity({ tableName: 'customer_tags' })\n@Index({ name: 'customer_tags_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'customer_tags_org_slug_unique', properties: ['organizationId', 'tenantId', 'slug'] })\nexport class CustomerTag {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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 slug!: string\n\n @Property({ type: 'text' })\n label!: string\n\n @Property({ name: 'color', type: 'text', nullable: true })\n color?: string | null\n\n @Property({ name: 'description', type: 'text', nullable: true })\n description?: 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 @OneToMany(() => CustomerTagAssignment, (assignment) => assignment.tag)\n assignments = new Collection<CustomerTagAssignment>(this)\n}\n\n@Entity({ tableName: 'customer_tag_assignments' })\n@Index({ name: 'customer_tag_assignments_entity_idx', properties: ['entity'] })\n@Unique({ name: 'customer_tag_assignments_unique', properties: ['tag', 'entity'] })\nexport class CustomerTagAssignment {\n [OptionalProps]?: 'createdAt'\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: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @ManyToOne(() => CustomerTag, { fieldName: 'tag_id' })\n tag!: CustomerTag\n\n@ManyToOne(() => CustomerEntity, { fieldName: 'entity_id' })\n entity!: CustomerEntity\n}\n\n@Entity({ tableName: 'customer_dictionary_entries' })\n@Index({ name: 'customer_dictionary_entries_scope_idx', properties: ['organizationId', 'tenantId', 'kind'] })\n@Unique({ name: 'customer_dictionary_entries_unique', properties: ['organizationId', 'tenantId', 'kind', 'normalizedValue'] })\nexport class CustomerDictionaryEntry {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\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 kind!: string\n\n @Property({ type: 'text' })\n value!: string\n\n @Property({ name: 'normalized_value', type: 'text' })\n normalizedValue!: string\n\n @Property({ type: 'text' })\n label!: string\n\n @Property({ type: 'text', nullable: true })\n color?: string | null\n\n @Property({ type: 'text', nullable: true })\n icon?: 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\n@Entity({ tableName: 'customer_pipelines' })\n@Index({ name: 'customer_pipelines_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\nexport class CustomerPipeline {\n [OptionalProps]?: 'isDefault' | 'createdAt' | 'updatedAt'\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 name!: string\n\n @Property({ name: 'is_default', type: 'boolean', default: false })\n isDefault: boolean = false\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\n@Entity({ tableName: 'customer_pipeline_stages' })\n@Index({ name: 'customer_pipeline_stages_pipeline_position_idx', properties: ['pipelineId', 'order'] })\n@Index({ name: 'customer_pipeline_stages_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\nexport class CustomerPipelineStage {\n [OptionalProps]?: 'order' | 'createdAt' | 'updatedAt'\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: 'pipeline_id', type: 'uuid' })\n pipelineId!: string\n\n @Property({ name: 'name', type: 'text' })\n label!: string\n\n @Property({ name: 'position', type: 'int', default: 0 })\n order: 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\n@Entity({ tableName: 'customer_todo_links' })\n@Index({ name: 'customer_todo_links_entity_idx', properties: ['entity'] })\n@Index({ name: 'customer_todo_links_entity_created_idx', properties: ['entity', 'createdAt'] })\n@Unique({ name: 'customer_todo_links_unique', properties: ['entity', 'todoId', 'todoSource'] })\nexport class CustomerTodoLink {\n [OptionalProps]?: 'createdAt' | 'createdByUserId'\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: 'todo_id', type: 'uuid' })\n todoId!: string\n\n @Property({ name: 'todo_source', type: 'text', default: 'example:todo' })\n todoSource: string = 'example:todo'\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'created_by_user_id', type: 'uuid', nullable: true })\n createdByUserId?: string | null\n\n @ManyToOne(() => CustomerEntity, { fieldName: 'entity_id' })\n entity!: CustomerEntity\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -76,6 +76,8 @@ const dealCreateSchema = scopedSchema.extend({
|
|
|
76
76
|
description: z.string().max(4e3).optional(),
|
|
77
77
|
status: z.string().max(50).optional(),
|
|
78
78
|
pipelineStage: z.string().max(100).optional(),
|
|
79
|
+
pipelineId: uuid().optional(),
|
|
80
|
+
pipelineStageId: uuid().optional(),
|
|
79
81
|
valueAmount: z.coerce.number().min(0).optional(),
|
|
80
82
|
valueCurrency: z.string().min(3).max(3).optional(),
|
|
81
83
|
probability: z.number().min(0).max(100).optional(),
|
|
@@ -206,6 +208,41 @@ const customerAddressFormatSchema = z.enum(["line_first", "street_first"]);
|
|
|
206
208
|
const customerSettingsUpsertSchema = scopedSchema.extend({
|
|
207
209
|
addressFormat: customerAddressFormatSchema
|
|
208
210
|
});
|
|
211
|
+
const pipelineCreateSchema = scopedSchema.extend({
|
|
212
|
+
name: z.string().trim().min(1).max(200),
|
|
213
|
+
isDefault: z.boolean().optional()
|
|
214
|
+
});
|
|
215
|
+
const pipelineUpdateSchema = z.object({
|
|
216
|
+
id: uuid(),
|
|
217
|
+
name: z.string().trim().min(1).max(200).optional(),
|
|
218
|
+
isDefault: z.boolean().optional()
|
|
219
|
+
});
|
|
220
|
+
const pipelineDeleteSchema = z.object({
|
|
221
|
+
id: uuid()
|
|
222
|
+
});
|
|
223
|
+
const pipelineStageCreateSchema = scopedSchema.extend({
|
|
224
|
+
pipelineId: uuid(),
|
|
225
|
+
label: z.string().trim().min(1).max(200),
|
|
226
|
+
order: z.number().int().min(0).optional(),
|
|
227
|
+
color: z.string().trim().max(20).optional(),
|
|
228
|
+
icon: z.string().trim().max(100).optional()
|
|
229
|
+
});
|
|
230
|
+
const pipelineStageUpdateSchema = z.object({
|
|
231
|
+
id: uuid(),
|
|
232
|
+
label: z.string().trim().min(1).max(200).optional(),
|
|
233
|
+
order: z.number().int().min(0).optional(),
|
|
234
|
+
color: z.string().trim().max(20).optional(),
|
|
235
|
+
icon: z.string().trim().max(100).optional()
|
|
236
|
+
});
|
|
237
|
+
const pipelineStageDeleteSchema = z.object({
|
|
238
|
+
id: uuid()
|
|
239
|
+
});
|
|
240
|
+
const pipelineStageReorderSchema = scopedSchema.extend({
|
|
241
|
+
stages: z.array(z.object({
|
|
242
|
+
id: uuid(),
|
|
243
|
+
order: z.number().int().min(0)
|
|
244
|
+
})).min(1)
|
|
245
|
+
});
|
|
209
246
|
export {
|
|
210
247
|
activityCreateSchema,
|
|
211
248
|
activityUpdateSchema,
|
|
@@ -224,6 +261,13 @@ export {
|
|
|
224
261
|
dealUpdateSchema,
|
|
225
262
|
personCreateSchema,
|
|
226
263
|
personUpdateSchema,
|
|
264
|
+
pipelineCreateSchema,
|
|
265
|
+
pipelineDeleteSchema,
|
|
266
|
+
pipelineStageCreateSchema,
|
|
267
|
+
pipelineStageDeleteSchema,
|
|
268
|
+
pipelineStageReorderSchema,
|
|
269
|
+
pipelineStageUpdateSchema,
|
|
270
|
+
pipelineUpdateSchema,
|
|
227
271
|
tagAssignmentSchema,
|
|
228
272
|
tagCreateSchema,
|
|
229
273
|
tagUpdateSchema,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/modules/customers/data/validators.ts"],
|
|
4
|
-
"sourcesContent": ["import { z } from 'zod'\n\nconst uuid = () => z.string().uuid()\n\nconst scopedSchema = z.object({\n organizationId: uuid(),\n tenantId: uuid(),\n})\n\nconst nextInteractionSchema = z\n .object({\n at: z.coerce.date(),\n name: z.string().trim().min(1).max(200),\n refId: z.string().trim().max(191).optional().nullable(),\n icon: z.string().trim().max(100).optional().nullable(),\n color: z\n .string()\n .trim()\n .regex(/^#([0-9a-fA-F]{6})$/)\n .optional()\n .nullable(),\n })\n .strict()\n\nconst displayNameSchema = z.string().trim().min(1).max(200)\n\nconst baseEntitySchema = {\n displayName: displayNameSchema,\n description: z.string().trim().max(4000).optional(),\n ownerUserId: uuid().optional(),\n primaryEmail: z\n .string()\n .trim()\n .email()\n .max(320)\n .optional(),\n primaryPhone: z.string().trim().max(50).optional(),\n status: z.string().trim().max(100).optional(),\n lifecycleStage: z.string().trim().max(100).optional(),\n source: z.string().trim().max(150).optional(),\n isActive: z.boolean().optional(),\n nextInteraction: nextInteractionSchema.nullable().optional(),\n tags: z.array(uuid()).optional(),\n}\n\nconst personDetailsSchema = {\n preferredName: z.string().trim().max(120).optional(),\n jobTitle: z.string().trim().max(150).optional(),\n department: z.string().trim().max(150).optional(),\n seniority: z.string().trim().max(100).optional(),\n timezone: z.string().trim().max(120).optional(),\n linkedInUrl: z.string().trim().url().max(300).optional(),\n twitterUrl: z.string().trim().url().max(300).optional(),\n companyEntityId: uuid().nullable().optional(),\n}\n\nconst personFirstNameSchema = z.string().trim().min(1).max(120)\nconst personLastNameSchema = z.string().trim().min(1).max(120)\n\nconst companyDetailsSchema = {\n legalName: z.string().trim().max(200).optional(),\n brandName: z.string().trim().max(200).optional(),\n domain: z.string().trim().max(200).optional(),\n websiteUrl: z.string().trim().url().max(300).optional(),\n industry: z.string().trim().max(150).optional(),\n sizeBucket: z.string().trim().max(100).optional(),\n annualRevenue: z.coerce.number().min(0).optional(),\n}\n\nexport const personCreateSchema = scopedSchema.extend({\n ...baseEntitySchema,\n displayName: displayNameSchema.optional(),\n firstName: personFirstNameSchema,\n lastName: personLastNameSchema,\n ...personDetailsSchema,\n})\n\nexport const personUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(\n scopedSchema.extend({\n ...baseEntitySchema,\n ...personDetailsSchema,\n firstName: personFirstNameSchema.optional(),\n lastName: personLastNameSchema.optional(),\n }).partial()\n )\n\nexport const companyCreateSchema = scopedSchema.extend({\n ...baseEntitySchema,\n displayName: displayNameSchema,\n ...companyDetailsSchema,\n})\n\nexport const companyUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(companyCreateSchema.partial())\n\nexport const dealCreateSchema = scopedSchema.extend({\n title: z.string().min(1).max(200),\n description: z.string().max(4000).optional(),\n status: z.string().max(50).optional(),\n pipelineStage: z.string().max(100).optional(),\n valueAmount: z.coerce.number().min(0).optional(),\n valueCurrency: z.string().min(3).max(3).optional(),\n probability: z.number().min(0).max(100).optional(),\n expectedCloseAt: z.coerce.date().optional(),\n ownerUserId: uuid().optional(),\n source: z.string().max(150).optional(),\n companyIds: z.array(uuid()).optional(),\n personIds: z.array(uuid()).optional(),\n})\n\nexport const dealUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(dealCreateSchema.partial())\n\nexport const activityCreateSchema = scopedSchema.extend({\n entityId: uuid(),\n activityType: z.string().min(1).max(100),\n subject: z.string().max(200).optional(),\n body: z.string().max(8000).optional(),\n occurredAt: z.coerce.date().optional(),\n dealId: uuid().optional(),\n authorUserId: uuid().optional(),\n appearanceIcon: z.string().trim().max(100).optional().nullable(),\n appearanceColor: z\n .string()\n .trim()\n .regex(/^#([0-9a-fA-F]{6})$/)\n .optional()\n .nullable(),\n})\n\nexport const activityUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(activityCreateSchema.partial())\n\nexport const commentCreateSchema = scopedSchema.extend({\n entityId: uuid(),\n dealId: uuid().optional(),\n body: z.string().min(1).max(8000),\n authorUserId: uuid().optional(),\n appearanceIcon: z.string().trim().max(100).optional().nullable(),\n appearanceColor: z\n .string()\n .trim()\n .regex(/^#([0-9a-fA-F]{6})$/)\n .optional()\n .nullable(),\n})\n\nexport const commentUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(commentCreateSchema.partial())\n\nexport const addressCreateSchema = scopedSchema.extend({\n entityId: uuid(),\n name: z.string().max(150).optional(),\n purpose: z.string().max(150).optional(),\n companyName: z.string().max(200).optional(),\n addressLine1: z.string().min(1).max(300),\n addressLine2: z.string().max(300).optional(),\n buildingNumber: z.string().max(50).optional(),\n flatNumber: z.string().max(50).optional(),\n city: z.string().max(150).optional(),\n region: z.string().max(150).optional(),\n postalCode: z.string().max(30).optional(),\n country: z.string().max(150).optional(),\n latitude: z.coerce.number().optional(),\n longitude: z.coerce.number().optional(),\n isPrimary: z.boolean().optional(),\n})\n\nexport const addressUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(addressCreateSchema.partial())\n\nexport const tagCreateSchema = scopedSchema.extend({\n slug: z\n .string()\n .min(1)\n .max(80)\n .regex(/^[a-z0-9_-]+$/, 'Slug must be lowercase and may contain dashes or underscores'),\n label: z.string().min(1).max(120),\n color: z.string().max(30).optional(),\n description: z.string().max(400).optional(),\n})\n\nexport const tagUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(tagCreateSchema.partial())\n\nconst dictionaryKindEnum = z.enum([\n 'status',\n 'source',\n 'lifecycle_stage',\n 'address_type',\n 'activity_type',\n 'deal_status',\n 'pipeline_stage',\n 'job_title',\n 'industry',\n])\n\nconst dictionaryValueSchema = z.string().trim().min(1).max(150)\nconst dictionaryLabelSchema = z.string().trim().max(150)\nconst dictionaryColorSchema = z\n .string()\n .trim()\n .regex(/^#([0-9a-fA-F]{6})$/, 'Color must be a valid six-digit hex code like #3366ff')\nconst dictionaryIconSchema = z.string().trim().max(48)\n\nexport const customerDictionaryEntryCreateSchema = scopedSchema.extend({\n kind: dictionaryKindEnum,\n value: dictionaryValueSchema,\n label: dictionaryLabelSchema.optional(),\n color: dictionaryColorSchema.nullable().optional(),\n icon: dictionaryIconSchema.nullable().optional(),\n})\n\nexport type CustomerDictionaryEntryCreateInput = z.infer<typeof customerDictionaryEntryCreateSchema>\n\nexport const customerDictionaryEntryUpdateSchema = scopedSchema\n .extend({\n id: uuid(),\n kind: dictionaryKindEnum,\n value: dictionaryValueSchema.optional(),\n label: dictionaryLabelSchema.optional(),\n color: dictionaryColorSchema.nullable().optional(),\n icon: dictionaryIconSchema.nullable().optional(),\n })\n .refine(\n (payload) =>\n payload.value !== undefined ||\n payload.label !== undefined ||\n payload.color !== undefined ||\n payload.icon !== undefined,\n {\n message: 'Provide at least one field to update.',\n path: ['value'],\n }\n )\n\nexport type CustomerDictionaryEntryUpdateInput = z.infer<typeof customerDictionaryEntryUpdateSchema>\n\nexport const customerDictionaryEntryDeleteSchema = scopedSchema.extend({\n id: uuid(),\n kind: dictionaryKindEnum,\n})\n\nexport type CustomerDictionaryEntryDeleteInput = z.infer<typeof customerDictionaryEntryDeleteSchema>\n\nexport const tagAssignmentSchema = scopedSchema.extend({\n tagId: uuid(),\n entityId: uuid(),\n})\n\nexport const todoLinkCreateSchema = scopedSchema.extend({\n entityId: uuid(),\n todoId: uuid(),\n todoSource: z.string().min(1).max(120).default('example:todo'),\n createdByUserId: uuid().optional(),\n})\n\nexport const todoLinkWithTodoCreateSchema = scopedSchema.extend({\n entityId: uuid(),\n title: z.string().min(1).max(200),\n isDone: z.boolean().optional(),\n is_done: z.boolean().optional(),\n todoSource: z.string().min(1).max(120).default('example:todo'),\n createdByUserId: uuid().optional(),\n todoCustom: z.record(z.string(), z.any()).optional(),\n custom: z.record(z.string(), z.any()).optional(),\n})\n\nexport const customerAddressFormatSchema = z.enum(['line_first', 'street_first'])\n\nexport const customerSettingsUpsertSchema = scopedSchema.extend({\n addressFormat: customerAddressFormatSchema,\n})\n\nexport type PersonCreateInput = z.infer<typeof personCreateSchema>\nexport type PersonUpdateInput = z.infer<typeof personUpdateSchema>\nexport type CompanyCreateInput = z.infer<typeof companyCreateSchema>\nexport type CompanyUpdateInput = z.infer<typeof companyUpdateSchema>\nexport type DealCreateInput = z.infer<typeof dealCreateSchema>\nexport type DealUpdateInput = z.infer<typeof dealUpdateSchema>\nexport type ActivityCreateInput = z.infer<typeof activityCreateSchema>\nexport type ActivityUpdateInput = z.infer<typeof activityUpdateSchema>\nexport type CommentCreateInput = z.infer<typeof commentCreateSchema>\nexport type CommentUpdateInput = z.infer<typeof commentUpdateSchema>\nexport type AddressCreateInput = z.infer<typeof addressCreateSchema>\nexport type AddressUpdateInput = z.infer<typeof addressUpdateSchema>\nexport type TagCreateInput = z.infer<typeof tagCreateSchema>\nexport type TagUpdateInput = z.infer<typeof tagUpdateSchema>\nexport type TagAssignmentInput = z.infer<typeof tagAssignmentSchema>\nexport type TodoLinkCreateInput = z.infer<typeof todoLinkCreateSchema>\nexport type TodoLinkWithTodoCreateInput = z.infer<typeof todoLinkWithTodoCreateSchema>\nexport type CustomerSettingsUpsertInput = z.infer<typeof customerSettingsUpsertSchema>\nexport type CustomerAddressFormatInput = z.infer<typeof customerAddressFormatSchema>\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { z } from 'zod'\n\nconst uuid = () => z.string().uuid()\n\nconst scopedSchema = z.object({\n organizationId: uuid(),\n tenantId: uuid(),\n})\n\nconst nextInteractionSchema = z\n .object({\n at: z.coerce.date(),\n name: z.string().trim().min(1).max(200),\n refId: z.string().trim().max(191).optional().nullable(),\n icon: z.string().trim().max(100).optional().nullable(),\n color: z\n .string()\n .trim()\n .regex(/^#([0-9a-fA-F]{6})$/)\n .optional()\n .nullable(),\n })\n .strict()\n\nconst displayNameSchema = z.string().trim().min(1).max(200)\n\nconst baseEntitySchema = {\n displayName: displayNameSchema,\n description: z.string().trim().max(4000).optional(),\n ownerUserId: uuid().optional(),\n primaryEmail: z\n .string()\n .trim()\n .email()\n .max(320)\n .optional(),\n primaryPhone: z.string().trim().max(50).optional(),\n status: z.string().trim().max(100).optional(),\n lifecycleStage: z.string().trim().max(100).optional(),\n source: z.string().trim().max(150).optional(),\n isActive: z.boolean().optional(),\n nextInteraction: nextInteractionSchema.nullable().optional(),\n tags: z.array(uuid()).optional(),\n}\n\nconst personDetailsSchema = {\n preferredName: z.string().trim().max(120).optional(),\n jobTitle: z.string().trim().max(150).optional(),\n department: z.string().trim().max(150).optional(),\n seniority: z.string().trim().max(100).optional(),\n timezone: z.string().trim().max(120).optional(),\n linkedInUrl: z.string().trim().url().max(300).optional(),\n twitterUrl: z.string().trim().url().max(300).optional(),\n companyEntityId: uuid().nullable().optional(),\n}\n\nconst personFirstNameSchema = z.string().trim().min(1).max(120)\nconst personLastNameSchema = z.string().trim().min(1).max(120)\n\nconst companyDetailsSchema = {\n legalName: z.string().trim().max(200).optional(),\n brandName: z.string().trim().max(200).optional(),\n domain: z.string().trim().max(200).optional(),\n websiteUrl: z.string().trim().url().max(300).optional(),\n industry: z.string().trim().max(150).optional(),\n sizeBucket: z.string().trim().max(100).optional(),\n annualRevenue: z.coerce.number().min(0).optional(),\n}\n\nexport const personCreateSchema = scopedSchema.extend({\n ...baseEntitySchema,\n displayName: displayNameSchema.optional(),\n firstName: personFirstNameSchema,\n lastName: personLastNameSchema,\n ...personDetailsSchema,\n})\n\nexport const personUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(\n scopedSchema.extend({\n ...baseEntitySchema,\n ...personDetailsSchema,\n firstName: personFirstNameSchema.optional(),\n lastName: personLastNameSchema.optional(),\n }).partial()\n )\n\nexport const companyCreateSchema = scopedSchema.extend({\n ...baseEntitySchema,\n displayName: displayNameSchema,\n ...companyDetailsSchema,\n})\n\nexport const companyUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(companyCreateSchema.partial())\n\nexport const dealCreateSchema = scopedSchema.extend({\n title: z.string().min(1).max(200),\n description: z.string().max(4000).optional(),\n status: z.string().max(50).optional(),\n pipelineStage: z.string().max(100).optional(),\n pipelineId: uuid().optional(),\n pipelineStageId: uuid().optional(),\n valueAmount: z.coerce.number().min(0).optional(),\n valueCurrency: z.string().min(3).max(3).optional(),\n probability: z.number().min(0).max(100).optional(),\n expectedCloseAt: z.coerce.date().optional(),\n ownerUserId: uuid().optional(),\n source: z.string().max(150).optional(),\n companyIds: z.array(uuid()).optional(),\n personIds: z.array(uuid()).optional(),\n})\n\nexport const dealUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(dealCreateSchema.partial())\n\nexport const activityCreateSchema = scopedSchema.extend({\n entityId: uuid(),\n activityType: z.string().min(1).max(100),\n subject: z.string().max(200).optional(),\n body: z.string().max(8000).optional(),\n occurredAt: z.coerce.date().optional(),\n dealId: uuid().optional(),\n authorUserId: uuid().optional(),\n appearanceIcon: z.string().trim().max(100).optional().nullable(),\n appearanceColor: z\n .string()\n .trim()\n .regex(/^#([0-9a-fA-F]{6})$/)\n .optional()\n .nullable(),\n})\n\nexport const activityUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(activityCreateSchema.partial())\n\nexport const commentCreateSchema = scopedSchema.extend({\n entityId: uuid(),\n dealId: uuid().optional(),\n body: z.string().min(1).max(8000),\n authorUserId: uuid().optional(),\n appearanceIcon: z.string().trim().max(100).optional().nullable(),\n appearanceColor: z\n .string()\n .trim()\n .regex(/^#([0-9a-fA-F]{6})$/)\n .optional()\n .nullable(),\n})\n\nexport const commentUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(commentCreateSchema.partial())\n\nexport const addressCreateSchema = scopedSchema.extend({\n entityId: uuid(),\n name: z.string().max(150).optional(),\n purpose: z.string().max(150).optional(),\n companyName: z.string().max(200).optional(),\n addressLine1: z.string().min(1).max(300),\n addressLine2: z.string().max(300).optional(),\n buildingNumber: z.string().max(50).optional(),\n flatNumber: z.string().max(50).optional(),\n city: z.string().max(150).optional(),\n region: z.string().max(150).optional(),\n postalCode: z.string().max(30).optional(),\n country: z.string().max(150).optional(),\n latitude: z.coerce.number().optional(),\n longitude: z.coerce.number().optional(),\n isPrimary: z.boolean().optional(),\n})\n\nexport const addressUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(addressCreateSchema.partial())\n\nexport const tagCreateSchema = scopedSchema.extend({\n slug: z\n .string()\n .min(1)\n .max(80)\n .regex(/^[a-z0-9_-]+$/, 'Slug must be lowercase and may contain dashes or underscores'),\n label: z.string().min(1).max(120),\n color: z.string().max(30).optional(),\n description: z.string().max(400).optional(),\n})\n\nexport const tagUpdateSchema = z\n .object({\n id: uuid(),\n })\n .merge(tagCreateSchema.partial())\n\nconst dictionaryKindEnum = z.enum([\n 'status',\n 'source',\n 'lifecycle_stage',\n 'address_type',\n 'activity_type',\n 'deal_status',\n 'pipeline_stage',\n 'job_title',\n 'industry',\n])\n\nconst dictionaryValueSchema = z.string().trim().min(1).max(150)\nconst dictionaryLabelSchema = z.string().trim().max(150)\nconst dictionaryColorSchema = z\n .string()\n .trim()\n .regex(/^#([0-9a-fA-F]{6})$/, 'Color must be a valid six-digit hex code like #3366ff')\nconst dictionaryIconSchema = z.string().trim().max(48)\n\nexport const customerDictionaryEntryCreateSchema = scopedSchema.extend({\n kind: dictionaryKindEnum,\n value: dictionaryValueSchema,\n label: dictionaryLabelSchema.optional(),\n color: dictionaryColorSchema.nullable().optional(),\n icon: dictionaryIconSchema.nullable().optional(),\n})\n\nexport type CustomerDictionaryEntryCreateInput = z.infer<typeof customerDictionaryEntryCreateSchema>\n\nexport const customerDictionaryEntryUpdateSchema = scopedSchema\n .extend({\n id: uuid(),\n kind: dictionaryKindEnum,\n value: dictionaryValueSchema.optional(),\n label: dictionaryLabelSchema.optional(),\n color: dictionaryColorSchema.nullable().optional(),\n icon: dictionaryIconSchema.nullable().optional(),\n })\n .refine(\n (payload) =>\n payload.value !== undefined ||\n payload.label !== undefined ||\n payload.color !== undefined ||\n payload.icon !== undefined,\n {\n message: 'Provide at least one field to update.',\n path: ['value'],\n }\n )\n\nexport type CustomerDictionaryEntryUpdateInput = z.infer<typeof customerDictionaryEntryUpdateSchema>\n\nexport const customerDictionaryEntryDeleteSchema = scopedSchema.extend({\n id: uuid(),\n kind: dictionaryKindEnum,\n})\n\nexport type CustomerDictionaryEntryDeleteInput = z.infer<typeof customerDictionaryEntryDeleteSchema>\n\nexport const tagAssignmentSchema = scopedSchema.extend({\n tagId: uuid(),\n entityId: uuid(),\n})\n\nexport const todoLinkCreateSchema = scopedSchema.extend({\n entityId: uuid(),\n todoId: uuid(),\n todoSource: z.string().min(1).max(120).default('example:todo'),\n createdByUserId: uuid().optional(),\n})\n\nexport const todoLinkWithTodoCreateSchema = scopedSchema.extend({\n entityId: uuid(),\n title: z.string().min(1).max(200),\n isDone: z.boolean().optional(),\n is_done: z.boolean().optional(),\n todoSource: z.string().min(1).max(120).default('example:todo'),\n createdByUserId: uuid().optional(),\n todoCustom: z.record(z.string(), z.any()).optional(),\n custom: z.record(z.string(), z.any()).optional(),\n})\n\nexport const customerAddressFormatSchema = z.enum(['line_first', 'street_first'])\n\nexport const customerSettingsUpsertSchema = scopedSchema.extend({\n addressFormat: customerAddressFormatSchema,\n})\n\nexport type PersonCreateInput = z.infer<typeof personCreateSchema>\nexport type PersonUpdateInput = z.infer<typeof personUpdateSchema>\nexport type CompanyCreateInput = z.infer<typeof companyCreateSchema>\nexport type CompanyUpdateInput = z.infer<typeof companyUpdateSchema>\nexport type DealCreateInput = z.infer<typeof dealCreateSchema>\nexport type DealUpdateInput = z.infer<typeof dealUpdateSchema>\nexport type ActivityCreateInput = z.infer<typeof activityCreateSchema>\nexport type ActivityUpdateInput = z.infer<typeof activityUpdateSchema>\nexport type CommentCreateInput = z.infer<typeof commentCreateSchema>\nexport type CommentUpdateInput = z.infer<typeof commentUpdateSchema>\nexport type AddressCreateInput = z.infer<typeof addressCreateSchema>\nexport type AddressUpdateInput = z.infer<typeof addressUpdateSchema>\nexport type TagCreateInput = z.infer<typeof tagCreateSchema>\nexport type TagUpdateInput = z.infer<typeof tagUpdateSchema>\nexport type TagAssignmentInput = z.infer<typeof tagAssignmentSchema>\nexport type TodoLinkCreateInput = z.infer<typeof todoLinkCreateSchema>\nexport type TodoLinkWithTodoCreateInput = z.infer<typeof todoLinkWithTodoCreateSchema>\nexport type CustomerSettingsUpsertInput = z.infer<typeof customerSettingsUpsertSchema>\nexport type CustomerAddressFormatInput = z.infer<typeof customerAddressFormatSchema>\n\n// --- Pipeline schemas ---\n\nexport const pipelineCreateSchema = scopedSchema.extend({\n name: z.string().trim().min(1).max(200),\n isDefault: z.boolean().optional(),\n})\n\nexport const pipelineUpdateSchema = z.object({\n id: uuid(),\n name: z.string().trim().min(1).max(200).optional(),\n isDefault: z.boolean().optional(),\n})\n\nexport const pipelineDeleteSchema = z.object({\n id: uuid(),\n})\n\nexport type PipelineCreateInput = z.infer<typeof pipelineCreateSchema>\nexport type PipelineUpdateInput = z.infer<typeof pipelineUpdateSchema>\nexport type PipelineDeleteInput = z.infer<typeof pipelineDeleteSchema>\n\n// --- Pipeline Stage schemas ---\n\nexport const pipelineStageCreateSchema = scopedSchema.extend({\n pipelineId: uuid(),\n label: z.string().trim().min(1).max(200),\n order: z.number().int().min(0).optional(),\n color: z.string().trim().max(20).optional(),\n icon: z.string().trim().max(100).optional(),\n})\n\nexport const pipelineStageUpdateSchema = z.object({\n id: uuid(),\n label: z.string().trim().min(1).max(200).optional(),\n order: z.number().int().min(0).optional(),\n color: z.string().trim().max(20).optional(),\n icon: z.string().trim().max(100).optional(),\n})\n\nexport const pipelineStageDeleteSchema = z.object({\n id: uuid(),\n})\n\nexport const pipelineStageReorderSchema = scopedSchema.extend({\n stages: z.array(z.object({\n id: uuid(),\n order: z.number().int().min(0),\n })).min(1),\n})\n\nexport type PipelineStageCreateInput = z.infer<typeof pipelineStageCreateSchema>\nexport type PipelineStageUpdateInput = z.infer<typeof pipelineStageUpdateSchema>\nexport type PipelineStageDeleteInput = z.infer<typeof pipelineStageDeleteSchema>\nexport type PipelineStageReorderInput = z.infer<typeof pipelineStageReorderSchema>\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Migration } from "@mikro-orm/migrations";
|
|
2
|
+
class Migration20260218191730 extends Migration {
|
|
3
|
+
async up() {
|
|
4
|
+
this.addSql(`create table if not exists "customer_pipelines" ("id" uuid not null default gen_random_uuid(), "organization_id" uuid not null, "tenant_id" uuid not null, "name" text not null, "is_default" boolean not null default false, "created_at" timestamptz not null, "updated_at" timestamptz not null, constraint "customer_pipelines_pkey" primary key ("id"));`);
|
|
5
|
+
this.addSql(`create index if not exists "customer_pipelines_org_tenant_idx" on "customer_pipelines" ("organization_id", "tenant_id");`);
|
|
6
|
+
this.addSql(`create table if not exists "customer_pipeline_stages" ("id" uuid not null default gen_random_uuid(), "organization_id" uuid not null, "tenant_id" uuid not null, "pipeline_id" uuid not null, "name" text not null, "position" int not null default 0, "created_at" timestamptz not null, "updated_at" timestamptz not null, constraint "customer_pipeline_stages_pkey" primary key ("id"));`);
|
|
7
|
+
this.addSql(`DO $$ BEGIN ALTER TABLE "customer_pipeline_stages" RENAME COLUMN "label" TO "name"; EXCEPTION WHEN undefined_column THEN NULL; END $$;`);
|
|
8
|
+
this.addSql(`DO $$ BEGIN ALTER TABLE "customer_pipeline_stages" RENAME COLUMN "stage_order" TO "position"; EXCEPTION WHEN undefined_column THEN NULL; END $$;`);
|
|
9
|
+
this.addSql(`create index if not exists "customer_pipeline_stages_pipeline_position_idx" on "customer_pipeline_stages" ("pipeline_id", "position");`);
|
|
10
|
+
this.addSql(`create index if not exists "customer_pipeline_stages_org_tenant_idx" on "customer_pipeline_stages" ("organization_id", "tenant_id");`);
|
|
11
|
+
this.addSql(`DO $$ BEGIN ALTER TABLE "customer_deals" ADD COLUMN "pipeline_id" uuid null; EXCEPTION WHEN duplicate_column THEN NULL; END $$;`);
|
|
12
|
+
this.addSql(`DO $$ BEGIN ALTER TABLE "customer_deals" ADD COLUMN "pipeline_stage_id" uuid null; EXCEPTION WHEN duplicate_column THEN NULL; END $$;`);
|
|
13
|
+
this.addSql(`
|
|
14
|
+
DO $$
|
|
15
|
+
DECLARE
|
|
16
|
+
r RECORD;
|
|
17
|
+
v_pipeline_id UUID;
|
|
18
|
+
v_stage_id UUID;
|
|
19
|
+
v_pos INT;
|
|
20
|
+
stage_values TEXT[] := ARRAY[
|
|
21
|
+
'opportunity','marketing_qualified_lead','sales_qualified_lead',
|
|
22
|
+
'offering','negotiations','win','loose','stalled'
|
|
23
|
+
];
|
|
24
|
+
stage_labels TEXT[] := ARRAY[
|
|
25
|
+
'Opportunity','Marketing Qualified Lead','Sales Qualified Lead',
|
|
26
|
+
'Offering','Negotiations','Win','Loose','Stalled'
|
|
27
|
+
];
|
|
28
|
+
BEGIN
|
|
29
|
+
FOR r IN (
|
|
30
|
+
SELECT DISTINCT organization_id, tenant_id FROM customer_deals
|
|
31
|
+
WHERE pipeline_stage IS NOT NULL AND pipeline_stage <> '' AND pipeline_id IS NULL
|
|
32
|
+
) LOOP
|
|
33
|
+
SELECT id INTO v_pipeline_id FROM customer_pipelines
|
|
34
|
+
WHERE organization_id = r.organization_id AND tenant_id = r.tenant_id AND is_default = true LIMIT 1;
|
|
35
|
+
|
|
36
|
+
IF v_pipeline_id IS NULL THEN
|
|
37
|
+
INSERT INTO customer_pipelines (id, organization_id, tenant_id, name, is_default, created_at, updated_at)
|
|
38
|
+
VALUES (gen_random_uuid(), r.organization_id, r.tenant_id, 'Default Pipeline', true, now(), now())
|
|
39
|
+
RETURNING id INTO v_pipeline_id;
|
|
40
|
+
END IF;
|
|
41
|
+
|
|
42
|
+
IF NOT EXISTS (SELECT 1 FROM customer_pipeline_stages WHERE pipeline_id = v_pipeline_id) THEN
|
|
43
|
+
FOR v_pos IN 1..array_length(stage_labels, 1) LOOP
|
|
44
|
+
INSERT INTO customer_pipeline_stages (id, organization_id, tenant_id, pipeline_id, name, position, created_at, updated_at)
|
|
45
|
+
VALUES (gen_random_uuid(), r.organization_id, r.tenant_id, v_pipeline_id, stage_labels[v_pos], v_pos - 1, now(), now());
|
|
46
|
+
END LOOP;
|
|
47
|
+
END IF;
|
|
48
|
+
|
|
49
|
+
FOR v_pos IN 1..array_length(stage_values, 1) LOOP
|
|
50
|
+
SELECT id INTO v_stage_id FROM customer_pipeline_stages
|
|
51
|
+
WHERE pipeline_id = v_pipeline_id AND name = stage_labels[v_pos] LIMIT 1;
|
|
52
|
+
IF v_stage_id IS NOT NULL THEN
|
|
53
|
+
UPDATE customer_deals
|
|
54
|
+
SET pipeline_id = v_pipeline_id, pipeline_stage_id = v_stage_id
|
|
55
|
+
WHERE organization_id = r.organization_id AND tenant_id = r.tenant_id
|
|
56
|
+
AND pipeline_id IS NULL
|
|
57
|
+
AND pipeline_stage IN (stage_values[v_pos], stage_labels[v_pos]);
|
|
58
|
+
END IF;
|
|
59
|
+
END LOOP;
|
|
60
|
+
|
|
61
|
+
-- deals with unknown stage value: assign to pipeline, stage stays NULL
|
|
62
|
+
UPDATE customer_deals SET pipeline_id = v_pipeline_id
|
|
63
|
+
WHERE organization_id = r.organization_id AND tenant_id = r.tenant_id AND pipeline_id IS NULL;
|
|
64
|
+
END LOOP;
|
|
65
|
+
END $$;
|
|
66
|
+
`);
|
|
67
|
+
}
|
|
68
|
+
async down() {
|
|
69
|
+
this.addSql(`alter table "customer_deals" drop column "pipeline_id", drop column "pipeline_stage_id";`);
|
|
70
|
+
this.addSql(`drop table if exists "customer_pipeline_stages";`);
|
|
71
|
+
this.addSql(`drop table if exists "customer_pipelines";`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export {
|
|
75
|
+
Migration20260218191730
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=Migration20260218191730.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/modules/customers/migrations/Migration20260218191730.ts"],
|
|
4
|
+
"sourcesContent": ["import { Migration } from '@mikro-orm/migrations';\n\nexport class Migration20260218191730 extends Migration {\n\n override async up(): Promise<void> {\n this.addSql(`create table if not exists \"customer_pipelines\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"is_default\" boolean not null default false, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, constraint \"customer_pipelines_pkey\" primary key (\"id\"));`);\n this.addSql(`create index if not exists \"customer_pipelines_org_tenant_idx\" on \"customer_pipelines\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table if not exists \"customer_pipeline_stages\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"pipeline_id\" uuid not null, \"name\" text not null, \"position\" int not null default 0, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, constraint \"customer_pipeline_stages_pkey\" primary key (\"id\"));`);\n\n // Rename columns from duplicate migration if they exist (label\u2192name, stage_order\u2192position)\n this.addSql(`DO $$ BEGIN ALTER TABLE \"customer_pipeline_stages\" RENAME COLUMN \"label\" TO \"name\"; EXCEPTION WHEN undefined_column THEN NULL; END $$;`);\n this.addSql(`DO $$ BEGIN ALTER TABLE \"customer_pipeline_stages\" RENAME COLUMN \"stage_order\" TO \"position\"; EXCEPTION WHEN undefined_column THEN NULL; END $$;`);\n\n this.addSql(`create index if not exists \"customer_pipeline_stages_pipeline_position_idx\" on \"customer_pipeline_stages\" (\"pipeline_id\", \"position\");`);\n this.addSql(`create index if not exists \"customer_pipeline_stages_org_tenant_idx\" on \"customer_pipeline_stages\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`DO $$ BEGIN ALTER TABLE \"customer_deals\" ADD COLUMN \"pipeline_id\" uuid null; EXCEPTION WHEN duplicate_column THEN NULL; END $$;`);\n this.addSql(`DO $$ BEGIN ALTER TABLE \"customer_deals\" ADD COLUMN \"pipeline_stage_id\" uuid null; EXCEPTION WHEN duplicate_column THEN NULL; END $$;`);\n\n // Data migration: backfill existing deals from legacy pipeline_stage (text) \u2192 pipeline_id + pipeline_stage_id\n this.addSql(`\n DO $$\n DECLARE\n r RECORD;\n v_pipeline_id UUID;\n v_stage_id UUID;\n v_pos INT;\n stage_values TEXT[] := ARRAY[\n 'opportunity','marketing_qualified_lead','sales_qualified_lead',\n 'offering','negotiations','win','loose','stalled'\n ];\n stage_labels TEXT[] := ARRAY[\n 'Opportunity','Marketing Qualified Lead','Sales Qualified Lead',\n 'Offering','Negotiations','Win','Loose','Stalled'\n ];\n BEGIN\n FOR r IN (\n SELECT DISTINCT organization_id, tenant_id FROM customer_deals\n WHERE pipeline_stage IS NOT NULL AND pipeline_stage <> '' AND pipeline_id IS NULL\n ) LOOP\n SELECT id INTO v_pipeline_id FROM customer_pipelines\n WHERE organization_id = r.organization_id AND tenant_id = r.tenant_id AND is_default = true LIMIT 1;\n\n IF v_pipeline_id IS NULL THEN\n INSERT INTO customer_pipelines (id, organization_id, tenant_id, name, is_default, created_at, updated_at)\n VALUES (gen_random_uuid(), r.organization_id, r.tenant_id, 'Default Pipeline', true, now(), now())\n RETURNING id INTO v_pipeline_id;\n END IF;\n\n IF NOT EXISTS (SELECT 1 FROM customer_pipeline_stages WHERE pipeline_id = v_pipeline_id) THEN\n FOR v_pos IN 1..array_length(stage_labels, 1) LOOP\n INSERT INTO customer_pipeline_stages (id, organization_id, tenant_id, pipeline_id, name, position, created_at, updated_at)\n VALUES (gen_random_uuid(), r.organization_id, r.tenant_id, v_pipeline_id, stage_labels[v_pos], v_pos - 1, now(), now());\n END LOOP;\n END IF;\n\n FOR v_pos IN 1..array_length(stage_values, 1) LOOP\n SELECT id INTO v_stage_id FROM customer_pipeline_stages\n WHERE pipeline_id = v_pipeline_id AND name = stage_labels[v_pos] LIMIT 1;\n IF v_stage_id IS NOT NULL THEN\n UPDATE customer_deals\n SET pipeline_id = v_pipeline_id, pipeline_stage_id = v_stage_id\n WHERE organization_id = r.organization_id AND tenant_id = r.tenant_id\n AND pipeline_id IS NULL\n AND pipeline_stage IN (stage_values[v_pos], stage_labels[v_pos]);\n END IF;\n END LOOP;\n\n -- deals with unknown stage value: assign to pipeline, stage stays NULL\n UPDATE customer_deals SET pipeline_id = v_pipeline_id\n WHERE organization_id = r.organization_id AND tenant_id = r.tenant_id AND pipeline_id IS NULL;\n END LOOP;\n END $$;\n `);\n }\n\n override async down(): Promise<void> {\n this.addSql(`alter table \"customer_deals\" drop column \"pipeline_id\", drop column \"pipeline_stage_id\";`);\n this.addSql(`drop table if exists \"customer_pipeline_stages\";`);\n this.addSql(`drop table if exists \"customer_pipelines\";`);\n }\n\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB;AAEnB,MAAM,gCAAgC,UAAU;AAAA,EAErD,MAAe,KAAoB;AACjC,SAAK,OAAO,+VAA+V;AAC3W,SAAK,OAAO,0HAA0H;AAEtI,SAAK,OAAO,8XAA8X;AAG1Y,SAAK,OAAO,wIAAwI;AACpJ,SAAK,OAAO,kJAAkJ;AAE9J,SAAK,OAAO,wIAAwI;AACpJ,SAAK,OAAO,sIAAsI;AAElJ,SAAK,OAAO,iIAAiI;AAC7I,SAAK,OAAO,uIAAuI;AAGnJ,SAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAqDX;AAAA,EACH;AAAA,EAEA,MAAe,OAAsB;AACnC,SAAK,OAAO,0FAA0F;AACtG,SAAK,OAAO,kDAAkD;AAC9D,SAAK,OAAO,4CAA4C;AAAA,EAC1D;AAEF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|