@chatman-media/storage 1.14.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +137 -0
- package/dist/schema.d.ts +1521 -0
- package/dist/schema.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -35,10 +35,15 @@ __export(exports_schema, {
|
|
|
35
35
|
skillOutcomes: () => skillOutcomes,
|
|
36
36
|
shadowEvaluations: () => shadowEvaluations,
|
|
37
37
|
sessions: () => sessions,
|
|
38
|
+
serviceCatalogItems: () => serviceCatalogItems,
|
|
38
39
|
selfPlayMatches: () => selfPlayMatches,
|
|
39
40
|
referralCodes: () => referralCodes,
|
|
40
41
|
questionnaireTokens: () => questionnaireTokens,
|
|
41
42
|
passwordResets: () => passwordResets,
|
|
43
|
+
partners: () => partners,
|
|
44
|
+
partnerSettlements: () => partnerSettlements,
|
|
45
|
+
partnerServices: () => partnerServices,
|
|
46
|
+
partnerDeals: () => partnerDeals,
|
|
42
47
|
pairwiseMatches: () => pairwiseMatches,
|
|
43
48
|
outreachCampaigns: () => outreachCampaigns,
|
|
44
49
|
outreachCampaignLeads: () => outreachCampaignLeads,
|
|
@@ -64,6 +69,7 @@ __export(exports_schema, {
|
|
|
64
69
|
exchangeRates: () => exchangeRates,
|
|
65
70
|
exchangeRateTiers: () => exchangeRateTiers,
|
|
66
71
|
exchangeOrders: () => exchangeOrders,
|
|
72
|
+
earlyAccessSignups: () => earlyAccessSignups,
|
|
67
73
|
directorHooks: () => directorHooks,
|
|
68
74
|
conversations: () => conversations,
|
|
69
75
|
contacts: () => contacts,
|
|
@@ -3233,6 +3239,25 @@ var referralCodes = pgTable("referral_codes", {
|
|
|
3233
3239
|
uniqueIndex("uniq_referral_codes_code").on(t.code),
|
|
3234
3240
|
index("idx_referral_codes_tenant").on(t.tenantId)
|
|
3235
3241
|
]);
|
|
3242
|
+
var earlyAccessSignups = pgTable("early_access_signups", {
|
|
3243
|
+
id: serial("id").primaryKey(),
|
|
3244
|
+
email: text("email").notNull(),
|
|
3245
|
+
name: text("name"),
|
|
3246
|
+
company: text("company"),
|
|
3247
|
+
useCase: text("use_case"),
|
|
3248
|
+
source: text("source").notNull().default("landing"),
|
|
3249
|
+
locale: text("locale").notNull().default("ru"),
|
|
3250
|
+
status: text("status").notNull().default("new"),
|
|
3251
|
+
userAgent: text("user_agent"),
|
|
3252
|
+
ip: text("ip"),
|
|
3253
|
+
metaJson: text("meta_json").notNull().default("{}"),
|
|
3254
|
+
createdAt: integer("created_at").notNull().default(epochNow()),
|
|
3255
|
+
updatedAt: integer("updated_at").notNull().default(epochNow())
|
|
3256
|
+
}, (t) => [
|
|
3257
|
+
uniqueIndex("uniq_early_access_email").on(t.email),
|
|
3258
|
+
index("idx_early_access_status_created").on(t.status, t.createdAt),
|
|
3259
|
+
index("idx_early_access_source").on(t.source)
|
|
3260
|
+
]);
|
|
3236
3261
|
var stageWebhooks = pgTable("stage_webhooks", {
|
|
3237
3262
|
id: serial("id").primaryKey(),
|
|
3238
3263
|
tenantId: integer("tenant_id").notNull().references(() => tenants.id, { onDelete: "cascade" }),
|
|
@@ -3458,6 +3483,112 @@ var exchangeOrders = pgTable("exchange_orders", {
|
|
|
3458
3483
|
index("idx_exchange_orders_tenant_created").on(t.tenantId, t.createdAt),
|
|
3459
3484
|
index("idx_exchange_orders_awaiting_ttl").on(t.status, t.rateExpiresAt).where(sql`status = 'awaiting_payment'`)
|
|
3460
3485
|
]);
|
|
3486
|
+
var partners = pgTable("partners", {
|
|
3487
|
+
id: serial("id").primaryKey(),
|
|
3488
|
+
tenantId: integer("tenant_id").notNull().references(() => tenants.id, { onDelete: "cascade" }),
|
|
3489
|
+
name: text("name").notNull(),
|
|
3490
|
+
status: text("status").notNull().default("active"),
|
|
3491
|
+
contactName: text("contact_name"),
|
|
3492
|
+
contactChannel: text("contact_channel"),
|
|
3493
|
+
contactValue: text("contact_value"),
|
|
3494
|
+
defaultCommissionPct: doublePrecision("default_commission_pct").notNull().default(0),
|
|
3495
|
+
settlementCurrency: text("settlement_currency").notNull().default("THB"),
|
|
3496
|
+
notes: text("notes"),
|
|
3497
|
+
createdAt: integer("created_at").notNull().default(epochNow()),
|
|
3498
|
+
updatedAt: integer("updated_at").notNull().default(epochNow())
|
|
3499
|
+
}, (t) => [
|
|
3500
|
+
check("partners_status_check", sql`${t.status} IN ('active','archived')`),
|
|
3501
|
+
index("idx_partners_tenant_status").on(t.tenantId, t.status)
|
|
3502
|
+
]);
|
|
3503
|
+
var partnerServices = pgTable("partner_services", {
|
|
3504
|
+
id: serial("id").primaryKey(),
|
|
3505
|
+
tenantId: integer("tenant_id").notNull().references(() => tenants.id, { onDelete: "cascade" }),
|
|
3506
|
+
partnerId: integer("partner_id").notNull().references(() => partners.id, { onDelete: "cascade" }),
|
|
3507
|
+
name: text("name").notNull(),
|
|
3508
|
+
category: text("category"),
|
|
3509
|
+
funnelId: integer("funnel_id").references(() => funnels.id, { onDelete: "set null" }),
|
|
3510
|
+
stageDefinitionId: integer("stage_definition_id").references(() => stageDefinitions.id, { onDelete: "set null" }),
|
|
3511
|
+
commissionPct: doublePrecision("commission_pct").notNull().default(0),
|
|
3512
|
+
isActive: boolean("is_active").notNull().default(true),
|
|
3513
|
+
notes: text("notes"),
|
|
3514
|
+
createdAt: integer("created_at").notNull().default(epochNow()),
|
|
3515
|
+
updatedAt: integer("updated_at").notNull().default(epochNow())
|
|
3516
|
+
}, (t) => [
|
|
3517
|
+
uniqueIndex("uniq_partner_services_name").on(t.tenantId, t.partnerId, t.name),
|
|
3518
|
+
index("idx_partner_services_tenant_active").on(t.tenantId, t.isActive),
|
|
3519
|
+
index("idx_partner_services_stage").on(t.tenantId, t.stageDefinitionId)
|
|
3520
|
+
]);
|
|
3521
|
+
var serviceCatalogItems = pgTable("service_catalog_items", {
|
|
3522
|
+
id: serial("id").primaryKey(),
|
|
3523
|
+
tenantId: integer("tenant_id").notNull().references(() => tenants.id, { onDelete: "cascade" }),
|
|
3524
|
+
slug: text("slug").notNull(),
|
|
3525
|
+
name: text("name").notNull(),
|
|
3526
|
+
category: text("category"),
|
|
3527
|
+
description: text("description"),
|
|
3528
|
+
routeType: text("route_type").notNull().default("manual"),
|
|
3529
|
+
funnelId: integer("funnel_id").references(() => funnels.id, { onDelete: "set null" }),
|
|
3530
|
+
partnerServiceId: integer("partner_service_id").references(() => partnerServices.id, { onDelete: "set null" }),
|
|
3531
|
+
webhookUrl: text("webhook_url"),
|
|
3532
|
+
isActive: boolean("is_active").notNull().default(true),
|
|
3533
|
+
sortOrder: integer("sort_order").notNull().default(0),
|
|
3534
|
+
metadataJson: text("metadata_json").notNull().default("{}"),
|
|
3535
|
+
createdAt: integer("created_at").notNull().default(epochNow()),
|
|
3536
|
+
updatedAt: integer("updated_at").notNull().default(epochNow())
|
|
3537
|
+
}, (t) => [
|
|
3538
|
+
check("service_catalog_route_type_check", sql`${t.routeType} IN ('manual','funnel','partner_service','webhook')`),
|
|
3539
|
+
uniqueIndex("uniq_service_catalog_slug").on(t.tenantId, t.slug),
|
|
3540
|
+
index("idx_service_catalog_tenant_active").on(t.tenantId, t.isActive, t.sortOrder),
|
|
3541
|
+
index("idx_service_catalog_funnel").on(t.tenantId, t.funnelId),
|
|
3542
|
+
index("idx_service_catalog_partner_service").on(t.tenantId, t.partnerServiceId)
|
|
3543
|
+
]);
|
|
3544
|
+
var partnerDeals = pgTable("partner_deals", {
|
|
3545
|
+
id: serial("id").primaryKey(),
|
|
3546
|
+
tenantId: integer("tenant_id").notNull().references(() => tenants.id, { onDelete: "cascade" }),
|
|
3547
|
+
partnerId: integer("partner_id").references(() => partners.id, { onDelete: "set null" }),
|
|
3548
|
+
serviceId: integer("service_id").references(() => partnerServices.id, { onDelete: "set null" }),
|
|
3549
|
+
leadId: integer("lead_id").references(() => leads.id, { onDelete: "set null" }),
|
|
3550
|
+
stageDefinitionId: integer("stage_definition_id").references(() => stageDefinitions.id, { onDelete: "set null" }),
|
|
3551
|
+
status: text("status").notNull().default("sent"),
|
|
3552
|
+
handoffUrl: text("handoff_url"),
|
|
3553
|
+
handoffMode: text("handoff_mode").notNull().default("fire_and_forget"),
|
|
3554
|
+
grossAmount: doublePrecision("gross_amount"),
|
|
3555
|
+
currency: text("currency").notNull().default("THB"),
|
|
3556
|
+
commissionPct: doublePrecision("commission_pct").notNull().default(0),
|
|
3557
|
+
commissionAmount: doublePrecision("commission_amount"),
|
|
3558
|
+
proofJson: text("proof_json"),
|
|
3559
|
+
notes: text("notes"),
|
|
3560
|
+
sentAt: integer("sent_at"),
|
|
3561
|
+
acceptedAt: integer("accepted_at"),
|
|
3562
|
+
completedAt: integer("completed_at"),
|
|
3563
|
+
cancelledAt: integer("cancelled_at"),
|
|
3564
|
+
settledAt: integer("settled_at"),
|
|
3565
|
+
createdAt: integer("created_at").notNull().default(epochNow()),
|
|
3566
|
+
updatedAt: integer("updated_at").notNull().default(epochNow())
|
|
3567
|
+
}, (t) => [
|
|
3568
|
+
check("partner_deals_status_check", sql`${t.status} IN ('sent','accepted','rejected','completed','cancelled','disputed','settled')`),
|
|
3569
|
+
check("partner_deals_mode_check", sql`${t.handoffMode} IN ('fire_and_forget','await_callback')`),
|
|
3570
|
+
index("idx_partner_deals_tenant_status").on(t.tenantId, t.status),
|
|
3571
|
+
index("idx_partner_deals_partner").on(t.tenantId, t.partnerId),
|
|
3572
|
+
index("idx_partner_deals_lead").on(t.tenantId, t.leadId)
|
|
3573
|
+
]);
|
|
3574
|
+
var partnerSettlements = pgTable("partner_settlements", {
|
|
3575
|
+
id: serial("id").primaryKey(),
|
|
3576
|
+
tenantId: integer("tenant_id").notNull().references(() => tenants.id, { onDelete: "cascade" }),
|
|
3577
|
+
partnerId: integer("partner_id").notNull().references(() => partners.id, { onDelete: "cascade" }),
|
|
3578
|
+
periodStart: integer("period_start").notNull(),
|
|
3579
|
+
periodEnd: integer("period_end").notNull(),
|
|
3580
|
+
status: text("status").notNull().default("draft"),
|
|
3581
|
+
totalGross: doublePrecision("total_gross").notNull().default(0),
|
|
3582
|
+
totalCommission: doublePrecision("total_commission").notNull().default(0),
|
|
3583
|
+
currency: text("currency").notNull().default("THB"),
|
|
3584
|
+
paidAt: integer("paid_at"),
|
|
3585
|
+
notes: text("notes"),
|
|
3586
|
+
createdAt: integer("created_at").notNull().default(epochNow()),
|
|
3587
|
+
updatedAt: integer("updated_at").notNull().default(epochNow())
|
|
3588
|
+
}, (t) => [
|
|
3589
|
+
check("partner_settlements_status_check", sql`${t.status} IN ('draft','issued','paid','cancelled')`),
|
|
3590
|
+
index("idx_partner_settlements_partner").on(t.tenantId, t.partnerId, t.periodStart)
|
|
3591
|
+
]);
|
|
3461
3592
|
// src/integration-helpers.ts
|
|
3462
3593
|
import { readdirSync, readFileSync } from "node:fs";
|
|
3463
3594
|
import { join } from "node:path";
|
|
@@ -5496,11 +5627,16 @@ export {
|
|
|
5496
5627
|
skillOutcomes,
|
|
5497
5628
|
shadowEvaluations,
|
|
5498
5629
|
sessions,
|
|
5630
|
+
serviceCatalogItems,
|
|
5499
5631
|
selfPlayMatches,
|
|
5500
5632
|
exports_schema as schema,
|
|
5501
5633
|
referralCodes,
|
|
5502
5634
|
questionnaireTokens,
|
|
5503
5635
|
passwordResets,
|
|
5636
|
+
partners,
|
|
5637
|
+
partnerSettlements,
|
|
5638
|
+
partnerServices,
|
|
5639
|
+
partnerDeals,
|
|
5504
5640
|
pairwiseMatches,
|
|
5505
5641
|
outreachCampaigns,
|
|
5506
5642
|
outreachCampaignLeads,
|
|
@@ -5526,6 +5662,7 @@ export {
|
|
|
5526
5662
|
exchangeRates,
|
|
5527
5663
|
exchangeRateTiers,
|
|
5528
5664
|
exchangeOrders,
|
|
5665
|
+
earlyAccessSignups,
|
|
5529
5666
|
dropIsolatedDb,
|
|
5530
5667
|
directorHooks,
|
|
5531
5668
|
createIsolatedDb,
|