@foundrynorth/flux-schema 1.1.4 → 1.2.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/schema.d.ts CHANGED
@@ -20,7 +20,7 @@ export declare const fluxPrimaryRoleEnum: import("drizzle-orm/pg-core").PgEnum<[
20
20
  export type FluxPrimaryRole = (typeof fluxPrimaryRoleEnum.enumValues)[number];
21
21
  export declare const fluxEscalationStateEnum: import("drizzle-orm/pg-core").PgEnum<["critical_now", "needs_owner_today", "follow_up_soon", "waiting_on_client", "waiting_on_vendor", "monitor"]>;
22
22
  export declare const fluxEmbedTypeEnum: import("drizzle-orm/pg-core").PgEnum<["ninjacat", "iframe", "custom"]>;
23
- export declare const fluxTaskStatusEnum: import("drizzle-orm/pg-core").PgEnum<["backlog", "in_progress", "in_review", "complete"]>;
23
+ export declare const fluxTaskStatusEnum: import("drizzle-orm/pg-core").PgEnum<["backlog", "in_progress", "in_review", "complete", "blocked"]>;
24
24
  export declare const fluxTaskPriorityEnum: import("drizzle-orm/pg-core").PgEnum<["low", "medium", "high", "urgent"]>;
25
25
  export declare const fluxOwnerTypeEnum: import("drizzle-orm/pg-core").PgEnum<["internal", "external", "vendor"]>;
26
26
  export declare const fluxSecretsProviderCategoryEnum: import("drizzle-orm/pg-core").PgEnum<["ai", "auth", "database", "storage", "email", "crm", "scraping", "monitoring", "maps", "other"]>;
@@ -3674,14 +3674,14 @@ export declare const fluxTasks: import("drizzle-orm/pg-core").PgTableWithColumns
3674
3674
  tableName: "flux_tasks";
3675
3675
  dataType: "string";
3676
3676
  columnType: "PgEnumColumn";
3677
- data: "backlog" | "in_progress" | "in_review" | "complete";
3677
+ data: "backlog" | "in_progress" | "in_review" | "complete" | "blocked";
3678
3678
  driverParam: string;
3679
3679
  notNull: true;
3680
3680
  hasDefault: true;
3681
3681
  isPrimaryKey: false;
3682
3682
  isAutoincrement: false;
3683
3683
  hasRuntimeDefault: false;
3684
- enumValues: ["backlog", "in_progress", "in_review", "complete"];
3684
+ enumValues: ["backlog", "in_progress", "in_review", "complete", "blocked"];
3685
3685
  baseColumn: never;
3686
3686
  identity: undefined;
3687
3687
  generated: undefined;
@@ -3840,6 +3840,74 @@ export declare const fluxTasks: import("drizzle-orm/pg-core").PgTableWithColumns
3840
3840
  orderTotal?: number;
3841
3841
  };
3842
3842
  }>;
3843
+ fulfillmentTicketId: import("drizzle-orm/pg-core").PgColumn<{
3844
+ name: "fulfillment_ticket_id";
3845
+ tableName: "flux_tasks";
3846
+ dataType: "string";
3847
+ columnType: "PgText";
3848
+ data: string;
3849
+ driverParam: string;
3850
+ notNull: false;
3851
+ hasDefault: false;
3852
+ isPrimaryKey: false;
3853
+ isAutoincrement: false;
3854
+ hasRuntimeDefault: false;
3855
+ enumValues: [string, ...string[]];
3856
+ baseColumn: never;
3857
+ identity: undefined;
3858
+ generated: undefined;
3859
+ }, {}, {}>;
3860
+ templateId: import("drizzle-orm/pg-core").PgColumn<{
3861
+ name: "template_id";
3862
+ tableName: "flux_tasks";
3863
+ dataType: "string";
3864
+ columnType: "PgText";
3865
+ data: string;
3866
+ driverParam: string;
3867
+ notNull: false;
3868
+ hasDefault: false;
3869
+ isPrimaryKey: false;
3870
+ isAutoincrement: false;
3871
+ hasRuntimeDefault: false;
3872
+ enumValues: [string, ...string[]];
3873
+ baseColumn: never;
3874
+ identity: undefined;
3875
+ generated: undefined;
3876
+ }, {}, {}>;
3877
+ taskCategory: import("drizzle-orm/pg-core").PgColumn<{
3878
+ name: "task_category";
3879
+ tableName: "flux_tasks";
3880
+ dataType: "string";
3881
+ columnType: "PgText";
3882
+ data: string;
3883
+ driverParam: string;
3884
+ notNull: false;
3885
+ hasDefault: false;
3886
+ isPrimaryKey: false;
3887
+ isAutoincrement: false;
3888
+ hasRuntimeDefault: false;
3889
+ enumValues: [string, ...string[]];
3890
+ baseColumn: never;
3891
+ identity: undefined;
3892
+ generated: undefined;
3893
+ }, {}, {}>;
3894
+ productFamily: import("drizzle-orm/pg-core").PgColumn<{
3895
+ name: "product_family";
3896
+ tableName: "flux_tasks";
3897
+ dataType: "string";
3898
+ columnType: "PgText";
3899
+ data: string;
3900
+ driverParam: string;
3901
+ notNull: false;
3902
+ hasDefault: false;
3903
+ isPrimaryKey: false;
3904
+ isAutoincrement: false;
3905
+ hasRuntimeDefault: false;
3906
+ enumValues: [string, ...string[]];
3907
+ baseColumn: never;
3908
+ identity: undefined;
3909
+ generated: undefined;
3910
+ }, {}, {}>;
3843
3911
  blockedByTaskId: import("drizzle-orm/pg-core").PgColumn<{
3844
3912
  name: "blocked_by_task_id";
3845
3913
  tableName: "flux_tasks";
@@ -3998,6 +4066,164 @@ export declare const fluxTasks: import("drizzle-orm/pg-core").PgTableWithColumns
3998
4066
  };
3999
4067
  dialect: "pg";
4000
4068
  }>;
4069
+ /**
4070
+ * Many-to-many dependency graph between tasks.
4071
+ * taskId depends on dependsOnTaskId — taskId is blocked until dependsOnTaskId completes.
4072
+ */
4073
+ export declare const fluxTaskDependencies: import("drizzle-orm/pg-core").PgTableWithColumns<{
4074
+ name: "flux_task_dependencies";
4075
+ schema: undefined;
4076
+ columns: {
4077
+ id: import("drizzle-orm/pg-core").PgColumn<{
4078
+ name: "id";
4079
+ tableName: "flux_task_dependencies";
4080
+ dataType: "string";
4081
+ columnType: "PgText";
4082
+ data: string;
4083
+ driverParam: string;
4084
+ notNull: true;
4085
+ hasDefault: true;
4086
+ isPrimaryKey: true;
4087
+ isAutoincrement: false;
4088
+ hasRuntimeDefault: false;
4089
+ enumValues: [string, ...string[]];
4090
+ baseColumn: never;
4091
+ identity: undefined;
4092
+ generated: undefined;
4093
+ }, {}, {}>;
4094
+ taskId: import("drizzle-orm/pg-core").PgColumn<{
4095
+ name: "task_id";
4096
+ tableName: "flux_task_dependencies";
4097
+ dataType: "string";
4098
+ columnType: "PgText";
4099
+ data: string;
4100
+ driverParam: string;
4101
+ notNull: true;
4102
+ hasDefault: false;
4103
+ isPrimaryKey: false;
4104
+ isAutoincrement: false;
4105
+ hasRuntimeDefault: false;
4106
+ enumValues: [string, ...string[]];
4107
+ baseColumn: never;
4108
+ identity: undefined;
4109
+ generated: undefined;
4110
+ }, {}, {}>;
4111
+ dependsOnTaskId: import("drizzle-orm/pg-core").PgColumn<{
4112
+ name: "depends_on_task_id";
4113
+ tableName: "flux_task_dependencies";
4114
+ dataType: "string";
4115
+ columnType: "PgText";
4116
+ data: string;
4117
+ driverParam: string;
4118
+ notNull: true;
4119
+ hasDefault: false;
4120
+ isPrimaryKey: false;
4121
+ isAutoincrement: false;
4122
+ hasRuntimeDefault: false;
4123
+ enumValues: [string, ...string[]];
4124
+ baseColumn: never;
4125
+ identity: undefined;
4126
+ generated: undefined;
4127
+ }, {}, {}>;
4128
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
4129
+ name: "created_at";
4130
+ tableName: "flux_task_dependencies";
4131
+ dataType: "date";
4132
+ columnType: "PgTimestamp";
4133
+ data: Date;
4134
+ driverParam: string;
4135
+ notNull: true;
4136
+ hasDefault: true;
4137
+ isPrimaryKey: false;
4138
+ isAutoincrement: false;
4139
+ hasRuntimeDefault: false;
4140
+ enumValues: undefined;
4141
+ baseColumn: never;
4142
+ identity: undefined;
4143
+ generated: undefined;
4144
+ }, {}, {}>;
4145
+ };
4146
+ dialect: "pg";
4147
+ }>;
4148
+ /**
4149
+ * Users watching a task for notification purposes.
4150
+ * Single owner (assigneeId on flux_tasks) + many watchers pattern.
4151
+ */
4152
+ export declare const fluxTaskWatchers: import("drizzle-orm/pg-core").PgTableWithColumns<{
4153
+ name: "flux_task_watchers";
4154
+ schema: undefined;
4155
+ columns: {
4156
+ id: import("drizzle-orm/pg-core").PgColumn<{
4157
+ name: "id";
4158
+ tableName: "flux_task_watchers";
4159
+ dataType: "string";
4160
+ columnType: "PgText";
4161
+ data: string;
4162
+ driverParam: string;
4163
+ notNull: true;
4164
+ hasDefault: true;
4165
+ isPrimaryKey: true;
4166
+ isAutoincrement: false;
4167
+ hasRuntimeDefault: false;
4168
+ enumValues: [string, ...string[]];
4169
+ baseColumn: never;
4170
+ identity: undefined;
4171
+ generated: undefined;
4172
+ }, {}, {}>;
4173
+ taskId: import("drizzle-orm/pg-core").PgColumn<{
4174
+ name: "task_id";
4175
+ tableName: "flux_task_watchers";
4176
+ dataType: "string";
4177
+ columnType: "PgText";
4178
+ data: string;
4179
+ driverParam: string;
4180
+ notNull: true;
4181
+ hasDefault: false;
4182
+ isPrimaryKey: false;
4183
+ isAutoincrement: false;
4184
+ hasRuntimeDefault: false;
4185
+ enumValues: [string, ...string[]];
4186
+ baseColumn: never;
4187
+ identity: undefined;
4188
+ generated: undefined;
4189
+ }, {}, {}>;
4190
+ userId: import("drizzle-orm/pg-core").PgColumn<{
4191
+ name: "user_id";
4192
+ tableName: "flux_task_watchers";
4193
+ dataType: "string";
4194
+ columnType: "PgText";
4195
+ data: string;
4196
+ driverParam: string;
4197
+ notNull: true;
4198
+ hasDefault: false;
4199
+ isPrimaryKey: false;
4200
+ isAutoincrement: false;
4201
+ hasRuntimeDefault: false;
4202
+ enumValues: [string, ...string[]];
4203
+ baseColumn: never;
4204
+ identity: undefined;
4205
+ generated: undefined;
4206
+ }, {}, {}>;
4207
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
4208
+ name: "created_at";
4209
+ tableName: "flux_task_watchers";
4210
+ dataType: "date";
4211
+ columnType: "PgTimestamp";
4212
+ data: Date;
4213
+ driverParam: string;
4214
+ notNull: true;
4215
+ hasDefault: true;
4216
+ isPrimaryKey: false;
4217
+ isAutoincrement: false;
4218
+ hasRuntimeDefault: false;
4219
+ enumValues: undefined;
4220
+ baseColumn: never;
4221
+ identity: undefined;
4222
+ generated: undefined;
4223
+ }, {}, {}>;
4224
+ };
4225
+ dialect: "pg";
4226
+ }>;
4001
4227
  /**
4002
4228
  * External service/vendor accounts. Tracks billing info, payment method, dashboard URLs.
4003
4229
  */
@@ -5513,7 +5739,22 @@ export declare const fluxTasksRelations: import("drizzle-orm").Relations<"flux_t
5513
5739
  project: import("drizzle-orm").One<"flux_projects", true>;
5514
5740
  assignee: import("drizzle-orm").One<"flux_users", false>;
5515
5741
  createdBy: import("drizzle-orm").One<"flux_users", true>;
5742
+ /** @deprecated Use dependencies/dependents instead */
5516
5743
  blockedBy: import("drizzle-orm").One<"flux_tasks", false>;
5744
+ fulfillmentTicket: import("drizzle-orm").One<"flux_fulfillment_tickets", false>;
5745
+ /** Tasks this task depends on (upstream) */
5746
+ dependencies: import("drizzle-orm").Many<"flux_task_dependencies">;
5747
+ /** Tasks that depend on this task (downstream) */
5748
+ dependents: import("drizzle-orm").Many<"flux_task_dependencies">;
5749
+ watchers: import("drizzle-orm").Many<"flux_task_watchers">;
5750
+ }>;
5751
+ export declare const fluxTaskDependenciesRelations: import("drizzle-orm").Relations<"flux_task_dependencies", {
5752
+ task: import("drizzle-orm").One<"flux_tasks", true>;
5753
+ dependsOn: import("drizzle-orm").One<"flux_tasks", true>;
5754
+ }>;
5755
+ export declare const fluxTaskWatchersRelations: import("drizzle-orm").Relations<"flux_task_watchers", {
5756
+ task: import("drizzle-orm").One<"flux_tasks", true>;
5757
+ user: import("drizzle-orm").One<"flux_users", true>;
5517
5758
  }>;
5518
5759
  export declare const fluxSecretsProvidersRelations: import("drizzle-orm").Relations<"flux_secrets_providers", {
5519
5760
  secrets: import("drizzle-orm").Many<"flux_secrets_registry">;
@@ -7343,7 +7584,7 @@ export declare const fluxCompassOrderSnapshots: import("drizzle-orm/pg-core").Pg
7343
7584
  tableName: "flux_compass_order_snapshots";
7344
7585
  dataType: "string";
7345
7586
  columnType: "PgEnumColumn";
7346
- data: "active" | "draft" | "pending_approval" | "approved" | "sent" | "completed";
7587
+ data: "active" | "completed" | "draft" | "pending_approval" | "approved" | "sent";
7347
7588
  driverParam: string;
7348
7589
  notNull: true;
7349
7590
  hasDefault: true;
@@ -12658,7 +12899,7 @@ export declare const fluxFulfillmentTickets: import("drizzle-orm/pg-core").PgTab
12658
12899
  tableName: "flux_fulfillment_tickets";
12659
12900
  dataType: "string";
12660
12901
  columnType: "PgEnumColumn";
12661
- data: "paused" | "completed" | "pending_form" | "submitted" | "pending_creative" | "pending_fulfillment" | "ready" | "running" | "cancelled" | "change_required" | "billing_change_required";
12902
+ data: "paused" | "pending_form" | "submitted" | "pending_creative" | "pending_fulfillment" | "ready" | "running" | "completed" | "cancelled" | "change_required" | "billing_change_required";
12662
12903
  driverParam: string;
12663
12904
  notNull: true;
12664
12905
  hasDefault: true;
@@ -13772,7 +14013,7 @@ export declare const fluxFulfillmentTaskTemplates: import("drizzle-orm/pg-core")
13772
14013
  tableName: "flux_fulfillment_task_templates";
13773
14014
  dataType: "string";
13774
14015
  columnType: "PgEnumColumn";
13775
- data: "paused" | "completed" | "pending_form" | "submitted" | "pending_creative" | "pending_fulfillment" | "ready" | "running" | "cancelled" | "change_required" | "billing_change_required";
14016
+ data: "paused" | "pending_form" | "submitted" | "pending_creative" | "pending_fulfillment" | "ready" | "running" | "completed" | "cancelled" | "change_required" | "billing_change_required";
13776
14017
  driverParam: string;
13777
14018
  notNull: true;
13778
14019
  hasDefault: false;
@@ -13869,6 +14110,100 @@ export declare const fluxFulfillmentTaskTemplates: import("drizzle-orm/pg-core")
13869
14110
  identity: undefined;
13870
14111
  generated: undefined;
13871
14112
  }, {}, {}>;
14113
+ productFamily: import("drizzle-orm/pg-core").PgColumn<{
14114
+ name: "product_family";
14115
+ tableName: "flux_fulfillment_task_templates";
14116
+ dataType: "string";
14117
+ columnType: "PgText";
14118
+ data: string;
14119
+ driverParam: string;
14120
+ notNull: false;
14121
+ hasDefault: false;
14122
+ isPrimaryKey: false;
14123
+ isAutoincrement: false;
14124
+ hasRuntimeDefault: false;
14125
+ enumValues: [string, ...string[]];
14126
+ baseColumn: never;
14127
+ identity: undefined;
14128
+ generated: undefined;
14129
+ }, {}, {}>;
14130
+ dependsOnTemplateIds: import("drizzle-orm/pg-core").PgColumn<{
14131
+ name: "depends_on_template_ids";
14132
+ tableName: "flux_fulfillment_task_templates";
14133
+ dataType: "array";
14134
+ columnType: "PgArray";
14135
+ data: string[];
14136
+ driverParam: string | string[];
14137
+ notNull: false;
14138
+ hasDefault: true;
14139
+ isPrimaryKey: false;
14140
+ isAutoincrement: false;
14141
+ hasRuntimeDefault: false;
14142
+ enumValues: [string, ...string[]];
14143
+ baseColumn: import("drizzle-orm").Column<{
14144
+ name: "depends_on_template_ids";
14145
+ tableName: "flux_fulfillment_task_templates";
14146
+ dataType: "string";
14147
+ columnType: "PgText";
14148
+ data: string;
14149
+ driverParam: string;
14150
+ notNull: false;
14151
+ hasDefault: false;
14152
+ isPrimaryKey: false;
14153
+ isAutoincrement: false;
14154
+ hasRuntimeDefault: false;
14155
+ enumValues: [string, ...string[]];
14156
+ baseColumn: never;
14157
+ identity: undefined;
14158
+ generated: undefined;
14159
+ }, {}, {}>;
14160
+ identity: undefined;
14161
+ generated: undefined;
14162
+ }, {}, {
14163
+ baseBuilder: import("drizzle-orm/pg-core").PgColumnBuilder<{
14164
+ name: "depends_on_template_ids";
14165
+ dataType: "string";
14166
+ columnType: "PgText";
14167
+ data: string;
14168
+ enumValues: [string, ...string[]];
14169
+ driverParam: string;
14170
+ }, {}, {}, import("drizzle-orm").ColumnBuilderExtraConfig>;
14171
+ size: undefined;
14172
+ }>;
14173
+ isParallel: import("drizzle-orm/pg-core").PgColumn<{
14174
+ name: "is_parallel";
14175
+ tableName: "flux_fulfillment_task_templates";
14176
+ dataType: "boolean";
14177
+ columnType: "PgBoolean";
14178
+ data: boolean;
14179
+ driverParam: boolean;
14180
+ notNull: true;
14181
+ hasDefault: true;
14182
+ isPrimaryKey: false;
14183
+ isAutoincrement: false;
14184
+ hasRuntimeDefault: false;
14185
+ enumValues: undefined;
14186
+ baseColumn: never;
14187
+ identity: undefined;
14188
+ generated: undefined;
14189
+ }, {}, {}>;
14190
+ taskCategory: import("drizzle-orm/pg-core").PgColumn<{
14191
+ name: "task_category";
14192
+ tableName: "flux_fulfillment_task_templates";
14193
+ dataType: "string";
14194
+ columnType: "PgText";
14195
+ data: string;
14196
+ driverParam: string;
14197
+ notNull: false;
14198
+ hasDefault: false;
14199
+ isPrimaryKey: false;
14200
+ isAutoincrement: false;
14201
+ hasRuntimeDefault: false;
14202
+ enumValues: [string, ...string[]];
14203
+ baseColumn: never;
14204
+ identity: undefined;
14205
+ generated: undefined;
14206
+ }, {}, {}>;
13872
14207
  isActive: import("drizzle-orm/pg-core").PgColumn<{
13873
14208
  name: "is_active";
13874
14209
  tableName: "flux_fulfillment_task_templates";
@@ -14233,6 +14568,10 @@ export type FluxBudget = typeof fluxBudgets.$inferSelect;
14233
14568
  export type NewFluxBudget = typeof fluxBudgets.$inferInsert;
14234
14569
  export type FluxTask = typeof fluxTasks.$inferSelect;
14235
14570
  export type NewFluxTask = typeof fluxTasks.$inferInsert;
14571
+ export type FluxTaskDependency = typeof fluxTaskDependencies.$inferSelect;
14572
+ export type NewFluxTaskDependency = typeof fluxTaskDependencies.$inferInsert;
14573
+ export type FluxTaskWatcher = typeof fluxTaskWatchers.$inferSelect;
14574
+ export type NewFluxTaskWatcher = typeof fluxTaskWatchers.$inferInsert;
14236
14575
  export type FluxAuditLogEntry = typeof fluxAuditLog.$inferSelect;
14237
14576
  export type NewFluxAuditLogEntry = typeof fluxAuditLog.$inferInsert;
14238
14577
  export type FluxStrategistEvent = typeof fluxStrategistEvents.$inferSelect;
@@ -14435,7 +14774,7 @@ export declare const fluxProgrammaticShells: import("drizzle-orm/pg-core").PgTab
14435
14774
  tableName: "flux_programmatic_shells";
14436
14775
  dataType: "string";
14437
14776
  columnType: "PgEnumColumn";
14438
- data: "draft" | "completed" | "edited" | "vendor_locked" | "activated";
14777
+ data: "completed" | "draft" | "edited" | "vendor_locked" | "activated";
14439
14778
  driverParam: string;
14440
14779
  notNull: true;
14441
14780
  hasDefault: true;
@@ -18560,7 +18899,7 @@ export declare const fluxBadadReports: import("drizzle-orm/pg-core").PgTableWith
18560
18899
  tableName: "flux_badad_reports";
18561
18900
  dataType: "string";
18562
18901
  columnType: "PgEnumColumn";
18563
- data: "new" | "investigating" | "resolved" | "blocked" | "escalated";
18902
+ data: "blocked" | "new" | "investigating" | "resolved" | "escalated";
18564
18903
  driverParam: string;
18565
18904
  notNull: true;
18566
18905
  hasDefault: true;