taks-d.2.1

This commit is contained in:
phaichayon
2026-06-17 14:46:52 +07:00
parent 0a484e0b45
commit 5be6c54272
39 changed files with 6254 additions and 316 deletions

View File

@@ -251,6 +251,18 @@ export const crmEnquiryFollowups = pgTable('crm_enquiry_followups', {
updatedBy: text('updated_by').notNull()
});
export const crmEnquiryCustomers = pgTable('crm_enquiry_customers', {
id: text('id').primaryKey(),
organizationId: text('organization_id').notNull(),
enquiryId: text('enquiry_id').notNull(),
customerId: text('customer_id').notNull(),
role: text('role').notNull(),
remark: text('remark'),
createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
deletedAt: timestamp('deleted_at', { withTimezone: true })
});
export const crmQuotations = pgTable(
'crm_quotations',
{
@@ -339,6 +351,7 @@ export const crmQuotationCustomers = pgTable('crm_quotation_customers', {
customerId: text('customer_id').notNull(),
role: text('role').notNull(),
isPrimary: boolean('is_primary').default(false).notNull(),
remark: text('remark'),
createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
deletedAt: timestamp('deleted_at', { withTimezone: true })

View File

@@ -171,11 +171,18 @@ const FOUNDATION_OPTIONS = {
{ code: 'manual', label: 'Manual', value: 'manual', sortOrder: 2 },
{ code: 'system', label: 'System', value: 'system', sortOrder: 3 }
],
crm_quotation_customer_role: [
{ code: 'owner', label: 'Owner', value: 'owner', sortOrder: 1 },
{ code: 'consultant', label: 'Consultant', value: 'consultant', sortOrder: 2 },
{ code: 'contractor', label: 'Contractor', value: 'contractor', sortOrder: 3 },
{ code: 'billing', label: 'Billing', value: 'billing', sortOrder: 4 }
crm_project_party_role: [
{
code: 'billing_customer',
label: 'Billing Customer',
value: 'billing_customer',
sortOrder: 1
},
{ code: 'customer', label: 'Customer', value: 'customer', sortOrder: 2 },
{ code: 'consultant', label: 'Consultant', value: 'consultant', sortOrder: 3 },
{ code: 'contractor', label: 'Contractor', value: 'contractor', sortOrder: 4 },
{ code: 'end_customer', label: 'End Customer', value: 'end_customer', sortOrder: 5 },
{ code: 'other', label: 'Other', value: 'other', sortOrder: 6 }
],
crm_quotation_topic_type: [
{ code: 'scope', label: 'Scope', value: 'scope', sortOrder: 1 },