@voyantjs/products 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 (51) 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-public.d.ts +337 -0
  5. package/dist/routes-public.d.ts.map +1 -0
  6. package/dist/routes-public.js +32 -0
  7. package/dist/routes.d.ts +4 -4
  8. package/dist/schema-core.d.ts +897 -0
  9. package/dist/schema-core.d.ts.map +1 -0
  10. package/dist/schema-core.js +77 -0
  11. package/dist/schema-itinerary.d.ts +828 -0
  12. package/dist/schema-itinerary.d.ts.map +1 -0
  13. package/dist/schema-itinerary.js +77 -0
  14. package/dist/schema-relations.d.ts +99 -0
  15. package/dist/schema-relations.d.ts.map +1 -0
  16. package/dist/schema-relations.js +155 -0
  17. package/dist/schema-settings.d.ts +1749 -0
  18. package/dist/schema-settings.d.ts.map +1 -0
  19. package/dist/schema-settings.js +175 -0
  20. package/dist/schema-shared.d.ts +15 -0
  21. package/dist/schema-shared.d.ts.map +1 -0
  22. package/dist/schema-shared.js +91 -0
  23. package/dist/schema-taxonomy.d.ts +573 -0
  24. package/dist/schema-taxonomy.d.ts.map +1 -0
  25. package/dist/schema-taxonomy.js +65 -0
  26. package/dist/schema.d.ts +6 -4155
  27. package/dist/schema.d.ts.map +1 -1
  28. package/dist/schema.js +6 -653
  29. package/dist/service-public.d.ts +259 -0
  30. package/dist/service-public.d.ts.map +1 -0
  31. package/dist/service-public.js +479 -0
  32. package/dist/service.d.ts +4 -4
  33. package/dist/validation-config.d.ts +233 -0
  34. package/dist/validation-config.d.ts.map +1 -0
  35. package/dist/validation-config.js +73 -0
  36. package/dist/validation-content.d.ts +358 -0
  37. package/dist/validation-content.d.ts.map +1 -0
  38. package/dist/validation-content.js +177 -0
  39. package/dist/validation-core.d.ts +268 -0
  40. package/dist/validation-core.d.ts.map +1 -0
  41. package/dist/validation-core.js +91 -0
  42. package/dist/validation-public.d.ts +454 -0
  43. package/dist/validation-public.d.ts.map +1 -0
  44. package/dist/validation-public.js +130 -0
  45. package/dist/validation-shared.d.ts +108 -0
  46. package/dist/validation-shared.d.ts.map +1 -0
  47. package/dist/validation-shared.js +87 -0
  48. package/dist/validation.d.ts +5 -854
  49. package/dist/validation.d.ts.map +1 -1
  50. package/dist/validation.js +5 -433
  51. package/package.json +12 -4
@@ -0,0 +1,573 @@
1
+ export declare const productTypes: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "product_types";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: string;
7
+ tableName: "product_types";
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
+ name: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "name";
24
+ tableName: "product_types";
25
+ dataType: "string";
26
+ columnType: "PgText";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: true;
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
+ code: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "code";
41
+ tableName: "product_types";
42
+ dataType: "string";
43
+ columnType: "PgText";
44
+ data: string;
45
+ driverParam: string;
46
+ notNull: true;
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
+ description: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "description";
58
+ tableName: "product_types";
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
+ sortOrder: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "sort_order";
75
+ tableName: "product_types";
76
+ dataType: "number";
77
+ columnType: "PgInteger";
78
+ data: number;
79
+ driverParam: string | number;
80
+ notNull: true;
81
+ hasDefault: true;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: undefined;
86
+ baseColumn: never;
87
+ identity: undefined;
88
+ generated: undefined;
89
+ }, {}, {}>;
90
+ active: import("drizzle-orm/pg-core").PgColumn<{
91
+ name: "active";
92
+ tableName: "product_types";
93
+ dataType: "boolean";
94
+ columnType: "PgBoolean";
95
+ data: boolean;
96
+ driverParam: boolean;
97
+ notNull: true;
98
+ hasDefault: true;
99
+ isPrimaryKey: false;
100
+ isAutoincrement: false;
101
+ hasRuntimeDefault: false;
102
+ enumValues: undefined;
103
+ baseColumn: never;
104
+ identity: undefined;
105
+ generated: undefined;
106
+ }, {}, {}>;
107
+ metadata: import("drizzle-orm/pg-core").PgColumn<{
108
+ name: "metadata";
109
+ tableName: "product_types";
110
+ dataType: "json";
111
+ columnType: "PgJsonb";
112
+ data: Record<string, unknown>;
113
+ driverParam: unknown;
114
+ notNull: false;
115
+ hasDefault: false;
116
+ isPrimaryKey: false;
117
+ isAutoincrement: false;
118
+ hasRuntimeDefault: false;
119
+ enumValues: undefined;
120
+ baseColumn: never;
121
+ identity: undefined;
122
+ generated: undefined;
123
+ }, {}, {
124
+ $type: Record<string, unknown>;
125
+ }>;
126
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
127
+ name: "created_at";
128
+ tableName: "product_types";
129
+ dataType: "date";
130
+ columnType: "PgTimestamp";
131
+ data: Date;
132
+ driverParam: string;
133
+ notNull: true;
134
+ hasDefault: true;
135
+ isPrimaryKey: false;
136
+ isAutoincrement: false;
137
+ hasRuntimeDefault: false;
138
+ enumValues: undefined;
139
+ baseColumn: never;
140
+ identity: undefined;
141
+ generated: undefined;
142
+ }, {}, {}>;
143
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
144
+ name: "updated_at";
145
+ tableName: "product_types";
146
+ dataType: "date";
147
+ columnType: "PgTimestamp";
148
+ data: Date;
149
+ driverParam: string;
150
+ notNull: true;
151
+ hasDefault: true;
152
+ isPrimaryKey: false;
153
+ isAutoincrement: false;
154
+ hasRuntimeDefault: false;
155
+ enumValues: undefined;
156
+ baseColumn: never;
157
+ identity: undefined;
158
+ generated: undefined;
159
+ }, {}, {}>;
160
+ };
161
+ dialect: "pg";
162
+ }>;
163
+ export type ProductType = typeof productTypes.$inferSelect;
164
+ export type NewProductType = typeof productTypes.$inferInsert;
165
+ export declare const productCategories: import("drizzle-orm/pg-core").PgTableWithColumns<{
166
+ name: "product_categories";
167
+ schema: undefined;
168
+ columns: {
169
+ id: import("drizzle-orm/pg-core").PgColumn<{
170
+ name: string;
171
+ tableName: "product_categories";
172
+ dataType: "string";
173
+ columnType: "PgText";
174
+ data: string;
175
+ driverParam: string;
176
+ notNull: true;
177
+ hasDefault: true;
178
+ isPrimaryKey: true;
179
+ isAutoincrement: false;
180
+ hasRuntimeDefault: true;
181
+ enumValues: [string, ...string[]];
182
+ baseColumn: never;
183
+ identity: undefined;
184
+ generated: undefined;
185
+ }, {}, {}>;
186
+ parentId: import("drizzle-orm/pg-core").PgColumn<{
187
+ name: "parent_id";
188
+ tableName: "product_categories";
189
+ dataType: "string";
190
+ columnType: "PgText";
191
+ data: string;
192
+ driverParam: string;
193
+ notNull: false;
194
+ hasDefault: false;
195
+ isPrimaryKey: false;
196
+ isAutoincrement: false;
197
+ hasRuntimeDefault: false;
198
+ enumValues: [string, ...string[]];
199
+ baseColumn: never;
200
+ identity: undefined;
201
+ generated: undefined;
202
+ }, {}, {}>;
203
+ name: import("drizzle-orm/pg-core").PgColumn<{
204
+ name: "name";
205
+ tableName: "product_categories";
206
+ dataType: "string";
207
+ columnType: "PgText";
208
+ data: string;
209
+ driverParam: string;
210
+ notNull: true;
211
+ hasDefault: false;
212
+ isPrimaryKey: false;
213
+ isAutoincrement: false;
214
+ hasRuntimeDefault: false;
215
+ enumValues: [string, ...string[]];
216
+ baseColumn: never;
217
+ identity: undefined;
218
+ generated: undefined;
219
+ }, {}, {}>;
220
+ slug: import("drizzle-orm/pg-core").PgColumn<{
221
+ name: "slug";
222
+ tableName: "product_categories";
223
+ dataType: "string";
224
+ columnType: "PgText";
225
+ data: string;
226
+ driverParam: string;
227
+ notNull: true;
228
+ hasDefault: false;
229
+ isPrimaryKey: false;
230
+ isAutoincrement: false;
231
+ hasRuntimeDefault: false;
232
+ enumValues: [string, ...string[]];
233
+ baseColumn: never;
234
+ identity: undefined;
235
+ generated: undefined;
236
+ }, {}, {}>;
237
+ description: import("drizzle-orm/pg-core").PgColumn<{
238
+ name: "description";
239
+ tableName: "product_categories";
240
+ dataType: "string";
241
+ columnType: "PgText";
242
+ data: string;
243
+ driverParam: string;
244
+ notNull: false;
245
+ hasDefault: false;
246
+ isPrimaryKey: false;
247
+ isAutoincrement: false;
248
+ hasRuntimeDefault: false;
249
+ enumValues: [string, ...string[]];
250
+ baseColumn: never;
251
+ identity: undefined;
252
+ generated: undefined;
253
+ }, {}, {}>;
254
+ sortOrder: import("drizzle-orm/pg-core").PgColumn<{
255
+ name: "sort_order";
256
+ tableName: "product_categories";
257
+ dataType: "number";
258
+ columnType: "PgInteger";
259
+ data: number;
260
+ driverParam: string | number;
261
+ notNull: true;
262
+ hasDefault: true;
263
+ isPrimaryKey: false;
264
+ isAutoincrement: false;
265
+ hasRuntimeDefault: false;
266
+ enumValues: undefined;
267
+ baseColumn: never;
268
+ identity: undefined;
269
+ generated: undefined;
270
+ }, {}, {}>;
271
+ active: import("drizzle-orm/pg-core").PgColumn<{
272
+ name: "active";
273
+ tableName: "product_categories";
274
+ dataType: "boolean";
275
+ columnType: "PgBoolean";
276
+ data: boolean;
277
+ driverParam: boolean;
278
+ notNull: true;
279
+ hasDefault: true;
280
+ isPrimaryKey: false;
281
+ isAutoincrement: false;
282
+ hasRuntimeDefault: false;
283
+ enumValues: undefined;
284
+ baseColumn: never;
285
+ identity: undefined;
286
+ generated: undefined;
287
+ }, {}, {}>;
288
+ metadata: import("drizzle-orm/pg-core").PgColumn<{
289
+ name: "metadata";
290
+ tableName: "product_categories";
291
+ dataType: "json";
292
+ columnType: "PgJsonb";
293
+ data: Record<string, unknown>;
294
+ driverParam: unknown;
295
+ notNull: false;
296
+ hasDefault: false;
297
+ isPrimaryKey: false;
298
+ isAutoincrement: false;
299
+ hasRuntimeDefault: false;
300
+ enumValues: undefined;
301
+ baseColumn: never;
302
+ identity: undefined;
303
+ generated: undefined;
304
+ }, {}, {
305
+ $type: Record<string, unknown>;
306
+ }>;
307
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
308
+ name: "created_at";
309
+ tableName: "product_categories";
310
+ dataType: "date";
311
+ columnType: "PgTimestamp";
312
+ data: Date;
313
+ driverParam: string;
314
+ notNull: true;
315
+ hasDefault: true;
316
+ isPrimaryKey: false;
317
+ isAutoincrement: false;
318
+ hasRuntimeDefault: false;
319
+ enumValues: undefined;
320
+ baseColumn: never;
321
+ identity: undefined;
322
+ generated: undefined;
323
+ }, {}, {}>;
324
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
325
+ name: "updated_at";
326
+ tableName: "product_categories";
327
+ dataType: "date";
328
+ columnType: "PgTimestamp";
329
+ data: Date;
330
+ driverParam: string;
331
+ notNull: true;
332
+ hasDefault: true;
333
+ isPrimaryKey: false;
334
+ isAutoincrement: false;
335
+ hasRuntimeDefault: false;
336
+ enumValues: undefined;
337
+ baseColumn: never;
338
+ identity: undefined;
339
+ generated: undefined;
340
+ }, {}, {}>;
341
+ };
342
+ dialect: "pg";
343
+ }>;
344
+ export type ProductCategory = typeof productCategories.$inferSelect;
345
+ export type NewProductCategory = typeof productCategories.$inferInsert;
346
+ export declare const productTags: import("drizzle-orm/pg-core").PgTableWithColumns<{
347
+ name: "product_tags";
348
+ schema: undefined;
349
+ columns: {
350
+ id: import("drizzle-orm/pg-core").PgColumn<{
351
+ name: string;
352
+ tableName: "product_tags";
353
+ dataType: "string";
354
+ columnType: "PgText";
355
+ data: string;
356
+ driverParam: string;
357
+ notNull: true;
358
+ hasDefault: true;
359
+ isPrimaryKey: true;
360
+ isAutoincrement: false;
361
+ hasRuntimeDefault: true;
362
+ enumValues: [string, ...string[]];
363
+ baseColumn: never;
364
+ identity: undefined;
365
+ generated: undefined;
366
+ }, {}, {}>;
367
+ name: import("drizzle-orm/pg-core").PgColumn<{
368
+ name: "name";
369
+ tableName: "product_tags";
370
+ dataType: "string";
371
+ columnType: "PgText";
372
+ data: string;
373
+ driverParam: string;
374
+ notNull: true;
375
+ hasDefault: false;
376
+ isPrimaryKey: false;
377
+ isAutoincrement: false;
378
+ hasRuntimeDefault: false;
379
+ enumValues: [string, ...string[]];
380
+ baseColumn: never;
381
+ identity: undefined;
382
+ generated: undefined;
383
+ }, {}, {}>;
384
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
385
+ name: "created_at";
386
+ tableName: "product_tags";
387
+ dataType: "date";
388
+ columnType: "PgTimestamp";
389
+ data: Date;
390
+ driverParam: string;
391
+ notNull: true;
392
+ hasDefault: true;
393
+ isPrimaryKey: false;
394
+ isAutoincrement: false;
395
+ hasRuntimeDefault: false;
396
+ enumValues: undefined;
397
+ baseColumn: never;
398
+ identity: undefined;
399
+ generated: undefined;
400
+ }, {}, {}>;
401
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
402
+ name: "updated_at";
403
+ tableName: "product_tags";
404
+ dataType: "date";
405
+ columnType: "PgTimestamp";
406
+ data: Date;
407
+ driverParam: string;
408
+ notNull: true;
409
+ hasDefault: true;
410
+ isPrimaryKey: false;
411
+ isAutoincrement: false;
412
+ hasRuntimeDefault: false;
413
+ enumValues: undefined;
414
+ baseColumn: never;
415
+ identity: undefined;
416
+ generated: undefined;
417
+ }, {}, {}>;
418
+ };
419
+ dialect: "pg";
420
+ }>;
421
+ export type ProductTag = typeof productTags.$inferSelect;
422
+ export type NewProductTag = typeof productTags.$inferInsert;
423
+ export declare const productCategoryProducts: import("drizzle-orm/pg-core").PgTableWithColumns<{
424
+ name: "product_category_products";
425
+ schema: undefined;
426
+ columns: {
427
+ productId: import("drizzle-orm/pg-core").PgColumn<{
428
+ name: string;
429
+ tableName: "product_category_products";
430
+ dataType: "string";
431
+ columnType: "PgText";
432
+ data: string;
433
+ driverParam: string;
434
+ notNull: true;
435
+ hasDefault: false;
436
+ isPrimaryKey: false;
437
+ isAutoincrement: false;
438
+ hasRuntimeDefault: false;
439
+ enumValues: [string, ...string[]];
440
+ baseColumn: never;
441
+ identity: undefined;
442
+ generated: undefined;
443
+ }, {}, {}>;
444
+ categoryId: import("drizzle-orm/pg-core").PgColumn<{
445
+ name: string;
446
+ tableName: "product_category_products";
447
+ dataType: "string";
448
+ columnType: "PgText";
449
+ data: string;
450
+ driverParam: string;
451
+ notNull: true;
452
+ hasDefault: false;
453
+ isPrimaryKey: false;
454
+ isAutoincrement: false;
455
+ hasRuntimeDefault: false;
456
+ enumValues: [string, ...string[]];
457
+ baseColumn: never;
458
+ identity: undefined;
459
+ generated: undefined;
460
+ }, {}, {}>;
461
+ sortOrder: import("drizzle-orm/pg-core").PgColumn<{
462
+ name: "sort_order";
463
+ tableName: "product_category_products";
464
+ dataType: "number";
465
+ columnType: "PgInteger";
466
+ data: number;
467
+ driverParam: string | number;
468
+ notNull: true;
469
+ hasDefault: true;
470
+ isPrimaryKey: false;
471
+ isAutoincrement: false;
472
+ hasRuntimeDefault: false;
473
+ enumValues: undefined;
474
+ baseColumn: never;
475
+ identity: undefined;
476
+ generated: undefined;
477
+ }, {}, {}>;
478
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
479
+ name: "created_at";
480
+ tableName: "product_category_products";
481
+ dataType: "date";
482
+ columnType: "PgTimestamp";
483
+ data: Date;
484
+ driverParam: string;
485
+ notNull: true;
486
+ hasDefault: true;
487
+ isPrimaryKey: false;
488
+ isAutoincrement: false;
489
+ hasRuntimeDefault: false;
490
+ enumValues: undefined;
491
+ baseColumn: never;
492
+ identity: undefined;
493
+ generated: undefined;
494
+ }, {}, {}>;
495
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
496
+ name: "updated_at";
497
+ tableName: "product_category_products";
498
+ dataType: "date";
499
+ columnType: "PgTimestamp";
500
+ data: Date;
501
+ driverParam: string;
502
+ notNull: true;
503
+ hasDefault: true;
504
+ isPrimaryKey: false;
505
+ isAutoincrement: false;
506
+ hasRuntimeDefault: false;
507
+ enumValues: undefined;
508
+ baseColumn: never;
509
+ identity: undefined;
510
+ generated: undefined;
511
+ }, {}, {}>;
512
+ };
513
+ dialect: "pg";
514
+ }>;
515
+ export declare const productTagProducts: import("drizzle-orm/pg-core").PgTableWithColumns<{
516
+ name: "product_tag_products";
517
+ schema: undefined;
518
+ columns: {
519
+ productId: import("drizzle-orm/pg-core").PgColumn<{
520
+ name: string;
521
+ tableName: "product_tag_products";
522
+ dataType: "string";
523
+ columnType: "PgText";
524
+ data: string;
525
+ driverParam: string;
526
+ notNull: true;
527
+ hasDefault: false;
528
+ isPrimaryKey: false;
529
+ isAutoincrement: false;
530
+ hasRuntimeDefault: false;
531
+ enumValues: [string, ...string[]];
532
+ baseColumn: never;
533
+ identity: undefined;
534
+ generated: undefined;
535
+ }, {}, {}>;
536
+ tagId: import("drizzle-orm/pg-core").PgColumn<{
537
+ name: string;
538
+ tableName: "product_tag_products";
539
+ dataType: "string";
540
+ columnType: "PgText";
541
+ data: string;
542
+ driverParam: string;
543
+ notNull: true;
544
+ hasDefault: false;
545
+ isPrimaryKey: false;
546
+ isAutoincrement: false;
547
+ hasRuntimeDefault: false;
548
+ enumValues: [string, ...string[]];
549
+ baseColumn: never;
550
+ identity: undefined;
551
+ generated: undefined;
552
+ }, {}, {}>;
553
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
554
+ name: "created_at";
555
+ tableName: "product_tag_products";
556
+ dataType: "date";
557
+ columnType: "PgTimestamp";
558
+ data: Date;
559
+ driverParam: string;
560
+ notNull: true;
561
+ hasDefault: true;
562
+ isPrimaryKey: false;
563
+ isAutoincrement: false;
564
+ hasRuntimeDefault: false;
565
+ enumValues: undefined;
566
+ baseColumn: never;
567
+ identity: undefined;
568
+ generated: undefined;
569
+ }, {}, {}>;
570
+ };
571
+ dialect: "pg";
572
+ }>;
573
+ //# sourceMappingURL=schema-taxonomy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-taxonomy.d.ts","sourceRoot":"","sources":["../src/schema-taxonomy.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBxB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAA;AAC1D,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,CAAC,YAAY,CAAA;AAE7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB7B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA;AAEtE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,YAAY,CAAA;AACxD,MAAM,MAAM,aAAa,GAAG,OAAO,WAAW,CAAC,YAAY,CAAA;AAE3D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBnC,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe9B,CAAA"}
@@ -0,0 +1,65 @@
1
+ import { typeId, typeIdRef } from "@voyantjs/db/lib/typeid-column";
2
+ import { boolean, index, integer, jsonb, pgTable, primaryKey, text, timestamp, uniqueIndex, } from "drizzle-orm/pg-core";
3
+ import { products } from "./schema-core";
4
+ export const productTypes = pgTable("product_types", {
5
+ id: typeId("product_types"),
6
+ name: text("name").notNull(),
7
+ code: text("code").notNull(),
8
+ description: text("description"),
9
+ sortOrder: integer("sort_order").notNull().default(0),
10
+ active: boolean("active").notNull().default(true),
11
+ metadata: jsonb("metadata").$type(),
12
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
13
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
14
+ }, (table) => [
15
+ uniqueIndex("uidx_product_types_code").on(table.code),
16
+ index("idx_product_types_active").on(table.active),
17
+ ]);
18
+ export const productCategories = pgTable("product_categories", {
19
+ id: typeId("product_categories"),
20
+ parentId: text("parent_id"),
21
+ name: text("name").notNull(),
22
+ slug: text("slug").notNull(),
23
+ description: text("description"),
24
+ sortOrder: integer("sort_order").notNull().default(0),
25
+ active: boolean("active").notNull().default(true),
26
+ metadata: jsonb("metadata").$type(),
27
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
28
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
29
+ }, (table) => [
30
+ uniqueIndex("uidx_product_categories_slug").on(table.slug),
31
+ index("idx_product_categories_parent").on(table.parentId),
32
+ index("idx_product_categories_active").on(table.active),
33
+ ]);
34
+ export const productTags = pgTable("product_tags", {
35
+ id: typeId("product_tags"),
36
+ name: text("name").notNull(),
37
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
38
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
39
+ }, (table) => [uniqueIndex("uidx_product_tags_name").on(table.name)]);
40
+ export const productCategoryProducts = pgTable("product_category_products", {
41
+ productId: typeIdRef("product_id")
42
+ .notNull()
43
+ .references(() => products.id, { onDelete: "cascade" }),
44
+ categoryId: typeIdRef("category_id")
45
+ .notNull()
46
+ .references(() => productCategories.id, { onDelete: "cascade" }),
47
+ sortOrder: integer("sort_order").notNull().default(0),
48
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
49
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
50
+ }, (table) => [
51
+ primaryKey({ columns: [table.productId, table.categoryId] }),
52
+ index("idx_pcp_category").on(table.categoryId),
53
+ ]);
54
+ export const productTagProducts = pgTable("product_tag_products", {
55
+ productId: typeIdRef("product_id")
56
+ .notNull()
57
+ .references(() => products.id, { onDelete: "cascade" }),
58
+ tagId: typeIdRef("tag_id")
59
+ .notNull()
60
+ .references(() => productTags.id, { onDelete: "cascade" }),
61
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
62
+ }, (table) => [
63
+ primaryKey({ columns: [table.productId, table.tagId] }),
64
+ index("idx_ptp_tag").on(table.tagId),
65
+ ]);