@wraps.dev/cli 2.30.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +5 -8
  2. package/dist/cli.js +942 -2211
  3. package/dist/cli.js.map +1 -1
  4. package/dist/console/assets/{index-P0x5JCC4.js → index--39O8UcT.js} +3 -3
  5. package/dist/console/assets/index-D6au_OkL.css +1 -0
  6. package/dist/console/index.html +2 -2
  7. package/dist/lambda/agent-enforcer/.bundled +1 -1
  8. package/dist/lambda/event-processor/.bundled +1 -1
  9. package/dist/lambda/inbound-processor/.bundled +1 -1
  10. package/dist/lambda/sms-event-processor/.bundled +1 -1
  11. package/package.json +4 -5
  12. package/dist/api-lambda.zip +0 -0
  13. package/dist/console/assets/index-BP4FpEpn.css +0 -1
  14. package/dist/selfhost-migrations/0000_absent_rogue.sql +0 -203
  15. package/dist/selfhost-migrations/0001_polite_maverick.sql +0 -17
  16. package/dist/selfhost-migrations/0002_perpetual_scorpion.sql +0 -1
  17. package/dist/selfhost-migrations/0003_wealthy_absorbing_man.sql +0 -1
  18. package/dist/selfhost-migrations/0004_opposite_blur.sql +0 -1
  19. package/dist/selfhost-migrations/0005_clear_terror.sql +0 -4
  20. package/dist/selfhost-migrations/0006_soft_black_widow.sql +0 -20
  21. package/dist/selfhost-migrations/0007_dazzling_saracen.sql +0 -124
  22. package/dist/selfhost-migrations/0008_broad_hannibal_king.sql +0 -33
  23. package/dist/selfhost-migrations/0009_bouncy_mystique.sql +0 -73
  24. package/dist/selfhost-migrations/0010_cheerful_valeria_richards.sql +0 -18
  25. package/dist/selfhost-migrations/0011_absent_thunderbolts.sql +0 -2
  26. package/dist/selfhost-migrations/0012_demonic_donald_blake.sql +0 -1
  27. package/dist/selfhost-migrations/0013_nifty_preak.sql +0 -143
  28. package/dist/selfhost-migrations/0014_hesitant_beast.sql +0 -2
  29. package/dist/selfhost-migrations/0015_blue_giant_girl.sql +0 -1
  30. package/dist/selfhost-migrations/0016_cooing_overlord.sql +0 -1
  31. package/dist/selfhost-migrations/0017_tranquil_ender_wiggin.sql +0 -11
  32. package/dist/selfhost-migrations/0018_talented_groot.sql +0 -8
  33. package/dist/selfhost-migrations/0019_ambitious_devos.sql +0 -3
  34. package/dist/selfhost-migrations/0020_misty_master_mold.sql +0 -95
  35. package/dist/selfhost-migrations/0021_regular_harrier.sql +0 -14
  36. package/dist/selfhost-migrations/0022_sour_blizzard.sql +0 -10
  37. package/dist/selfhost-migrations/0023_flawless_psynapse.sql +0 -1
  38. package/dist/selfhost-migrations/0024_premium_blindfold.sql +0 -1
  39. package/dist/selfhost-migrations/0025_unusual_santa_claus.sql +0 -1
  40. package/dist/selfhost-migrations/0026_volatile_pandemic.sql +0 -2
  41. package/dist/selfhost-migrations/0027_workable_logan.sql +0 -4
  42. package/dist/selfhost-migrations/0028_familiar_prodigy.sql +0 -1
  43. package/dist/selfhost-migrations/0029_cute_maddog.sql +0 -13
  44. package/dist/selfhost-migrations/0030_adorable_scarecrow.sql +0 -1
  45. package/dist/selfhost-migrations/0031_material_slapstick.sql +0 -10
  46. package/dist/selfhost-migrations/0032_hot_dust.sql +0 -11
  47. package/dist/selfhost-migrations/0033_slow_deathbird.sql +0 -1
  48. package/dist/selfhost-migrations/0034_lush_rafael_vega.sql +0 -12
  49. package/dist/selfhost-migrations/0035_normal_red_hulk.sql +0 -8
  50. package/dist/selfhost-migrations/0036_marvelous_ezekiel.sql +0 -1
  51. package/dist/selfhost-migrations/0037_swift_talisman.sql +0 -8
  52. package/dist/selfhost-migrations/0038_first_mandroid.sql +0 -1
  53. package/dist/selfhost-migrations/0039_fixed_stryfe.sql +0 -1
  54. package/dist/selfhost-migrations/0040_add_channel_check_constraints.sql +0 -2
  55. package/dist/selfhost-migrations/0041_black_spencer_smythe.sql +0 -1
  56. package/dist/selfhost-migrations/0042_plain_marvel_zombies.sql +0 -2
  57. package/dist/selfhost-migrations/0043_curved_champions.sql +0 -1
  58. package/dist/selfhost-migrations/0044_clean_iceman.sql +0 -1
  59. package/dist/selfhost-migrations/0045_condemned_steel_serpent.sql +0 -1
  60. package/dist/selfhost-migrations/0046_steep_ultimo.sql +0 -2
  61. package/dist/selfhost-migrations/0047_empty_sleepwalker.sql +0 -2
  62. package/dist/selfhost-migrations/0048_cheerful_multiple_man.sql +0 -1
  63. package/dist/selfhost-migrations/0049_nostalgic_loki.sql +0 -3
  64. package/dist/selfhost-migrations/0050_add_engagement_metadata.sql +0 -4
  65. package/dist/selfhost-migrations/0051_odd_marrow.sql +0 -2
  66. package/dist/selfhost-migrations/0052_redundant_siren.sql +0 -5
  67. package/dist/selfhost-migrations/0053_soft_carnage.sql +0 -31
  68. package/dist/selfhost-migrations/0054_blushing_vin_gonzales.sql +0 -1
  69. package/dist/selfhost-migrations/0055_broadcast_resume_columns.sql +0 -12
  70. package/dist/selfhost-migrations/0056_broadcast_resume_dedup_cleanup.sql +0 -31
  71. package/dist/selfhost-migrations/0057_audit_log_actoremail_jsonb.sql +0 -5
  72. package/dist/selfhost-migrations/0058_email_log_sent_at_idx.sql +0 -1
  73. package/dist/selfhost-migrations/0059_message_send_claimed_at.sql +0 -1
  74. package/dist/selfhost-migrations/0060_harsh_nehzno.sql +0 -1
  75. package/dist/selfhost-migrations/0061_flashy_spirit.sql +0 -1
  76. package/dist/selfhost-migrations/0062_next_timeslip.sql +0 -2
  77. package/dist/selfhost-migrations/0063_greedy_legion.sql +0 -17
  78. package/dist/selfhost-migrations/0064_wise_brood.sql +0 -42
  79. package/dist/selfhost-migrations/0065_public_the_fallen.sql +0 -2
  80. package/dist/selfhost-migrations/0066_odd_yellow_claw.sql +0 -3
  81. package/dist/selfhost-migrations/0067_empty_ultimo.sql +0 -1
  82. package/dist/selfhost-migrations/0068_abandoned_mephisto.sql +0 -1
  83. package/dist/selfhost-migrations/0069_abnormal_zuras.sql +0 -1
  84. package/dist/selfhost-migrations/CLAUDE.md +0 -49
  85. package/dist/selfhost-migrations/meta/0000_snapshot.json +0 -1311
  86. package/dist/selfhost-migrations/meta/0001_snapshot.json +0 -1454
  87. package/dist/selfhost-migrations/meta/0002_snapshot.json +0 -1460
  88. package/dist/selfhost-migrations/meta/0003_snapshot.json +0 -1467
  89. package/dist/selfhost-migrations/meta/0004_snapshot.json +0 -1473
  90. package/dist/selfhost-migrations/meta/0005_snapshot.json +0 -1499
  91. package/dist/selfhost-migrations/meta/0006_snapshot.json +0 -1617
  92. package/dist/selfhost-migrations/meta/0007_snapshot.json +0 -2581
  93. package/dist/selfhost-migrations/meta/0008_snapshot.json +0 -2861
  94. package/dist/selfhost-migrations/meta/0009_snapshot.json +0 -3447
  95. package/dist/selfhost-migrations/meta/0010_snapshot.json +0 -3586
  96. package/dist/selfhost-migrations/meta/0011_snapshot.json +0 -3600
  97. package/dist/selfhost-migrations/meta/0012_snapshot.json +0 -3607
  98. package/dist/selfhost-migrations/meta/0013_snapshot.json +0 -4697
  99. package/dist/selfhost-migrations/meta/0014_snapshot.json +0 -4704
  100. package/dist/selfhost-migrations/meta/0015_snapshot.json +0 -4697
  101. package/dist/selfhost-migrations/meta/0016_snapshot.json +0 -4703
  102. package/dist/selfhost-migrations/meta/0017_snapshot.json +0 -4769
  103. package/dist/selfhost-migrations/meta/0018_snapshot.json +0 -4821
  104. package/dist/selfhost-migrations/meta/0019_snapshot.json +0 -4840
  105. package/dist/selfhost-migrations/meta/0020_snapshot.json +0 -5602
  106. package/dist/selfhost-migrations/meta/0021_snapshot.json +0 -5729
  107. package/dist/selfhost-migrations/meta/0022_snapshot.json +0 -5792
  108. package/dist/selfhost-migrations/meta/0023_snapshot.json +0 -5799
  109. package/dist/selfhost-migrations/meta/0024_snapshot.json +0 -5821
  110. package/dist/selfhost-migrations/meta/0025_snapshot.json +0 -5831
  111. package/dist/selfhost-migrations/meta/0026_snapshot.json +0 -5844
  112. package/dist/selfhost-migrations/meta/0027_snapshot.json +0 -5864
  113. package/dist/selfhost-migrations/meta/0028_snapshot.json +0 -5871
  114. package/dist/selfhost-migrations/meta/0029_snapshot.json +0 -5984
  115. package/dist/selfhost-migrations/meta/0030_snapshot.json +0 -5990
  116. package/dist/selfhost-migrations/meta/0031_snapshot.json +0 -5950
  117. package/dist/selfhost-migrations/meta/0032_snapshot.json +0 -6042
  118. package/dist/selfhost-migrations/meta/0033_snapshot.json +0 -6057
  119. package/dist/selfhost-migrations/meta/0034_snapshot.json +0 -6130
  120. package/dist/selfhost-migrations/meta/0035_snapshot.json +0 -6195
  121. package/dist/selfhost-migrations/meta/0036_snapshot.json +0 -6201
  122. package/dist/selfhost-migrations/meta/0037_snapshot.json +0 -6265
  123. package/dist/selfhost-migrations/meta/0038_snapshot.json +0 -6271
  124. package/dist/selfhost-migrations/meta/0039_snapshot.json +0 -6278
  125. package/dist/selfhost-migrations/meta/0041_snapshot.json +0 -6284
  126. package/dist/selfhost-migrations/meta/0042_snapshot.json +0 -6297
  127. package/dist/selfhost-migrations/meta/0043_snapshot.json +0 -6297
  128. package/dist/selfhost-migrations/meta/0044_snapshot.json +0 -6297
  129. package/dist/selfhost-migrations/meta/0045_snapshot.json +0 -6303
  130. package/dist/selfhost-migrations/meta/0046_snapshot.json +0 -6315
  131. package/dist/selfhost-migrations/meta/0047_snapshot.json +0 -6330
  132. package/dist/selfhost-migrations/meta/0048_snapshot.json +0 -6336
  133. package/dist/selfhost-migrations/meta/0049_snapshot.json +0 -6366
  134. package/dist/selfhost-migrations/meta/0050_snapshot.json +0 -6390
  135. package/dist/selfhost-migrations/meta/0051_snapshot.json +0 -6403
  136. package/dist/selfhost-migrations/meta/0052_snapshot.json +0 -6470
  137. package/dist/selfhost-migrations/meta/0053_snapshot.json +0 -6470
  138. package/dist/selfhost-migrations/meta/0054_snapshot.json +0 -6646
  139. package/dist/selfhost-migrations/meta/0055_snapshot.json +0 -6713
  140. package/dist/selfhost-migrations/meta/0056_snapshot.json +0 -6713
  141. package/dist/selfhost-migrations/meta/0057_snapshot.json +0 -6731
  142. package/dist/selfhost-migrations/meta/0059_snapshot.json +0 -6764
  143. package/dist/selfhost-migrations/meta/0060_snapshot.json +0 -7125
  144. package/dist/selfhost-migrations/meta/0061_snapshot.json +0 -7131
  145. package/dist/selfhost-migrations/meta/0062_snapshot.json +0 -7143
  146. package/dist/selfhost-migrations/meta/0063_snapshot.json +0 -7282
  147. package/dist/selfhost-migrations/meta/0064_snapshot.json +0 -7626
  148. package/dist/selfhost-migrations/meta/0065_snapshot.json +0 -7662
  149. package/dist/selfhost-migrations/meta/0066_snapshot.json +0 -7682
  150. package/dist/selfhost-migrations/meta/0067_snapshot.json +0 -7688
  151. package/dist/selfhost-migrations/meta/0068_snapshot.json +0 -7694
  152. package/dist/selfhost-migrations/meta/0069_snapshot.json +0 -7700
  153. package/dist/selfhost-migrations/meta/_journal.json +0 -496
@@ -1,124 +0,0 @@
1
- CREATE TYPE "public"."template_status" AS ENUM('DRAFT', 'PUBLISHED', 'ARCHIVED');--> statement-breakpoint
2
- CREATE TYPE "public"."variable_type" AS ENUM('TEXT', 'NUMBER', 'BOOLEAN', 'DATE', 'URL', 'EMAIL');--> statement-breakpoint
3
- CREATE TABLE "ai_conversation" (
4
- "id" text PRIMARY KEY NOT NULL,
5
- "organization_id" text NOT NULL,
6
- "template_id" text,
7
- "messages" jsonb DEFAULT '[]'::jsonb,
8
- "total_tokens" integer DEFAULT 0 NOT NULL,
9
- "created_at" timestamp DEFAULT now() NOT NULL,
10
- "updated_at" timestamp DEFAULT now() NOT NULL,
11
- "created_by" text NOT NULL
12
- );
13
- --> statement-breakpoint
14
- CREATE TABLE "brand_kit" (
15
- "id" text PRIMARY KEY NOT NULL,
16
- "organization_id" text NOT NULL,
17
- "name" text DEFAULT 'Default' NOT NULL,
18
- "logo_url" text,
19
- "primary_color" text DEFAULT '#5046e5' NOT NULL,
20
- "secondary_color" text DEFAULT '#6366f1' NOT NULL,
21
- "background_color" text DEFAULT '#ffffff' NOT NULL,
22
- "text_color" text DEFAULT '#1f2937' NOT NULL,
23
- "font_family" text DEFAULT 'system-ui, sans-serif' NOT NULL,
24
- "heading_font_family" text,
25
- "button_style" text DEFAULT 'rounded' NOT NULL,
26
- "button_radius" text DEFAULT '4px' NOT NULL,
27
- "company_name" text,
28
- "company_address" text,
29
- "social_links" jsonb DEFAULT '[]'::jsonb,
30
- "source_domain" text,
31
- "auto_extracted" boolean DEFAULT false NOT NULL,
32
- "is_default" boolean DEFAULT false NOT NULL,
33
- "created_at" timestamp DEFAULT now() NOT NULL,
34
- "updated_at" timestamp DEFAULT now() NOT NULL
35
- );
36
- --> statement-breakpoint
37
- CREATE TABLE "reusable_block" (
38
- "id" text PRIMARY KEY NOT NULL,
39
- "organization_id" text NOT NULL,
40
- "name" text NOT NULL,
41
- "description" text,
42
- "category" text DEFAULT 'custom' NOT NULL,
43
- "content" jsonb NOT NULL,
44
- "thumbnail" text,
45
- "is_public" boolean DEFAULT false NOT NULL,
46
- "usage_count" integer DEFAULT 0 NOT NULL,
47
- "created_at" timestamp DEFAULT now() NOT NULL,
48
- "updated_at" timestamp DEFAULT now() NOT NULL,
49
- "created_by" text NOT NULL
50
- );
51
- --> statement-breakpoint
52
- CREATE TABLE "template" (
53
- "id" text PRIMARY KEY NOT NULL,
54
- "organization_id" text NOT NULL,
55
- "name" text NOT NULL,
56
- "description" text,
57
- "subject" text,
58
- "content" jsonb NOT NULL,
59
- "compiled_html" text,
60
- "compiled_text" text,
61
- "variables" jsonb DEFAULT '[]'::jsonb,
62
- "test_data" jsonb DEFAULT '{}'::jsonb,
63
- "room_id" text,
64
- "is_collaborative" boolean DEFAULT false NOT NULL,
65
- "ai_generated" boolean DEFAULT false NOT NULL,
66
- "ai_conversation_id" text,
67
- "ses_template_name" text,
68
- "published_at" timestamp,
69
- "status" "template_status" DEFAULT 'DRAFT' NOT NULL,
70
- "created_at" timestamp DEFAULT now() NOT NULL,
71
- "updated_at" timestamp DEFAULT now() NOT NULL,
72
- "created_by" text NOT NULL,
73
- "last_edited_by" text
74
- );
75
- --> statement-breakpoint
76
- CREATE TABLE "template_variable" (
77
- "id" text PRIMARY KEY NOT NULL,
78
- "organization_id" text NOT NULL,
79
- "name" text NOT NULL,
80
- "label" text NOT NULL,
81
- "type" "variable_type" NOT NULL,
82
- "required" boolean DEFAULT false NOT NULL,
83
- "fallback" text,
84
- "validation" jsonb,
85
- "created_at" timestamp DEFAULT now() NOT NULL,
86
- "updated_at" timestamp DEFAULT now() NOT NULL
87
- );
88
- --> statement-breakpoint
89
- CREATE TABLE "template_version" (
90
- "id" text PRIMARY KEY NOT NULL,
91
- "template_id" text NOT NULL,
92
- "content" jsonb NOT NULL,
93
- "version" integer NOT NULL,
94
- "created_at" timestamp DEFAULT now() NOT NULL,
95
- "created_by" text NOT NULL,
96
- "change_note" text
97
- );
98
- --> statement-breakpoint
99
- ALTER TABLE "ai_conversation" ADD CONSTRAINT "ai_conversation_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
100
- ALTER TABLE "ai_conversation" ADD CONSTRAINT "ai_conversation_template_id_template_id_fk" FOREIGN KEY ("template_id") REFERENCES "public"."template"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
101
- ALTER TABLE "ai_conversation" ADD CONSTRAINT "ai_conversation_created_by_user_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
102
- ALTER TABLE "brand_kit" ADD CONSTRAINT "brand_kit_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
103
- ALTER TABLE "reusable_block" ADD CONSTRAINT "reusable_block_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
104
- ALTER TABLE "reusable_block" ADD CONSTRAINT "reusable_block_created_by_user_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
105
- ALTER TABLE "template" ADD CONSTRAINT "template_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
106
- ALTER TABLE "template" ADD CONSTRAINT "template_created_by_user_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
107
- ALTER TABLE "template" ADD CONSTRAINT "template_last_edited_by_user_id_fk" FOREIGN KEY ("last_edited_by") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
108
- ALTER TABLE "template_variable" ADD CONSTRAINT "template_variable_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
109
- ALTER TABLE "template_version" ADD CONSTRAINT "template_version_template_id_template_id_fk" FOREIGN KEY ("template_id") REFERENCES "public"."template"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
110
- ALTER TABLE "template_version" ADD CONSTRAINT "template_version_created_by_user_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
111
- CREATE INDEX "ai_conversation_org_idx" ON "ai_conversation" USING btree ("organization_id");--> statement-breakpoint
112
- CREATE INDEX "ai_conversation_template_idx" ON "ai_conversation" USING btree ("template_id");--> statement-breakpoint
113
- CREATE INDEX "brand_kit_org_idx" ON "brand_kit" USING btree ("organization_id");--> statement-breakpoint
114
- CREATE INDEX "brand_kit_default_idx" ON "brand_kit" USING btree ("organization_id","is_default");--> statement-breakpoint
115
- CREATE INDEX "reusable_block_org_idx" ON "reusable_block" USING btree ("organization_id");--> statement-breakpoint
116
- CREATE INDEX "reusable_block_created_by_category_idx" ON "reusable_block" USING btree ("created_by","category");--> statement-breakpoint
117
- CREATE INDEX "reusable_block_public_category_idx" ON "reusable_block" USING btree ("is_public","category");--> statement-breakpoint
118
- CREATE INDEX "template_org_idx" ON "template" USING btree ("organization_id");--> statement-breakpoint
119
- CREATE INDEX "template_status_updated_at_idx" ON "template" USING btree ("status","updated_at");--> statement-breakpoint
120
- CREATE INDEX "template_created_by_idx" ON "template" USING btree ("created_by");--> statement-breakpoint
121
- CREATE UNIQUE INDEX "template_room_id_idx" ON "template" USING btree ("room_id");--> statement-breakpoint
122
- CREATE UNIQUE INDEX "template_variable_org_name_idx" ON "template_variable" USING btree ("organization_id","name");--> statement-breakpoint
123
- CREATE UNIQUE INDEX "template_version_template_version_idx" ON "template_version" USING btree ("template_id","version");--> statement-breakpoint
124
- CREATE INDEX "template_version_template_created_at_idx" ON "template_version" USING btree ("template_id","created_at");
@@ -1,33 +0,0 @@
1
- CREATE TABLE "ai_usage_log" (
2
- "id" text PRIMARY KEY NOT NULL,
3
- "organization_id" text NOT NULL,
4
- "user_id" text,
5
- "period_key" text NOT NULL,
6
- "feature_type" text DEFAULT 'ai_chat' NOT NULL,
7
- "template_id" text,
8
- "input_tokens" integer,
9
- "output_tokens" integer,
10
- "total_tokens" integer,
11
- "model" text,
12
- "duration_ms" integer,
13
- "created_at" timestamp DEFAULT now() NOT NULL
14
- );
15
- --> statement-breakpoint
16
- CREATE TABLE "ai_usage_monthly" (
17
- "id" text PRIMARY KEY NOT NULL,
18
- "organization_id" text NOT NULL,
19
- "period_key" text NOT NULL,
20
- "message_count" integer DEFAULT 0 NOT NULL,
21
- "updated_at" timestamp DEFAULT now() NOT NULL
22
- );
23
- --> statement-breakpoint
24
- ALTER TABLE "ai_usage_log" ADD CONSTRAINT "ai_usage_log_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
25
- ALTER TABLE "ai_usage_log" ADD CONSTRAINT "ai_usage_log_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
26
- ALTER TABLE "ai_usage_monthly" ADD CONSTRAINT "ai_usage_monthly_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
27
- CREATE INDEX "ai_usage_log_org_idx" ON "ai_usage_log" USING btree ("organization_id");--> statement-breakpoint
28
- CREATE INDEX "ai_usage_log_period_idx" ON "ai_usage_log" USING btree ("period_key");--> statement-breakpoint
29
- CREATE INDEX "ai_usage_log_org_period_idx" ON "ai_usage_log" USING btree ("organization_id","period_key");--> statement-breakpoint
30
- CREATE INDEX "ai_usage_log_user_idx" ON "ai_usage_log" USING btree ("user_id");--> statement-breakpoint
31
- CREATE INDEX "ai_usage_log_created_idx" ON "ai_usage_log" USING btree ("created_at");--> statement-breakpoint
32
- CREATE UNIQUE INDEX "ai_usage_monthly_org_period_idx" ON "ai_usage_monthly" USING btree ("organization_id","period_key");--> statement-breakpoint
33
- CREATE INDEX "ai_usage_monthly_period_idx" ON "ai_usage_monthly" USING btree ("period_key");
@@ -1,73 +0,0 @@
1
- CREATE TABLE "contact" (
2
- "id" text PRIMARY KEY NOT NULL,
3
- "organization_id" text NOT NULL,
4
- "email" text NOT NULL,
5
- "email_hash" text NOT NULL,
6
- "status" text DEFAULT 'active' NOT NULL,
7
- "properties" json DEFAULT '{}'::json NOT NULL,
8
- "last_activity_at" timestamp,
9
- "last_email_sent_at" timestamp,
10
- "last_email_opened_at" timestamp,
11
- "last_email_clicked_at" timestamp,
12
- "emails_sent" integer DEFAULT 0 NOT NULL,
13
- "emails_opened" integer DEFAULT 0 NOT NULL,
14
- "emails_clicked" integer DEFAULT 0 NOT NULL,
15
- "created_at" timestamp DEFAULT now() NOT NULL,
16
- "updated_at" timestamp DEFAULT now() NOT NULL,
17
- "confirmed_at" timestamp,
18
- "unsubscribed_at" timestamp,
19
- "bounced_at" timestamp,
20
- "complained_at" timestamp,
21
- "created_by" text
22
- );
23
- --> statement-breakpoint
24
- CREATE TABLE "contact_topic" (
25
- "contact_id" text NOT NULL,
26
- "topic_id" text NOT NULL,
27
- "status" text DEFAULT 'subscribed' NOT NULL,
28
- "subscribed_at" timestamp DEFAULT now(),
29
- "unsubscribed_at" timestamp,
30
- CONSTRAINT "contact_topic_contact_id_topic_id_pk" PRIMARY KEY("contact_id","topic_id")
31
- );
32
- --> statement-breakpoint
33
- CREATE TABLE "topic" (
34
- "id" text PRIMARY KEY NOT NULL,
35
- "organization_id" text NOT NULL,
36
- "name" text NOT NULL,
37
- "slug" text NOT NULL,
38
- "description" text,
39
- "public" boolean DEFAULT true NOT NULL,
40
- "double_opt_in" boolean DEFAULT false NOT NULL,
41
- "subscriber_count" integer DEFAULT 0 NOT NULL,
42
- "created_at" timestamp DEFAULT now() NOT NULL,
43
- "updated_at" timestamp DEFAULT now() NOT NULL,
44
- "created_by" text
45
- );
46
- --> statement-breakpoint
47
- CREATE TABLE "waitlist" (
48
- "id" text PRIMARY KEY NOT NULL,
49
- "email" text NOT NULL,
50
- "email_hash" text NOT NULL,
51
- "product" text NOT NULL,
52
- "source" text,
53
- "referrer" text,
54
- "created_at" timestamp DEFAULT now() NOT NULL
55
- );
56
- --> statement-breakpoint
57
- ALTER TABLE "contact" ADD CONSTRAINT "contact_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
58
- ALTER TABLE "contact" ADD CONSTRAINT "contact_created_by_user_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
59
- ALTER TABLE "contact_topic" ADD CONSTRAINT "contact_topic_contact_id_contact_id_fk" FOREIGN KEY ("contact_id") REFERENCES "public"."contact"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
60
- ALTER TABLE "contact_topic" ADD CONSTRAINT "contact_topic_topic_id_topic_id_fk" FOREIGN KEY ("topic_id") REFERENCES "public"."topic"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
61
- ALTER TABLE "topic" ADD CONSTRAINT "topic_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
62
- ALTER TABLE "topic" ADD CONSTRAINT "topic_created_by_user_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
63
- CREATE INDEX "contact_org_idx" ON "contact" USING btree ("organization_id");--> statement-breakpoint
64
- CREATE INDEX "contact_email_idx" ON "contact" USING btree ("email");--> statement-breakpoint
65
- CREATE UNIQUE INDEX "contact_unique_org_email_idx" ON "contact" USING btree ("organization_id","email_hash");--> statement-breakpoint
66
- CREATE INDEX "contact_status_idx" ON "contact" USING btree ("organization_id","status");--> statement-breakpoint
67
- CREATE INDEX "contact_topic_topic_idx" ON "contact_topic" USING btree ("topic_id");--> statement-breakpoint
68
- CREATE INDEX "contact_topic_status_idx" ON "contact_topic" USING btree ("topic_id","status");--> statement-breakpoint
69
- CREATE INDEX "topic_org_idx" ON "topic" USING btree ("organization_id");--> statement-breakpoint
70
- CREATE UNIQUE INDEX "topic_unique_org_slug_idx" ON "topic" USING btree ("organization_id","slug");--> statement-breakpoint
71
- CREATE UNIQUE INDEX "waitlist_email_product_idx" ON "waitlist" USING btree ("email_hash","product");--> statement-breakpoint
72
- CREATE INDEX "waitlist_product_idx" ON "waitlist" USING btree ("product");--> statement-breakpoint
73
- CREATE INDEX "waitlist_created_at_idx" ON "waitlist" USING btree ("created_at");
@@ -1,18 +0,0 @@
1
- CREATE TABLE "segment" (
2
- "id" text PRIMARY KEY NOT NULL,
3
- "organization_id" text NOT NULL,
4
- "name" text NOT NULL,
5
- "description" text,
6
- "condition" json NOT NULL,
7
- "track_membership" boolean DEFAULT false NOT NULL,
8
- "member_count" integer DEFAULT 0 NOT NULL,
9
- "last_computed_at" timestamp,
10
- "created_by" text,
11
- "created_at" timestamp DEFAULT now() NOT NULL,
12
- "updated_at" timestamp DEFAULT now() NOT NULL
13
- );
14
- --> statement-breakpoint
15
- ALTER TABLE "segment" ADD CONSTRAINT "segment_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
16
- ALTER TABLE "segment" ADD CONSTRAINT "segment_created_by_user_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
17
- CREATE INDEX "segment_org_idx" ON "segment" USING btree ("organization_id");--> statement-breakpoint
18
- CREATE INDEX "segment_name_idx" ON "segment" USING btree ("organization_id","name");
@@ -1,2 +0,0 @@
1
- ALTER TABLE "aws_account" ADD COLUMN "sms_enabled" boolean DEFAULT false NOT NULL;--> statement-breakpoint
2
- ALTER TABLE "aws_account" ADD COLUMN "sms_phone_number_count" integer DEFAULT 0 NOT NULL;
@@ -1 +0,0 @@
1
- ALTER TABLE "aws_account" ADD COLUMN "sms_event_history_enabled" boolean DEFAULT false NOT NULL;
@@ -1,143 +0,0 @@
1
- CREATE TYPE "public"."batch_send_status" AS ENUM('draft', 'queued', 'processing', 'completed', 'failed', 'cancelled');--> statement-breakpoint
2
- CREATE TYPE "public"."message_send_status" AS ENUM('pending', 'queued', 'sent', 'delivered', 'opened', 'clicked', 'bounced', 'complained', 'failed', 'opted_out');--> statement-breakpoint
3
- CREATE TYPE "public"."message_source_type" AS ENUM('transactional', 'batch', 'campaign', 'workflow');--> statement-breakpoint
4
- CREATE TABLE "batch_send" (
5
- "id" text PRIMARY KEY NOT NULL,
6
- "organization_id" text NOT NULL,
7
- "aws_account_id" text,
8
- "name" text,
9
- "channel" text DEFAULT 'email' NOT NULL,
10
- "subject" text,
11
- "preview_text" text,
12
- "from" text,
13
- "from_name" text,
14
- "reply_to" text,
15
- "email_template_id" text,
16
- "html_content" text,
17
- "text_content" text,
18
- "body" text,
19
- "sender_id" text,
20
- "status" "batch_send_status" DEFAULT 'draft' NOT NULL,
21
- "total_recipients" integer DEFAULT 0 NOT NULL,
22
- "processed_recipients" integer DEFAULT 0 NOT NULL,
23
- "sent" integer DEFAULT 0 NOT NULL,
24
- "delivered" integer DEFAULT 0 NOT NULL,
25
- "failed" integer DEFAULT 0 NOT NULL,
26
- "opened" integer DEFAULT 0 NOT NULL,
27
- "clicked" integer DEFAULT 0 NOT NULL,
28
- "bounced" integer DEFAULT 0 NOT NULL,
29
- "complained" integer DEFAULT 0 NOT NULL,
30
- "sms_segments" integer DEFAULT 0 NOT NULL,
31
- "sms_opted_out" integer DEFAULT 0 NOT NULL,
32
- "error_message" text,
33
- "error_details" json,
34
- "scheduled_for" timestamp,
35
- "started_at" timestamp,
36
- "completed_at" timestamp,
37
- "created_by" text,
38
- "created_at" timestamp DEFAULT now() NOT NULL,
39
- "updated_at" timestamp DEFAULT now() NOT NULL
40
- );
41
- --> statement-breakpoint
42
- CREATE TABLE "message_send" (
43
- "id" text PRIMARY KEY NOT NULL,
44
- "organization_id" text NOT NULL,
45
- "contact_id" text,
46
- "aws_account_id" text NOT NULL,
47
- "channel" text DEFAULT 'email' NOT NULL,
48
- "source_type" "message_source_type" NOT NULL,
49
- "batch_send_id" text,
50
- "recipient" text NOT NULL,
51
- "subject" text,
52
- "from" text,
53
- "from_name" text,
54
- "email_template_id" text,
55
- "body" text,
56
- "sender_id" text,
57
- "sms_segment_count" integer,
58
- "variables" json DEFAULT '{}'::json,
59
- "message_id" text,
60
- "status" "message_send_status" DEFAULT 'pending' NOT NULL,
61
- "sent_at" timestamp,
62
- "delivered_at" timestamp,
63
- "opened_at" timestamp,
64
- "clicked_at" timestamp,
65
- "bounced_at" timestamp,
66
- "complained_at" timestamp,
67
- "opted_out_at" timestamp,
68
- "error" text,
69
- "bounce_type" text,
70
- "bounce_sub_type" text,
71
- "created_at" timestamp DEFAULT now() NOT NULL
72
- );
73
- --> statement-breakpoint
74
- CREATE TABLE "api_rate_limit_window" (
75
- "id" text PRIMARY KEY NOT NULL,
76
- "organization_id" text NOT NULL,
77
- "minute_key" text NOT NULL,
78
- "request_count" integer DEFAULT 0 NOT NULL,
79
- "expires_at" timestamp NOT NULL
80
- );
81
- --> statement-breakpoint
82
- CREATE TABLE "api_usage_daily" (
83
- "id" text PRIMARY KEY NOT NULL,
84
- "organization_id" text NOT NULL,
85
- "date_key" text NOT NULL,
86
- "request_count" integer DEFAULT 0 NOT NULL,
87
- "updated_at" timestamp DEFAULT now() NOT NULL
88
- );
89
- --> statement-breakpoint
90
- DROP INDEX "contact_unique_org_email_idx";--> statement-breakpoint
91
- ALTER TABLE "contact" ALTER COLUMN "email" DROP NOT NULL;--> statement-breakpoint
92
- ALTER TABLE "contact" ALTER COLUMN "email_hash" DROP NOT NULL;--> statement-breakpoint
93
- ALTER TABLE "aws_account" ADD COLUMN "webhook_secret" text;--> statement-breakpoint
94
- ALTER TABLE "contact" ADD COLUMN "email_status" text;--> statement-breakpoint
95
- ALTER TABLE "contact" ADD COLUMN "email_verified_at" timestamp;--> statement-breakpoint
96
- ALTER TABLE "contact" ADD COLUMN "email_unsubscribed_at" timestamp;--> statement-breakpoint
97
- ALTER TABLE "contact" ADD COLUMN "email_bounced_at" timestamp;--> statement-breakpoint
98
- ALTER TABLE "contact" ADD COLUMN "email_complained_at" timestamp;--> statement-breakpoint
99
- ALTER TABLE "contact" ADD COLUMN "phone" text;--> statement-breakpoint
100
- ALTER TABLE "contact" ADD COLUMN "phone_hash" text;--> statement-breakpoint
101
- ALTER TABLE "contact" ADD COLUMN "sms_status" text;--> statement-breakpoint
102
- ALTER TABLE "contact" ADD COLUMN "sms_consented_at" timestamp;--> statement-breakpoint
103
- ALTER TABLE "contact" ADD COLUMN "sms_opted_out_at" timestamp;--> statement-breakpoint
104
- ALTER TABLE "contact" ADD COLUMN "sms_invalid_at" timestamp;--> statement-breakpoint
105
- ALTER TABLE "contact" ADD COLUMN "last_sms_sent_at" timestamp;--> statement-breakpoint
106
- ALTER TABLE "contact" ADD COLUMN "last_sms_clicked_at" timestamp;--> statement-breakpoint
107
- ALTER TABLE "contact" ADD COLUMN "sms_sent" integer DEFAULT 0 NOT NULL;--> statement-breakpoint
108
- ALTER TABLE "contact" ADD COLUMN "sms_clicked" integer DEFAULT 0 NOT NULL;--> statement-breakpoint
109
- ALTER TABLE "batch_send" ADD CONSTRAINT "batch_send_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
110
- ALTER TABLE "batch_send" ADD CONSTRAINT "batch_send_aws_account_id_aws_account_id_fk" FOREIGN KEY ("aws_account_id") REFERENCES "public"."aws_account"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
111
- ALTER TABLE "batch_send" ADD CONSTRAINT "batch_send_email_template_id_template_id_fk" FOREIGN KEY ("email_template_id") REFERENCES "public"."template"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
112
- ALTER TABLE "batch_send" ADD CONSTRAINT "batch_send_created_by_user_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
113
- ALTER TABLE "message_send" ADD CONSTRAINT "message_send_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
114
- ALTER TABLE "message_send" ADD CONSTRAINT "message_send_contact_id_contact_id_fk" FOREIGN KEY ("contact_id") REFERENCES "public"."contact"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
115
- ALTER TABLE "message_send" ADD CONSTRAINT "message_send_aws_account_id_aws_account_id_fk" FOREIGN KEY ("aws_account_id") REFERENCES "public"."aws_account"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
116
- ALTER TABLE "message_send" ADD CONSTRAINT "message_send_batch_send_id_batch_send_id_fk" FOREIGN KEY ("batch_send_id") REFERENCES "public"."batch_send"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
117
- ALTER TABLE "message_send" ADD CONSTRAINT "message_send_email_template_id_template_id_fk" FOREIGN KEY ("email_template_id") REFERENCES "public"."template"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
118
- ALTER TABLE "api_rate_limit_window" ADD CONSTRAINT "api_rate_limit_window_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
119
- ALTER TABLE "api_usage_daily" ADD CONSTRAINT "api_usage_daily_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
120
- CREATE INDEX "batch_send_org_idx" ON "batch_send" USING btree ("organization_id");--> statement-breakpoint
121
- CREATE INDEX "batch_send_channel_idx" ON "batch_send" USING btree ("channel");--> statement-breakpoint
122
- CREATE INDEX "batch_send_status_idx" ON "batch_send" USING btree ("organization_id","status");--> statement-breakpoint
123
- CREATE INDEX "batch_send_created_at_idx" ON "batch_send" USING btree ("organization_id","created_at");--> statement-breakpoint
124
- CREATE INDEX "message_send_org_idx" ON "message_send" USING btree ("organization_id");--> statement-breakpoint
125
- CREATE INDEX "message_send_contact_idx" ON "message_send" USING btree ("contact_id");--> statement-breakpoint
126
- CREATE INDEX "message_send_channel_idx" ON "message_send" USING btree ("channel");--> statement-breakpoint
127
- CREATE INDEX "message_send_batch_idx" ON "message_send" USING btree ("batch_send_id");--> statement-breakpoint
128
- CREATE INDEX "message_send_status_idx" ON "message_send" USING btree ("batch_send_id","status");--> statement-breakpoint
129
- CREATE UNIQUE INDEX "message_send_message_id_idx" ON "message_send" USING btree ("message_id");--> statement-breakpoint
130
- CREATE INDEX "message_send_source_type_idx" ON "message_send" USING btree ("source_type");--> statement-breakpoint
131
- CREATE INDEX "message_send_created_at_idx" ON "message_send" USING btree ("created_at");--> statement-breakpoint
132
- CREATE UNIQUE INDEX "api_rate_limit_org_minute_idx" ON "api_rate_limit_window" USING btree ("organization_id","minute_key");--> statement-breakpoint
133
- CREATE INDEX "api_rate_limit_expires_idx" ON "api_rate_limit_window" USING btree ("expires_at");--> statement-breakpoint
134
- CREATE UNIQUE INDEX "api_usage_daily_org_date_idx" ON "api_usage_daily" USING btree ("organization_id","date_key");--> statement-breakpoint
135
- CREATE INDEX "api_usage_daily_date_idx" ON "api_usage_daily" USING btree ("date_key");--> statement-breakpoint
136
- CREATE INDEX "contact_email_status_idx" ON "contact" USING btree ("organization_id","email_status");--> statement-breakpoint
137
- CREATE INDEX "contact_phone_idx" ON "contact" USING btree ("phone");--> statement-breakpoint
138
- CREATE UNIQUE INDEX "contact_unique_org_phone_idx" ON "contact" USING btree ("organization_id","phone_hash") WHERE phone_hash IS NOT NULL;--> statement-breakpoint
139
- CREATE INDEX "contact_sms_status_idx" ON "contact" USING btree ("organization_id","sms_status");--> statement-breakpoint
140
- CREATE UNIQUE INDEX "contact_unique_org_email_idx" ON "contact" USING btree ("organization_id","email_hash") WHERE email_hash IS NOT NULL;--> statement-breakpoint
141
- ALTER TABLE "organization_extension" DROP COLUMN "plan";--> statement-breakpoint
142
- ALTER TABLE "organization_extension" DROP COLUMN "stripe_customer_id";--> statement-breakpoint
143
- ALTER TABLE "organization_extension" DROP COLUMN "stripe_subscription_id";
@@ -1,2 +0,0 @@
1
- ALTER TYPE "public"."batch_send_status" ADD VALUE 'scheduled' BEFORE 'queued';--> statement-breakpoint
2
- ALTER TABLE "organization" ADD COLUMN "brand_color" text;
@@ -1 +0,0 @@
1
- ALTER TABLE "topic" DROP COLUMN "subscriber_count";
@@ -1 +0,0 @@
1
- ALTER TABLE "contact_topic" ADD COLUMN "confirmed_at" timestamp;
@@ -1,11 +0,0 @@
1
- CREATE TABLE "topic_settings" (
2
- "organization_id" text PRIMARY KEY NOT NULL,
3
- "confirmation_from_name" text,
4
- "confirmation_from_email" text,
5
- "confirmation_reply_to_email" text,
6
- "preference_center_title" text,
7
- "preference_center_description" text,
8
- "updated_at" timestamp DEFAULT now() NOT NULL
9
- );
10
- --> statement-breakpoint
11
- ALTER TABLE "topic_settings" ADD CONSTRAINT "topic_settings_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;
@@ -1,8 +0,0 @@
1
- CREATE TYPE "public"."email_type" AS ENUM('marketing', 'transactional');--> statement-breakpoint
2
- ALTER TABLE "contact" ADD COLUMN "first_name" text;--> statement-breakpoint
3
- ALTER TABLE "contact" ADD COLUMN "last_name" text;--> statement-breakpoint
4
- ALTER TABLE "contact" ADD COLUMN "company" text;--> statement-breakpoint
5
- ALTER TABLE "contact" ADD COLUMN "job_title" text;--> statement-breakpoint
6
- ALTER TABLE "topic_settings" ADD COLUMN "confirmation_template_id" text;--> statement-breakpoint
7
- ALTER TABLE "template" ADD COLUMN "email_type" "email_type" DEFAULT 'marketing' NOT NULL;--> statement-breakpoint
8
- ALTER TABLE "topic_settings" ADD CONSTRAINT "topic_settings_confirmation_template_id_template_id_fk" FOREIGN KEY ("confirmation_template_id") REFERENCES "public"."template"("id") ON DELETE set null ON UPDATE no action;
@@ -1,3 +0,0 @@
1
- ALTER TABLE "batch_send" ADD COLUMN "audience_type" text DEFAULT 'all';--> statement-breakpoint
2
- ALTER TABLE "batch_send" ADD COLUMN "topic_id" text;--> statement-breakpoint
3
- ALTER TABLE "batch_send" ADD COLUMN "segment_id" text;
@@ -1,95 +0,0 @@
1
- CREATE TYPE "public"."workflow_execution_status" AS ENUM('pending', 'active', 'paused', 'waiting', 'completed', 'failed', 'cancelled');--> statement-breakpoint
2
- CREATE TYPE "public"."workflow_status" AS ENUM('draft', 'enabled', 'paused', 'archived');--> statement-breakpoint
3
- CREATE TYPE "public"."workflow_step_execution_status" AS ENUM('pending', 'executing', 'completed', 'failed', 'skipped');--> statement-breakpoint
4
- CREATE TABLE "workflow" (
5
- "id" text PRIMARY KEY NOT NULL,
6
- "organization_id" text NOT NULL,
7
- "aws_account_id" text,
8
- "name" text NOT NULL,
9
- "description" text,
10
- "topic_id" text,
11
- "canvas_viewport" jsonb DEFAULT '{"x":0,"y":0,"zoom":1}'::jsonb,
12
- "status" "workflow_status" DEFAULT 'draft' NOT NULL,
13
- "trigger_type" text,
14
- "trigger_config" jsonb DEFAULT '{}'::jsonb,
15
- "steps" jsonb DEFAULT '[]'::jsonb,
16
- "transitions" jsonb DEFAULT '[]'::jsonb,
17
- "allow_reentry" boolean DEFAULT false NOT NULL,
18
- "reentry_delay_seconds" integer,
19
- "max_concurrent_executions" integer DEFAULT 1000,
20
- "contact_cooldown_seconds" integer,
21
- "total_executions" integer DEFAULT 0 NOT NULL,
22
- "active_executions" integer DEFAULT 0 NOT NULL,
23
- "completed_executions" integer DEFAULT 0 NOT NULL,
24
- "failed_executions" integer DEFAULT 0 NOT NULL,
25
- "dropped_executions" integer DEFAULT 0 NOT NULL,
26
- "ai_generated" boolean DEFAULT false,
27
- "ai_prompt" text,
28
- "last_triggered_at" timestamp,
29
- "created_by" text,
30
- "created_at" timestamp DEFAULT now() NOT NULL,
31
- "updated_at" timestamp DEFAULT now() NOT NULL
32
- );
33
- --> statement-breakpoint
34
- CREATE TABLE "workflow_execution" (
35
- "id" text PRIMARY KEY NOT NULL,
36
- "workflow_id" text NOT NULL,
37
- "contact_id" text NOT NULL,
38
- "organization_id" text NOT NULL,
39
- "status" "workflow_execution_status" DEFAULT 'pending' NOT NULL,
40
- "current_step_id" text,
41
- "context" jsonb DEFAULT '{}'::jsonb,
42
- "trigger_event_id" text,
43
- "trigger_data" jsonb,
44
- "waiting_for_event" text,
45
- "waiting_for_conditions" jsonb,
46
- "wait_timeout_at" timestamp,
47
- "wait_timeout_scheduler_name" text,
48
- "next_step_scheduled_at" timestamp,
49
- "delay_scheduler_name" text,
50
- "error" text,
51
- "error_step_id" text,
52
- "retry_count" integer DEFAULT 0,
53
- "started_at" timestamp,
54
- "completed_at" timestamp,
55
- "created_at" timestamp DEFAULT now() NOT NULL,
56
- "updated_at" timestamp DEFAULT now() NOT NULL
57
- );
58
- --> statement-breakpoint
59
- CREATE TABLE "workflow_step_execution" (
60
- "id" text PRIMARY KEY NOT NULL,
61
- "execution_id" text NOT NULL,
62
- "step_id" text NOT NULL,
63
- "step_type" text NOT NULL,
64
- "status" "workflow_step_execution_status" DEFAULT 'pending' NOT NULL,
65
- "idempotency_key" text NOT NULL,
66
- "branch" text,
67
- "result" jsonb,
68
- "error" text,
69
- "skip_reason" text,
70
- "started_at" timestamp,
71
- "completed_at" timestamp,
72
- "created_at" timestamp DEFAULT now() NOT NULL
73
- );
74
- --> statement-breakpoint
75
- ALTER TABLE "workflow" ADD CONSTRAINT "workflow_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
76
- ALTER TABLE "workflow" ADD CONSTRAINT "workflow_aws_account_id_aws_account_id_fk" FOREIGN KEY ("aws_account_id") REFERENCES "public"."aws_account"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
77
- ALTER TABLE "workflow" ADD CONSTRAINT "workflow_topic_id_topic_id_fk" FOREIGN KEY ("topic_id") REFERENCES "public"."topic"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
78
- ALTER TABLE "workflow" ADD CONSTRAINT "workflow_created_by_user_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
79
- ALTER TABLE "workflow_execution" ADD CONSTRAINT "workflow_execution_workflow_id_workflow_id_fk" FOREIGN KEY ("workflow_id") REFERENCES "public"."workflow"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
80
- ALTER TABLE "workflow_execution" ADD CONSTRAINT "workflow_execution_contact_id_contact_id_fk" FOREIGN KEY ("contact_id") REFERENCES "public"."contact"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
81
- ALTER TABLE "workflow_execution" ADD CONSTRAINT "workflow_execution_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
82
- ALTER TABLE "workflow_step_execution" ADD CONSTRAINT "workflow_step_execution_execution_id_workflow_execution_id_fk" FOREIGN KEY ("execution_id") REFERENCES "public"."workflow_execution"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
83
- CREATE INDEX "workflow_org_idx" ON "workflow" USING btree ("organization_id");--> statement-breakpoint
84
- CREATE INDEX "workflow_status_idx" ON "workflow" USING btree ("organization_id","status");--> statement-breakpoint
85
- CREATE INDEX "workflow_trigger_type_idx" ON "workflow" USING btree ("organization_id","trigger_type");--> statement-breakpoint
86
- CREATE INDEX "workflow_aws_account_idx" ON "workflow" USING btree ("aws_account_id");--> statement-breakpoint
87
- CREATE INDEX "workflow_execution_workflow_idx" ON "workflow_execution" USING btree ("workflow_id");--> statement-breakpoint
88
- CREATE INDEX "workflow_execution_contact_idx" ON "workflow_execution" USING btree ("contact_id");--> statement-breakpoint
89
- CREATE INDEX "workflow_execution_org_idx" ON "workflow_execution" USING btree ("organization_id");--> statement-breakpoint
90
- CREATE INDEX "workflow_execution_status_idx" ON "workflow_execution" USING btree ("workflow_id","status");--> statement-breakpoint
91
- CREATE INDEX "workflow_execution_org_status_idx" ON "workflow_execution" USING btree ("organization_id","status");--> statement-breakpoint
92
- CREATE INDEX "workflow_execution_scheduled_idx" ON "workflow_execution" USING btree ("next_step_scheduled_at");--> statement-breakpoint
93
- CREATE INDEX "workflow_execution_waiting_event_idx" ON "workflow_execution" USING btree ("organization_id","waiting_for_event");--> statement-breakpoint
94
- CREATE INDEX "workflow_step_execution_execution_idx" ON "workflow_step_execution" USING btree ("execution_id");--> statement-breakpoint
95
- CREATE UNIQUE INDEX "workflow_step_execution_idempotency_idx" ON "workflow_step_execution" USING btree ("idempotency_key");
@@ -1,14 +0,0 @@
1
- CREATE TABLE "contact_event" (
2
- "id" text PRIMARY KEY NOT NULL,
3
- "contact_id" text NOT NULL,
4
- "organization_id" text NOT NULL,
5
- "event_name" text NOT NULL,
6
- "event_data" json,
7
- "created_at" timestamp DEFAULT now() NOT NULL
8
- );
9
- --> statement-breakpoint
10
- ALTER TABLE "contact_event" ADD CONSTRAINT "contact_event_contact_id_contact_id_fk" FOREIGN KEY ("contact_id") REFERENCES "public"."contact"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
11
- ALTER TABLE "contact_event" ADD CONSTRAINT "contact_event_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
12
- CREATE INDEX "contact_event_contact_idx" ON "contact_event" USING btree ("contact_id");--> statement-breakpoint
13
- CREATE INDEX "contact_event_org_event_idx" ON "contact_event" USING btree ("organization_id","event_name");--> statement-breakpoint
14
- CREATE INDEX "contact_event_contact_event_idx" ON "contact_event" USING btree ("contact_id","event_name");
@@ -1,10 +0,0 @@
1
- ALTER TABLE "organization_extension" ADD COLUMN "default_aws_account_id" text;--> statement-breakpoint
2
- ALTER TABLE "organization_extension" ADD COLUMN "default_from" text;--> statement-breakpoint
3
- ALTER TABLE "organization_extension" ADD COLUMN "default_from_name" text;--> statement-breakpoint
4
- ALTER TABLE "organization_extension" ADD COLUMN "default_reply_to" text;--> statement-breakpoint
5
- ALTER TABLE "organization_extension" ADD COLUMN "default_sender_id" text;--> statement-breakpoint
6
- ALTER TABLE "workflow" ADD COLUMN "default_from" text;--> statement-breakpoint
7
- ALTER TABLE "workflow" ADD COLUMN "default_from_name" text;--> statement-breakpoint
8
- ALTER TABLE "workflow" ADD COLUMN "default_reply_to" text;--> statement-breakpoint
9
- ALTER TABLE "workflow" ADD COLUMN "default_sender_id" text;--> statement-breakpoint
10
- ALTER TABLE "organization_extension" ADD CONSTRAINT "organization_extension_default_aws_account_id_aws_account_id_fk" FOREIGN KEY ("default_aws_account_id") REFERENCES "public"."aws_account"("id") ON DELETE set null ON UPDATE no action;
@@ -1 +0,0 @@
1
- ALTER TABLE "workflow_execution" ADD COLUMN "allow_reentry" boolean DEFAULT false NOT NULL;
@@ -1 +0,0 @@
1
- CREATE UNIQUE INDEX "workflow_execution_no_reentry_idx" ON "workflow_execution" USING btree ("workflow_id","contact_id") WHERE "workflow_execution"."status" IN ('pending', 'active', 'paused', 'waiting') AND "workflow_execution"."allow_reentry" = false;
@@ -1 +0,0 @@
1
- ALTER TABLE "subscription" ADD CONSTRAINT "subscription_reference_id_organization_id_fk" FOREIGN KEY ("reference_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;
@@ -1,2 +0,0 @@
1
- ALTER TABLE "user" ADD COLUMN "phone_number" text;--> statement-breakpoint
2
- ALTER TABLE "user" ADD COLUMN "login_alerts_enabled" boolean DEFAULT false;
@@ -1,4 +0,0 @@
1
- ALTER TYPE "public"."message_send_status" ADD VALUE 'suppressed' BEFORE 'failed';--> statement-breakpoint
2
- ALTER TABLE "batch_send" ADD COLUMN "suppressed" integer DEFAULT 0 NOT NULL;--> statement-breakpoint
3
- ALTER TABLE "message_send" ADD COLUMN "suppressed_at" timestamp;--> statement-breakpoint
4
- ALTER TABLE "contact" ADD COLUMN "email_suppressed_at" timestamp;
@@ -1 +0,0 @@
1
- ALTER TABLE "subscription" ADD COLUMN "annual" boolean DEFAULT false;
@@ -1,13 +0,0 @@
1
- CREATE TABLE "event_usage_monthly" (
2
- "id" text PRIMARY KEY NOT NULL,
3
- "organization_id" text NOT NULL,
4
- "period_key" text NOT NULL,
5
- "event_count" integer DEFAULT 0 NOT NULL,
6
- "updated_at" timestamp DEFAULT now() NOT NULL
7
- );
8
- --> statement-breakpoint
9
- ALTER TABLE "contact_event" ADD COLUMN "expires_at" timestamp;--> statement-breakpoint
10
- ALTER TABLE "event_usage_monthly" ADD CONSTRAINT "event_usage_monthly_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
11
- CREATE UNIQUE INDEX "event_usage_monthly_org_period_idx" ON "event_usage_monthly" USING btree ("organization_id","period_key");--> statement-breakpoint
12
- CREATE INDEX "event_usage_monthly_period_idx" ON "event_usage_monthly" USING btree ("period_key");--> statement-breakpoint
13
- CREATE INDEX "contact_event_expires_idx" ON "contact_event" USING btree ("expires_at");
@@ -1 +0,0 @@
1
- ALTER TABLE "organization" ADD COLUMN "stripe_organization_id" text;