@unifiedcommerce/plugin-notifications 0.0.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 (38) hide show
  1. package/dist/adapters/console.d.ts +17 -0
  2. package/dist/adapters/console.d.ts.map +1 -0
  3. package/dist/adapters/console.js +44 -0
  4. package/dist/adapters/types.d.ts +62 -0
  5. package/dist/adapters/types.d.ts.map +1 -0
  6. package/dist/adapters/types.js +1 -0
  7. package/dist/index.d.ts +24 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +46 -0
  10. package/dist/routes/notifications.d.ts +11 -0
  11. package/dist/routes/notifications.d.ts.map +1 -0
  12. package/dist/routes/notifications.js +170 -0
  13. package/dist/schema.d.ts +624 -0
  14. package/dist/schema.d.ts.map +1 -0
  15. package/dist/schema.js +59 -0
  16. package/dist/services/notification-service.d.ts +52 -0
  17. package/dist/services/notification-service.d.ts.map +1 -0
  18. package/dist/services/notification-service.js +220 -0
  19. package/dist/services/preference-service.d.ts +23 -0
  20. package/dist/services/preference-service.d.ts.map +1 -0
  21. package/dist/services/preference-service.js +69 -0
  22. package/dist/services/print-service.d.ts +32 -0
  23. package/dist/services/print-service.d.ts.map +1 -0
  24. package/dist/services/print-service.js +91 -0
  25. package/dist/tsconfig.tsbuildinfo +1 -0
  26. package/dist/types.d.ts +15 -0
  27. package/dist/types.d.ts.map +1 -0
  28. package/dist/types.js +2 -0
  29. package/package.json +37 -0
  30. package/src/adapters/console.ts +52 -0
  31. package/src/adapters/types.ts +56 -0
  32. package/src/index.ts +53 -0
  33. package/src/routes/notifications.ts +199 -0
  34. package/src/schema.ts +67 -0
  35. package/src/services/notification-service.ts +270 -0
  36. package/src/services/preference-service.ts +92 -0
  37. package/src/services/print-service.ts +99 -0
  38. package/src/types.ts +16 -0
@@ -0,0 +1,624 @@
1
+ export declare const notificationTemplates: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "notification_templates";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "notification_templates";
8
+ dataType: "string";
9
+ columnType: "PgUUID";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: true;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: undefined;
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ organizationId: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "organization_id";
24
+ tableName: "notification_templates";
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
+ event: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "event";
41
+ tableName: "notification_templates";
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
+ channel: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "channel";
58
+ tableName: "notification_templates";
59
+ dataType: "string";
60
+ columnType: "PgText";
61
+ data: "email" | "sms" | "push" | "print";
62
+ driverParam: string;
63
+ notNull: true;
64
+ hasDefault: false;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: ["email", "sms", "push", "print"];
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ subject: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "subject";
75
+ tableName: "notification_templates";
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
+ bodyTemplate: import("drizzle-orm/pg-core").PgColumn<{
91
+ name: "body_template";
92
+ tableName: "notification_templates";
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
+ isActive: import("drizzle-orm/pg-core").PgColumn<{
108
+ name: "is_active";
109
+ tableName: "notification_templates";
110
+ dataType: "boolean";
111
+ columnType: "PgBoolean";
112
+ data: boolean;
113
+ driverParam: boolean;
114
+ notNull: true;
115
+ hasDefault: true;
116
+ isPrimaryKey: false;
117
+ isAutoincrement: false;
118
+ hasRuntimeDefault: false;
119
+ enumValues: undefined;
120
+ baseColumn: never;
121
+ identity: undefined;
122
+ generated: undefined;
123
+ }, {}, {}>;
124
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
125
+ name: "created_at";
126
+ tableName: "notification_templates";
127
+ dataType: "date";
128
+ columnType: "PgTimestamp";
129
+ data: Date;
130
+ driverParam: string;
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
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
142
+ name: "updated_at";
143
+ tableName: "notification_templates";
144
+ dataType: "date";
145
+ columnType: "PgTimestamp";
146
+ data: Date;
147
+ driverParam: string;
148
+ notNull: true;
149
+ hasDefault: true;
150
+ isPrimaryKey: false;
151
+ isAutoincrement: false;
152
+ hasRuntimeDefault: false;
153
+ enumValues: undefined;
154
+ baseColumn: never;
155
+ identity: undefined;
156
+ generated: undefined;
157
+ }, {}, {}>;
158
+ };
159
+ dialect: "pg";
160
+ }>;
161
+ export declare const customerNotificationPrefs: import("drizzle-orm/pg-core").PgTableWithColumns<{
162
+ name: "customer_notification_prefs";
163
+ schema: undefined;
164
+ columns: {
165
+ id: import("drizzle-orm/pg-core").PgColumn<{
166
+ name: "id";
167
+ tableName: "customer_notification_prefs";
168
+ dataType: "string";
169
+ columnType: "PgUUID";
170
+ data: string;
171
+ driverParam: string;
172
+ notNull: true;
173
+ hasDefault: true;
174
+ isPrimaryKey: true;
175
+ isAutoincrement: false;
176
+ hasRuntimeDefault: false;
177
+ enumValues: undefined;
178
+ baseColumn: never;
179
+ identity: undefined;
180
+ generated: undefined;
181
+ }, {}, {}>;
182
+ organizationId: import("drizzle-orm/pg-core").PgColumn<{
183
+ name: "organization_id";
184
+ tableName: "customer_notification_prefs";
185
+ dataType: "string";
186
+ columnType: "PgText";
187
+ data: string;
188
+ driverParam: string;
189
+ notNull: true;
190
+ hasDefault: false;
191
+ isPrimaryKey: false;
192
+ isAutoincrement: false;
193
+ hasRuntimeDefault: false;
194
+ enumValues: [string, ...string[]];
195
+ baseColumn: never;
196
+ identity: undefined;
197
+ generated: undefined;
198
+ }, {}, {}>;
199
+ customerId: import("drizzle-orm/pg-core").PgColumn<{
200
+ name: "customer_id";
201
+ tableName: "customer_notification_prefs";
202
+ dataType: "string";
203
+ columnType: "PgUUID";
204
+ data: string;
205
+ driverParam: string;
206
+ notNull: true;
207
+ hasDefault: false;
208
+ isPrimaryKey: false;
209
+ isAutoincrement: false;
210
+ hasRuntimeDefault: false;
211
+ enumValues: undefined;
212
+ baseColumn: never;
213
+ identity: undefined;
214
+ generated: undefined;
215
+ }, {}, {}>;
216
+ channel: import("drizzle-orm/pg-core").PgColumn<{
217
+ name: "channel";
218
+ tableName: "customer_notification_prefs";
219
+ dataType: "string";
220
+ columnType: "PgText";
221
+ data: "email" | "sms" | "push";
222
+ driverParam: string;
223
+ notNull: true;
224
+ hasDefault: false;
225
+ isPrimaryKey: false;
226
+ isAutoincrement: false;
227
+ hasRuntimeDefault: false;
228
+ enumValues: ["email", "sms", "push"];
229
+ baseColumn: never;
230
+ identity: undefined;
231
+ generated: undefined;
232
+ }, {}, {}>;
233
+ isEnabled: import("drizzle-orm/pg-core").PgColumn<{
234
+ name: "is_enabled";
235
+ tableName: "customer_notification_prefs";
236
+ dataType: "boolean";
237
+ columnType: "PgBoolean";
238
+ data: boolean;
239
+ driverParam: boolean;
240
+ notNull: true;
241
+ hasDefault: true;
242
+ isPrimaryKey: false;
243
+ isAutoincrement: false;
244
+ hasRuntimeDefault: false;
245
+ enumValues: undefined;
246
+ baseColumn: never;
247
+ identity: undefined;
248
+ generated: undefined;
249
+ }, {}, {}>;
250
+ destination: import("drizzle-orm/pg-core").PgColumn<{
251
+ name: "destination";
252
+ tableName: "customer_notification_prefs";
253
+ dataType: "string";
254
+ columnType: "PgText";
255
+ data: string;
256
+ driverParam: string;
257
+ notNull: false;
258
+ hasDefault: false;
259
+ isPrimaryKey: false;
260
+ isAutoincrement: false;
261
+ hasRuntimeDefault: false;
262
+ enumValues: [string, ...string[]];
263
+ baseColumn: never;
264
+ identity: undefined;
265
+ generated: undefined;
266
+ }, {}, {}>;
267
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
268
+ name: "created_at";
269
+ tableName: "customer_notification_prefs";
270
+ dataType: "date";
271
+ columnType: "PgTimestamp";
272
+ data: Date;
273
+ driverParam: string;
274
+ notNull: true;
275
+ hasDefault: true;
276
+ isPrimaryKey: false;
277
+ isAutoincrement: false;
278
+ hasRuntimeDefault: false;
279
+ enumValues: undefined;
280
+ baseColumn: never;
281
+ identity: undefined;
282
+ generated: undefined;
283
+ }, {}, {}>;
284
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
285
+ name: "updated_at";
286
+ tableName: "customer_notification_prefs";
287
+ dataType: "date";
288
+ columnType: "PgTimestamp";
289
+ data: Date;
290
+ driverParam: string;
291
+ notNull: true;
292
+ hasDefault: true;
293
+ isPrimaryKey: false;
294
+ isAutoincrement: false;
295
+ hasRuntimeDefault: false;
296
+ enumValues: undefined;
297
+ baseColumn: never;
298
+ identity: undefined;
299
+ generated: undefined;
300
+ }, {}, {}>;
301
+ };
302
+ dialect: "pg";
303
+ }>;
304
+ export declare const notificationLog: import("drizzle-orm/pg-core").PgTableWithColumns<{
305
+ name: "notification_log";
306
+ schema: undefined;
307
+ columns: {
308
+ id: import("drizzle-orm/pg-core").PgColumn<{
309
+ name: "id";
310
+ tableName: "notification_log";
311
+ dataType: "string";
312
+ columnType: "PgUUID";
313
+ data: string;
314
+ driverParam: string;
315
+ notNull: true;
316
+ hasDefault: true;
317
+ isPrimaryKey: true;
318
+ isAutoincrement: false;
319
+ hasRuntimeDefault: false;
320
+ enumValues: undefined;
321
+ baseColumn: never;
322
+ identity: undefined;
323
+ generated: undefined;
324
+ }, {}, {}>;
325
+ organizationId: import("drizzle-orm/pg-core").PgColumn<{
326
+ name: "organization_id";
327
+ tableName: "notification_log";
328
+ dataType: "string";
329
+ columnType: "PgText";
330
+ data: string;
331
+ driverParam: string;
332
+ notNull: true;
333
+ hasDefault: false;
334
+ isPrimaryKey: false;
335
+ isAutoincrement: false;
336
+ hasRuntimeDefault: false;
337
+ enumValues: [string, ...string[]];
338
+ baseColumn: never;
339
+ identity: undefined;
340
+ generated: undefined;
341
+ }, {}, {}>;
342
+ channel: import("drizzle-orm/pg-core").PgColumn<{
343
+ name: "channel";
344
+ tableName: "notification_log";
345
+ dataType: "string";
346
+ columnType: "PgText";
347
+ data: string;
348
+ driverParam: string;
349
+ notNull: true;
350
+ hasDefault: false;
351
+ isPrimaryKey: false;
352
+ isAutoincrement: false;
353
+ hasRuntimeDefault: false;
354
+ enumValues: [string, ...string[]];
355
+ baseColumn: never;
356
+ identity: undefined;
357
+ generated: undefined;
358
+ }, {}, {}>;
359
+ event: import("drizzle-orm/pg-core").PgColumn<{
360
+ name: "event";
361
+ tableName: "notification_log";
362
+ dataType: "string";
363
+ columnType: "PgText";
364
+ data: string;
365
+ driverParam: string;
366
+ notNull: true;
367
+ hasDefault: false;
368
+ isPrimaryKey: false;
369
+ isAutoincrement: false;
370
+ hasRuntimeDefault: false;
371
+ enumValues: [string, ...string[]];
372
+ baseColumn: never;
373
+ identity: undefined;
374
+ generated: undefined;
375
+ }, {}, {}>;
376
+ recipient: import("drizzle-orm/pg-core").PgColumn<{
377
+ name: "recipient";
378
+ tableName: "notification_log";
379
+ dataType: "string";
380
+ columnType: "PgText";
381
+ data: string;
382
+ driverParam: string;
383
+ notNull: true;
384
+ hasDefault: false;
385
+ isPrimaryKey: false;
386
+ isAutoincrement: false;
387
+ hasRuntimeDefault: false;
388
+ enumValues: [string, ...string[]];
389
+ baseColumn: never;
390
+ identity: undefined;
391
+ generated: undefined;
392
+ }, {}, {}>;
393
+ status: import("drizzle-orm/pg-core").PgColumn<{
394
+ name: "status";
395
+ tableName: "notification_log";
396
+ dataType: "string";
397
+ columnType: "PgText";
398
+ data: "queued" | "sent" | "delivered" | "failed";
399
+ driverParam: string;
400
+ notNull: true;
401
+ hasDefault: true;
402
+ isPrimaryKey: false;
403
+ isAutoincrement: false;
404
+ hasRuntimeDefault: false;
405
+ enumValues: ["queued", "sent", "delivered", "failed"];
406
+ baseColumn: never;
407
+ identity: undefined;
408
+ generated: undefined;
409
+ }, {}, {}>;
410
+ error: import("drizzle-orm/pg-core").PgColumn<{
411
+ name: "error";
412
+ tableName: "notification_log";
413
+ dataType: "string";
414
+ columnType: "PgText";
415
+ data: string;
416
+ driverParam: string;
417
+ notNull: false;
418
+ hasDefault: false;
419
+ isPrimaryKey: false;
420
+ isAutoincrement: false;
421
+ hasRuntimeDefault: false;
422
+ enumValues: [string, ...string[]];
423
+ baseColumn: never;
424
+ identity: undefined;
425
+ generated: undefined;
426
+ }, {}, {}>;
427
+ metadata: import("drizzle-orm/pg-core").PgColumn<{
428
+ name: "metadata";
429
+ tableName: "notification_log";
430
+ dataType: "json";
431
+ columnType: "PgJsonb";
432
+ data: unknown;
433
+ driverParam: unknown;
434
+ notNull: true;
435
+ hasDefault: true;
436
+ isPrimaryKey: false;
437
+ isAutoincrement: false;
438
+ hasRuntimeDefault: false;
439
+ enumValues: undefined;
440
+ baseColumn: never;
441
+ identity: undefined;
442
+ generated: undefined;
443
+ }, {}, {}>;
444
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
445
+ name: "created_at";
446
+ tableName: "notification_log";
447
+ dataType: "date";
448
+ columnType: "PgTimestamp";
449
+ data: Date;
450
+ driverParam: string;
451
+ notNull: true;
452
+ hasDefault: true;
453
+ isPrimaryKey: false;
454
+ isAutoincrement: false;
455
+ hasRuntimeDefault: false;
456
+ enumValues: undefined;
457
+ baseColumn: never;
458
+ identity: undefined;
459
+ generated: undefined;
460
+ }, {}, {}>;
461
+ };
462
+ dialect: "pg";
463
+ }>;
464
+ export declare const printJobs: import("drizzle-orm/pg-core").PgTableWithColumns<{
465
+ name: "print_jobs";
466
+ schema: undefined;
467
+ columns: {
468
+ id: import("drizzle-orm/pg-core").PgColumn<{
469
+ name: "id";
470
+ tableName: "print_jobs";
471
+ dataType: "string";
472
+ columnType: "PgUUID";
473
+ data: string;
474
+ driverParam: string;
475
+ notNull: true;
476
+ hasDefault: true;
477
+ isPrimaryKey: true;
478
+ isAutoincrement: false;
479
+ hasRuntimeDefault: false;
480
+ enumValues: undefined;
481
+ baseColumn: never;
482
+ identity: undefined;
483
+ generated: undefined;
484
+ }, {}, {}>;
485
+ organizationId: import("drizzle-orm/pg-core").PgColumn<{
486
+ name: "organization_id";
487
+ tableName: "print_jobs";
488
+ dataType: "string";
489
+ columnType: "PgText";
490
+ data: string;
491
+ driverParam: string;
492
+ notNull: true;
493
+ hasDefault: false;
494
+ isPrimaryKey: false;
495
+ isAutoincrement: false;
496
+ hasRuntimeDefault: false;
497
+ enumValues: [string, ...string[]];
498
+ baseColumn: never;
499
+ identity: undefined;
500
+ generated: undefined;
501
+ }, {}, {}>;
502
+ type: import("drizzle-orm/pg-core").PgColumn<{
503
+ name: "type";
504
+ tableName: "print_jobs";
505
+ dataType: "string";
506
+ columnType: "PgText";
507
+ data: "receipt" | "label" | "sticker" | "kot";
508
+ driverParam: string;
509
+ notNull: true;
510
+ hasDefault: false;
511
+ isPrimaryKey: false;
512
+ isAutoincrement: false;
513
+ hasRuntimeDefault: false;
514
+ enumValues: ["receipt", "label", "sticker", "kot"];
515
+ baseColumn: never;
516
+ identity: undefined;
517
+ generated: undefined;
518
+ }, {}, {}>;
519
+ printerId: import("drizzle-orm/pg-core").PgColumn<{
520
+ name: "printer_id";
521
+ tableName: "print_jobs";
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
+ content: import("drizzle-orm/pg-core").PgColumn<{
537
+ name: "content";
538
+ tableName: "print_jobs";
539
+ dataType: "json";
540
+ columnType: "PgJsonb";
541
+ data: unknown;
542
+ driverParam: unknown;
543
+ notNull: true;
544
+ hasDefault: true;
545
+ isPrimaryKey: false;
546
+ isAutoincrement: false;
547
+ hasRuntimeDefault: false;
548
+ enumValues: undefined;
549
+ baseColumn: never;
550
+ identity: undefined;
551
+ generated: undefined;
552
+ }, {}, {}>;
553
+ status: import("drizzle-orm/pg-core").PgColumn<{
554
+ name: "status";
555
+ tableName: "print_jobs";
556
+ dataType: "string";
557
+ columnType: "PgText";
558
+ data: "queued" | "failed" | "printing" | "printed";
559
+ driverParam: string;
560
+ notNull: true;
561
+ hasDefault: true;
562
+ isPrimaryKey: false;
563
+ isAutoincrement: false;
564
+ hasRuntimeDefault: false;
565
+ enumValues: ["queued", "printing", "printed", "failed"];
566
+ baseColumn: never;
567
+ identity: undefined;
568
+ generated: undefined;
569
+ }, {}, {}>;
570
+ error: import("drizzle-orm/pg-core").PgColumn<{
571
+ name: "error";
572
+ tableName: "print_jobs";
573
+ dataType: "string";
574
+ columnType: "PgText";
575
+ data: string;
576
+ driverParam: string;
577
+ notNull: false;
578
+ hasDefault: false;
579
+ isPrimaryKey: false;
580
+ isAutoincrement: false;
581
+ hasRuntimeDefault: false;
582
+ enumValues: [string, ...string[]];
583
+ baseColumn: never;
584
+ identity: undefined;
585
+ generated: undefined;
586
+ }, {}, {}>;
587
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
588
+ name: "created_at";
589
+ tableName: "print_jobs";
590
+ dataType: "date";
591
+ columnType: "PgTimestamp";
592
+ data: Date;
593
+ driverParam: string;
594
+ notNull: true;
595
+ hasDefault: true;
596
+ isPrimaryKey: false;
597
+ isAutoincrement: false;
598
+ hasRuntimeDefault: false;
599
+ enumValues: undefined;
600
+ baseColumn: never;
601
+ identity: undefined;
602
+ generated: undefined;
603
+ }, {}, {}>;
604
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
605
+ name: "updated_at";
606
+ tableName: "print_jobs";
607
+ dataType: "date";
608
+ columnType: "PgTimestamp";
609
+ data: Date;
610
+ driverParam: string;
611
+ notNull: true;
612
+ hasDefault: true;
613
+ isPrimaryKey: false;
614
+ isAutoincrement: false;
615
+ hasRuntimeDefault: false;
616
+ enumValues: undefined;
617
+ baseColumn: never;
618
+ identity: undefined;
619
+ generated: undefined;
620
+ }, {}, {}>;
621
+ };
622
+ dialect: "pg";
623
+ }>;
624
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe/B,CAAC;AAEJ,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcnC,CAAC;AAEJ,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAezB,CAAC;AAEJ,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcnB,CAAC"}
package/dist/schema.js ADDED
@@ -0,0 +1,59 @@
1
+ import { pgTable, uuid, text, boolean, timestamp, index, uniqueIndex, jsonb } from "drizzle-orm/pg-core";
2
+ export const notificationTemplates = pgTable("notification_templates", {
3
+ id: uuid("id").defaultRandom().primaryKey(),
4
+ organizationId: text("organization_id").notNull(),
5
+ event: text("event").notNull(),
6
+ channel: text("channel", { enum: ["email", "sms", "push", "print"] }).notNull(),
7
+ subject: text("subject"),
8
+ bodyTemplate: text("body_template").notNull(),
9
+ isActive: boolean("is_active").notNull().default(true),
10
+ createdAt: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(),
11
+ updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow().notNull(),
12
+ }, (table) => ({
13
+ orgIdx: index("idx_notification_templates_org").on(table.organizationId),
14
+ orgEventChannelUnique: uniqueIndex("notification_templates_org_event_channel_unique").on(table.organizationId, table.event, table.channel),
15
+ }));
16
+ export const customerNotificationPrefs = pgTable("customer_notification_prefs", {
17
+ id: uuid("id").defaultRandom().primaryKey(),
18
+ organizationId: text("organization_id").notNull(),
19
+ customerId: uuid("customer_id").notNull(),
20
+ channel: text("channel", { enum: ["email", "sms", "push"] }).notNull(),
21
+ isEnabled: boolean("is_enabled").notNull().default(true),
22
+ destination: text("destination"),
23
+ createdAt: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(),
24
+ updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow().notNull(),
25
+ }, (table) => ({
26
+ orgIdx: index("idx_customer_notification_prefs_org").on(table.organizationId),
27
+ orgCustomerChannelUnique: uniqueIndex("customer_notification_prefs_org_cust_channel_unique").on(table.organizationId, table.customerId, table.channel),
28
+ }));
29
+ export const notificationLog = pgTable("notification_log", {
30
+ id: uuid("id").defaultRandom().primaryKey(),
31
+ organizationId: text("organization_id").notNull(),
32
+ channel: text("channel").notNull(),
33
+ event: text("event").notNull(),
34
+ recipient: text("recipient").notNull(),
35
+ status: text("status", { enum: ["queued", "sent", "delivered", "failed"] }).notNull().default("queued"),
36
+ error: text("error"),
37
+ metadata: jsonb("metadata").notNull().default({}),
38
+ createdAt: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(),
39
+ }, (table) => ({
40
+ orgIdx: index("idx_notification_log_org").on(table.organizationId),
41
+ channelIdx: index("idx_notification_log_channel").on(table.channel),
42
+ eventIdx: index("idx_notification_log_event").on(table.event),
43
+ statusIdx: index("idx_notification_log_status").on(table.status),
44
+ }));
45
+ export const printJobs = pgTable("print_jobs", {
46
+ id: uuid("id").defaultRandom().primaryKey(),
47
+ organizationId: text("organization_id").notNull(),
48
+ type: text("type", { enum: ["receipt", "label", "sticker", "kot"] }).notNull(),
49
+ printerId: text("printer_id").notNull(),
50
+ content: jsonb("content").notNull().default({}),
51
+ status: text("status", { enum: ["queued", "printing", "printed", "failed"] }).notNull().default("queued"),
52
+ error: text("error"),
53
+ createdAt: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(),
54
+ updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow().notNull(),
55
+ }, (table) => ({
56
+ orgIdx: index("idx_print_jobs_org").on(table.organizationId),
57
+ statusIdx: index("idx_print_jobs_status").on(table.status),
58
+ printerIdx: index("idx_print_jobs_printer").on(table.printerId),
59
+ }));