@voyantjs/pricing 0.2.0 → 0.3.1

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 (73) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +5 -0
  4. package/dist/routes-core.d.ts +981 -0
  5. package/dist/routes-core.d.ts.map +1 -0
  6. package/dist/routes-core.js +101 -0
  7. package/dist/routes-public.d.ts +136 -0
  8. package/dist/routes-public.d.ts.map +1 -0
  9. package/dist/routes-public.js +13 -0
  10. package/dist/routes-rules.d.ts +1176 -0
  11. package/dist/routes-rules.d.ts.map +1 -0
  12. package/dist/routes-rules.js +117 -0
  13. package/dist/routes-shared.d.ts +12 -0
  14. package/dist/routes-shared.d.ts.map +1 -0
  15. package/dist/routes-shared.js +3 -0
  16. package/dist/routes.d.ts +5 -2160
  17. package/dist/routes.d.ts.map +1 -1
  18. package/dist/routes.js +5 -354
  19. package/dist/schema-catalogs.d.ts +467 -0
  20. package/dist/schema-catalogs.d.ts.map +1 -0
  21. package/dist/schema-catalogs.js +44 -0
  22. package/dist/schema-categories.d.ts +497 -0
  23. package/dist/schema-categories.d.ts.map +1 -0
  24. package/dist/schema-categories.js +50 -0
  25. package/dist/schema-option-rules.d.ts +1770 -0
  26. package/dist/schema-option-rules.d.ts.map +1 -0
  27. package/dist/schema-option-rules.js +174 -0
  28. package/dist/schema-policies.d.ts +395 -0
  29. package/dist/schema-policies.d.ts.map +1 -0
  30. package/dist/schema-policies.js +38 -0
  31. package/dist/schema-relations.d.ts +55 -0
  32. package/dist/schema-relations.d.ts.map +1 -0
  33. package/dist/schema-relations.js +103 -0
  34. package/dist/schema-shared.d.ts +11 -0
  35. package/dist/schema-shared.d.ts.map +1 -0
  36. package/dist/schema-shared.js +67 -0
  37. package/dist/schema.d.ts +6 -3189
  38. package/dist/schema.d.ts.map +1 -1
  39. package/dist/schema.js +6 -458
  40. package/dist/service-catalogs.d.ts +139 -0
  41. package/dist/service-catalogs.d.ts.map +1 -0
  42. package/dist/service-catalogs.js +89 -0
  43. package/dist/service-categories.d.ts +147 -0
  44. package/dist/service-categories.d.ts.map +1 -0
  45. package/dist/service-categories.js +105 -0
  46. package/dist/service-option-rules.d.ts +307 -0
  47. package/dist/service-option-rules.d.ts.map +1 -0
  48. package/dist/service-option-rules.js +188 -0
  49. package/dist/service-policies.d.ts +123 -0
  50. package/dist/service-policies.d.ts.map +1 -0
  51. package/dist/service-policies.js +95 -0
  52. package/dist/service-public.d.ts +89 -0
  53. package/dist/service-public.d.ts.map +1 -0
  54. package/dist/service-public.js +355 -0
  55. package/dist/service-shared.d.ts +50 -0
  56. package/dist/service-shared.d.ts.map +1 -0
  57. package/dist/service-shared.js +4 -0
  58. package/dist/service-transfer-rules.d.ts +211 -0
  59. package/dist/service-transfer-rules.d.ts.map +1 -0
  60. package/dist/service-transfer-rules.js +139 -0
  61. package/dist/service.d.ts +70 -955
  62. package/dist/service.d.ts.map +1 -1
  63. package/dist/service.js +70 -595
  64. package/dist/validation-public.d.ts +410 -0
  65. package/dist/validation-public.d.ts.map +1 -0
  66. package/dist/validation-public.js +109 -0
  67. package/dist/validation-shared.d.ts +71 -0
  68. package/dist/validation-shared.d.ts.map +1 -0
  69. package/dist/validation-shared.js +63 -0
  70. package/dist/validation.d.ts +4 -69
  71. package/dist/validation.d.ts.map +1 -1
  72. package/dist/validation.js +5 -62
  73. package/package.json +16 -8
@@ -0,0 +1,497 @@
1
+ export declare const pricingCategories: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "pricing_categories";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: string;
7
+ tableName: "pricing_categories";
8
+ dataType: "string";
9
+ columnType: "PgText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: true;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: true;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ productId: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "product_id";
24
+ tableName: "pricing_categories";
25
+ dataType: "string";
26
+ columnType: "PgText";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: false;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: [string, ...string[]];
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ optionId: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "option_id";
41
+ tableName: "pricing_categories";
42
+ dataType: "string";
43
+ columnType: "PgText";
44
+ data: string;
45
+ driverParam: string;
46
+ notNull: false;
47
+ hasDefault: false;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: [string, ...string[]];
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ unitId: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "unit_id";
58
+ tableName: "pricing_categories";
59
+ dataType: "string";
60
+ columnType: "PgText";
61
+ data: string;
62
+ driverParam: string;
63
+ notNull: false;
64
+ hasDefault: false;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: [string, ...string[]];
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ code: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "code";
75
+ tableName: "pricing_categories";
76
+ dataType: "string";
77
+ columnType: "PgText";
78
+ data: string;
79
+ driverParam: string;
80
+ notNull: false;
81
+ hasDefault: false;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: [string, ...string[]];
86
+ baseColumn: never;
87
+ identity: undefined;
88
+ generated: undefined;
89
+ }, {}, {}>;
90
+ name: import("drizzle-orm/pg-core").PgColumn<{
91
+ name: "name";
92
+ tableName: "pricing_categories";
93
+ dataType: "string";
94
+ columnType: "PgText";
95
+ data: string;
96
+ driverParam: string;
97
+ notNull: true;
98
+ hasDefault: false;
99
+ isPrimaryKey: false;
100
+ isAutoincrement: false;
101
+ hasRuntimeDefault: false;
102
+ enumValues: [string, ...string[]];
103
+ baseColumn: never;
104
+ identity: undefined;
105
+ generated: undefined;
106
+ }, {}, {}>;
107
+ categoryType: import("drizzle-orm/pg-core").PgColumn<{
108
+ name: "category_type";
109
+ tableName: "pricing_categories";
110
+ dataType: "string";
111
+ columnType: "PgEnumColumn";
112
+ data: "adult" | "child" | "infant" | "senior" | "group" | "room" | "vehicle" | "service" | "other";
113
+ driverParam: string;
114
+ notNull: true;
115
+ hasDefault: true;
116
+ isPrimaryKey: false;
117
+ isAutoincrement: false;
118
+ hasRuntimeDefault: false;
119
+ enumValues: ["adult", "child", "infant", "senior", "group", "room", "vehicle", "service", "other"];
120
+ baseColumn: never;
121
+ identity: undefined;
122
+ generated: undefined;
123
+ }, {}, {}>;
124
+ seatOccupancy: import("drizzle-orm/pg-core").PgColumn<{
125
+ name: "seat_occupancy";
126
+ tableName: "pricing_categories";
127
+ dataType: "number";
128
+ columnType: "PgInteger";
129
+ data: number;
130
+ driverParam: string | number;
131
+ notNull: true;
132
+ hasDefault: true;
133
+ isPrimaryKey: false;
134
+ isAutoincrement: false;
135
+ hasRuntimeDefault: false;
136
+ enumValues: undefined;
137
+ baseColumn: never;
138
+ identity: undefined;
139
+ generated: undefined;
140
+ }, {}, {}>;
141
+ groupSize: import("drizzle-orm/pg-core").PgColumn<{
142
+ name: "group_size";
143
+ tableName: "pricing_categories";
144
+ dataType: "number";
145
+ columnType: "PgInteger";
146
+ data: number;
147
+ driverParam: string | number;
148
+ notNull: false;
149
+ hasDefault: false;
150
+ isPrimaryKey: false;
151
+ isAutoincrement: false;
152
+ hasRuntimeDefault: false;
153
+ enumValues: undefined;
154
+ baseColumn: never;
155
+ identity: undefined;
156
+ generated: undefined;
157
+ }, {}, {}>;
158
+ isAgeQualified: import("drizzle-orm/pg-core").PgColumn<{
159
+ name: "is_age_qualified";
160
+ tableName: "pricing_categories";
161
+ dataType: "boolean";
162
+ columnType: "PgBoolean";
163
+ data: boolean;
164
+ driverParam: boolean;
165
+ notNull: true;
166
+ hasDefault: true;
167
+ isPrimaryKey: false;
168
+ isAutoincrement: false;
169
+ hasRuntimeDefault: false;
170
+ enumValues: undefined;
171
+ baseColumn: never;
172
+ identity: undefined;
173
+ generated: undefined;
174
+ }, {}, {}>;
175
+ minAge: import("drizzle-orm/pg-core").PgColumn<{
176
+ name: "min_age";
177
+ tableName: "pricing_categories";
178
+ dataType: "number";
179
+ columnType: "PgInteger";
180
+ data: number;
181
+ driverParam: string | number;
182
+ notNull: false;
183
+ hasDefault: false;
184
+ isPrimaryKey: false;
185
+ isAutoincrement: false;
186
+ hasRuntimeDefault: false;
187
+ enumValues: undefined;
188
+ baseColumn: never;
189
+ identity: undefined;
190
+ generated: undefined;
191
+ }, {}, {}>;
192
+ maxAge: import("drizzle-orm/pg-core").PgColumn<{
193
+ name: "max_age";
194
+ tableName: "pricing_categories";
195
+ dataType: "number";
196
+ columnType: "PgInteger";
197
+ data: number;
198
+ driverParam: string | number;
199
+ notNull: false;
200
+ hasDefault: false;
201
+ isPrimaryKey: false;
202
+ isAutoincrement: false;
203
+ hasRuntimeDefault: false;
204
+ enumValues: undefined;
205
+ baseColumn: never;
206
+ identity: undefined;
207
+ generated: undefined;
208
+ }, {}, {}>;
209
+ internalUseOnly: import("drizzle-orm/pg-core").PgColumn<{
210
+ name: "internal_use_only";
211
+ tableName: "pricing_categories";
212
+ dataType: "boolean";
213
+ columnType: "PgBoolean";
214
+ data: boolean;
215
+ driverParam: boolean;
216
+ notNull: true;
217
+ hasDefault: true;
218
+ isPrimaryKey: false;
219
+ isAutoincrement: false;
220
+ hasRuntimeDefault: false;
221
+ enumValues: undefined;
222
+ baseColumn: never;
223
+ identity: undefined;
224
+ generated: undefined;
225
+ }, {}, {}>;
226
+ active: import("drizzle-orm/pg-core").PgColumn<{
227
+ name: "active";
228
+ tableName: "pricing_categories";
229
+ dataType: "boolean";
230
+ columnType: "PgBoolean";
231
+ data: boolean;
232
+ driverParam: boolean;
233
+ notNull: true;
234
+ hasDefault: true;
235
+ isPrimaryKey: false;
236
+ isAutoincrement: false;
237
+ hasRuntimeDefault: false;
238
+ enumValues: undefined;
239
+ baseColumn: never;
240
+ identity: undefined;
241
+ generated: undefined;
242
+ }, {}, {}>;
243
+ sortOrder: import("drizzle-orm/pg-core").PgColumn<{
244
+ name: "sort_order";
245
+ tableName: "pricing_categories";
246
+ dataType: "number";
247
+ columnType: "PgInteger";
248
+ data: number;
249
+ driverParam: string | number;
250
+ notNull: true;
251
+ hasDefault: true;
252
+ isPrimaryKey: false;
253
+ isAutoincrement: false;
254
+ hasRuntimeDefault: false;
255
+ enumValues: undefined;
256
+ baseColumn: never;
257
+ identity: undefined;
258
+ generated: undefined;
259
+ }, {}, {}>;
260
+ metadata: import("drizzle-orm/pg-core").PgColumn<{
261
+ name: "metadata";
262
+ tableName: "pricing_categories";
263
+ dataType: "json";
264
+ columnType: "PgJsonb";
265
+ data: Record<string, unknown>;
266
+ driverParam: unknown;
267
+ notNull: false;
268
+ hasDefault: false;
269
+ isPrimaryKey: false;
270
+ isAutoincrement: false;
271
+ hasRuntimeDefault: false;
272
+ enumValues: undefined;
273
+ baseColumn: never;
274
+ identity: undefined;
275
+ generated: undefined;
276
+ }, {}, {
277
+ $type: Record<string, unknown>;
278
+ }>;
279
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
280
+ name: "created_at";
281
+ tableName: "pricing_categories";
282
+ dataType: "date";
283
+ columnType: "PgTimestamp";
284
+ data: Date;
285
+ driverParam: string;
286
+ notNull: true;
287
+ hasDefault: true;
288
+ isPrimaryKey: false;
289
+ isAutoincrement: false;
290
+ hasRuntimeDefault: false;
291
+ enumValues: undefined;
292
+ baseColumn: never;
293
+ identity: undefined;
294
+ generated: undefined;
295
+ }, {}, {}>;
296
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
297
+ name: "updated_at";
298
+ tableName: "pricing_categories";
299
+ dataType: "date";
300
+ columnType: "PgTimestamp";
301
+ data: Date;
302
+ driverParam: string;
303
+ notNull: true;
304
+ hasDefault: true;
305
+ isPrimaryKey: false;
306
+ isAutoincrement: false;
307
+ hasRuntimeDefault: false;
308
+ enumValues: undefined;
309
+ baseColumn: never;
310
+ identity: undefined;
311
+ generated: undefined;
312
+ }, {}, {}>;
313
+ };
314
+ dialect: "pg";
315
+ }>;
316
+ export declare const pricingCategoryDependencies: import("drizzle-orm/pg-core").PgTableWithColumns<{
317
+ name: "pricing_category_dependencies";
318
+ schema: undefined;
319
+ columns: {
320
+ id: import("drizzle-orm/pg-core").PgColumn<{
321
+ name: string;
322
+ tableName: "pricing_category_dependencies";
323
+ dataType: "string";
324
+ columnType: "PgText";
325
+ data: string;
326
+ driverParam: string;
327
+ notNull: true;
328
+ hasDefault: true;
329
+ isPrimaryKey: true;
330
+ isAutoincrement: false;
331
+ hasRuntimeDefault: true;
332
+ enumValues: [string, ...string[]];
333
+ baseColumn: never;
334
+ identity: undefined;
335
+ generated: undefined;
336
+ }, {}, {}>;
337
+ pricingCategoryId: import("drizzle-orm/pg-core").PgColumn<{
338
+ name: string;
339
+ tableName: "pricing_category_dependencies";
340
+ dataType: "string";
341
+ columnType: "PgText";
342
+ data: string;
343
+ driverParam: string;
344
+ notNull: true;
345
+ hasDefault: false;
346
+ isPrimaryKey: false;
347
+ isAutoincrement: false;
348
+ hasRuntimeDefault: false;
349
+ enumValues: [string, ...string[]];
350
+ baseColumn: never;
351
+ identity: undefined;
352
+ generated: undefined;
353
+ }, {}, {}>;
354
+ masterPricingCategoryId: import("drizzle-orm/pg-core").PgColumn<{
355
+ name: string;
356
+ tableName: "pricing_category_dependencies";
357
+ dataType: "string";
358
+ columnType: "PgText";
359
+ data: string;
360
+ driverParam: string;
361
+ notNull: true;
362
+ hasDefault: false;
363
+ isPrimaryKey: false;
364
+ isAutoincrement: false;
365
+ hasRuntimeDefault: false;
366
+ enumValues: [string, ...string[]];
367
+ baseColumn: never;
368
+ identity: undefined;
369
+ generated: undefined;
370
+ }, {}, {}>;
371
+ dependencyType: import("drizzle-orm/pg-core").PgColumn<{
372
+ name: "dependency_type";
373
+ tableName: "pricing_category_dependencies";
374
+ dataType: "string";
375
+ columnType: "PgEnumColumn";
376
+ data: "requires" | "limits_per_master" | "limits_sum" | "excludes";
377
+ driverParam: string;
378
+ notNull: true;
379
+ hasDefault: true;
380
+ isPrimaryKey: false;
381
+ isAutoincrement: false;
382
+ hasRuntimeDefault: false;
383
+ enumValues: ["requires", "limits_per_master", "limits_sum", "excludes"];
384
+ baseColumn: never;
385
+ identity: undefined;
386
+ generated: undefined;
387
+ }, {}, {}>;
388
+ maxPerMaster: import("drizzle-orm/pg-core").PgColumn<{
389
+ name: "max_per_master";
390
+ tableName: "pricing_category_dependencies";
391
+ dataType: "number";
392
+ columnType: "PgInteger";
393
+ data: number;
394
+ driverParam: string | number;
395
+ notNull: false;
396
+ hasDefault: false;
397
+ isPrimaryKey: false;
398
+ isAutoincrement: false;
399
+ hasRuntimeDefault: false;
400
+ enumValues: undefined;
401
+ baseColumn: never;
402
+ identity: undefined;
403
+ generated: undefined;
404
+ }, {}, {}>;
405
+ maxDependentSum: import("drizzle-orm/pg-core").PgColumn<{
406
+ name: "max_dependent_sum";
407
+ tableName: "pricing_category_dependencies";
408
+ dataType: "number";
409
+ columnType: "PgInteger";
410
+ data: number;
411
+ driverParam: string | number;
412
+ notNull: false;
413
+ hasDefault: false;
414
+ isPrimaryKey: false;
415
+ isAutoincrement: false;
416
+ hasRuntimeDefault: false;
417
+ enumValues: undefined;
418
+ baseColumn: never;
419
+ identity: undefined;
420
+ generated: undefined;
421
+ }, {}, {}>;
422
+ active: import("drizzle-orm/pg-core").PgColumn<{
423
+ name: "active";
424
+ tableName: "pricing_category_dependencies";
425
+ dataType: "boolean";
426
+ columnType: "PgBoolean";
427
+ data: boolean;
428
+ driverParam: boolean;
429
+ notNull: true;
430
+ hasDefault: true;
431
+ isPrimaryKey: false;
432
+ isAutoincrement: false;
433
+ hasRuntimeDefault: false;
434
+ enumValues: undefined;
435
+ baseColumn: never;
436
+ identity: undefined;
437
+ generated: undefined;
438
+ }, {}, {}>;
439
+ notes: import("drizzle-orm/pg-core").PgColumn<{
440
+ name: "notes";
441
+ tableName: "pricing_category_dependencies";
442
+ dataType: "string";
443
+ columnType: "PgText";
444
+ data: string;
445
+ driverParam: string;
446
+ notNull: false;
447
+ hasDefault: false;
448
+ isPrimaryKey: false;
449
+ isAutoincrement: false;
450
+ hasRuntimeDefault: false;
451
+ enumValues: [string, ...string[]];
452
+ baseColumn: never;
453
+ identity: undefined;
454
+ generated: undefined;
455
+ }, {}, {}>;
456
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
457
+ name: "created_at";
458
+ tableName: "pricing_category_dependencies";
459
+ dataType: "date";
460
+ columnType: "PgTimestamp";
461
+ data: Date;
462
+ driverParam: string;
463
+ notNull: true;
464
+ hasDefault: true;
465
+ isPrimaryKey: false;
466
+ isAutoincrement: false;
467
+ hasRuntimeDefault: false;
468
+ enumValues: undefined;
469
+ baseColumn: never;
470
+ identity: undefined;
471
+ generated: undefined;
472
+ }, {}, {}>;
473
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
474
+ name: "updated_at";
475
+ tableName: "pricing_category_dependencies";
476
+ dataType: "date";
477
+ columnType: "PgTimestamp";
478
+ data: Date;
479
+ driverParam: string;
480
+ notNull: true;
481
+ hasDefault: true;
482
+ isPrimaryKey: false;
483
+ isAutoincrement: false;
484
+ hasRuntimeDefault: false;
485
+ enumValues: undefined;
486
+ baseColumn: never;
487
+ identity: undefined;
488
+ generated: undefined;
489
+ }, {}, {}>;
490
+ };
491
+ dialect: "pg";
492
+ }>;
493
+ export type PricingCategory = typeof pricingCategories.$inferSelect;
494
+ export type NewPricingCategory = typeof pricingCategories.$inferInsert;
495
+ export type PricingCategoryDependency = typeof pricingCategoryDependencies.$inferSelect;
496
+ export type NewPricingCategoryDependency = typeof pricingCategoryDependencies.$inferInsert;
497
+ //# sourceMappingURL=schema-categories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-categories.d.ts","sourceRoot":"","sources":["../src/schema-categories.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8B7B,CAAA;AAED,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BvC,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA;AACtE,MAAM,MAAM,yBAAyB,GAAG,OAAO,2BAA2B,CAAC,YAAY,CAAA;AACvF,MAAM,MAAM,4BAA4B,GAAG,OAAO,2BAA2B,CAAC,YAAY,CAAA"}
@@ -0,0 +1,50 @@
1
+ import { typeId, typeIdRef } from "@voyantjs/db/lib/typeid-column";
2
+ import { boolean, index, integer, jsonb, pgTable, text, timestamp, uniqueIndex, } from "drizzle-orm/pg-core";
3
+ import { pricingCategoryTypeEnum, pricingDependencyTypeEnum } from "./schema-shared";
4
+ export const pricingCategories = pgTable("pricing_categories", {
5
+ id: typeId("pricing_categories"),
6
+ productId: text("product_id"),
7
+ optionId: text("option_id"),
8
+ unitId: text("unit_id"),
9
+ code: text("code"),
10
+ name: text("name").notNull(),
11
+ categoryType: pricingCategoryTypeEnum("category_type").notNull().default("other"),
12
+ seatOccupancy: integer("seat_occupancy").notNull().default(1),
13
+ groupSize: integer("group_size"),
14
+ isAgeQualified: boolean("is_age_qualified").notNull().default(false),
15
+ minAge: integer("min_age"),
16
+ maxAge: integer("max_age"),
17
+ internalUseOnly: boolean("internal_use_only").notNull().default(false),
18
+ active: boolean("active").notNull().default(true),
19
+ sortOrder: integer("sort_order").notNull().default(0),
20
+ metadata: jsonb("metadata").$type(),
21
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
22
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
23
+ }, (table) => [
24
+ index("idx_pricing_categories_product").on(table.productId),
25
+ index("idx_pricing_categories_option").on(table.optionId),
26
+ index("idx_pricing_categories_unit").on(table.unitId),
27
+ index("idx_pricing_categories_type").on(table.categoryType),
28
+ index("idx_pricing_categories_active").on(table.active),
29
+ uniqueIndex("uidx_pricing_categories_option_code").on(table.optionId, table.code),
30
+ ]);
31
+ export const pricingCategoryDependencies = pgTable("pricing_category_dependencies", {
32
+ id: typeId("pricing_category_dependencies"),
33
+ pricingCategoryId: typeIdRef("pricing_category_id")
34
+ .notNull()
35
+ .references(() => pricingCategories.id, { onDelete: "cascade" }),
36
+ masterPricingCategoryId: typeIdRef("master_pricing_category_id")
37
+ .notNull()
38
+ .references(() => pricingCategories.id, { onDelete: "cascade" }),
39
+ dependencyType: pricingDependencyTypeEnum("dependency_type").notNull().default("requires"),
40
+ maxPerMaster: integer("max_per_master"),
41
+ maxDependentSum: integer("max_dependent_sum"),
42
+ active: boolean("active").notNull().default(true),
43
+ notes: text("notes"),
44
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
45
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
46
+ }, (table) => [
47
+ index("idx_pricing_category_dependencies_category").on(table.pricingCategoryId),
48
+ index("idx_pricing_category_dependencies_master").on(table.masterPricingCategoryId),
49
+ uniqueIndex("uidx_pricing_category_dependencies_pair_type").on(table.pricingCategoryId, table.masterPricingCategoryId, table.dependencyType),
50
+ ]);