cmp-aws-database 2.1.2-dev.7 → 2.1.2-dev.70

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 (66) hide show
  1. package/dist/config/table-names.d.ts +14 -0
  2. package/dist/config/table-names.js +15 -1
  3. package/dist/customer-user/accompaniments/accompaniments-model.d.ts +1 -0
  4. package/dist/customer-user/accompaniments/accompaniments-model.js +5 -1
  5. package/dist/customer-user/add-ons/add-ons-model.d.ts +3 -0
  6. package/dist/customer-user/add-ons/add-ons-model.js +13 -1
  7. package/dist/customer-user/browse-history/browse-history-dao.d.ts +122 -0
  8. package/dist/customer-user/browse-history/browse-history-dao.js +173 -0
  9. package/dist/customer-user/browse-history/browse-history-model.d.ts +31 -0
  10. package/dist/customer-user/browse-history/browse-history-model.js +118 -0
  11. package/dist/customer-user/cart/cart-categories-model.d.ts +6 -2
  12. package/dist/customer-user/cart/cart-categories-model.js +15 -3
  13. package/dist/customer-user/cart/cart-model.d.ts +14 -0
  14. package/dist/customer-user/cart/cart-model.js +48 -2
  15. package/dist/customer-user/category/category-dao.d.ts +29 -0
  16. package/dist/customer-user/category/category-dao.js +52 -1
  17. package/dist/customer-user/category/category-model.d.ts +1 -0
  18. package/dist/customer-user/category/category-model.js +5 -1
  19. package/dist/customer-user/cutlery/cutlery-model.d.ts +3 -0
  20. package/dist/customer-user/cutlery/cutlery-model.js +13 -1
  21. package/dist/customer-user/default-platter/default-platters-model.d.ts +2 -0
  22. package/dist/customer-user/default-platter/default-platters-model.js +9 -1
  23. package/dist/customer-user/default-platter/default_platters_items.d.ts +1 -0
  24. package/dist/customer-user/default-platter/default_platters_items.js +5 -1
  25. package/dist/customer-user/elphie/elphie-errors.d.ts +15 -0
  26. package/dist/customer-user/elphie/elphie-errors.js +31 -0
  27. package/dist/customer-user/elphie/elphie-message-dao.d.ts +51 -0
  28. package/dist/customer-user/elphie/elphie-message-dao.js +160 -0
  29. package/dist/customer-user/elphie/elphie-message-model.d.ts +25 -0
  30. package/dist/customer-user/elphie/elphie-message-model.js +78 -0
  31. package/dist/customer-user/elphie/elphie-session-dao.d.ts +46 -0
  32. package/dist/customer-user/elphie/elphie-session-dao.js +134 -0
  33. package/dist/customer-user/elphie/elphie-session-model.d.ts +26 -0
  34. package/dist/customer-user/elphie/elphie-session-model.js +55 -0
  35. package/dist/customer-user/fmpRequestCallback/fmp-request-callback-model.d.ts +1 -0
  36. package/dist/customer-user/fmpRequestCallback/fmp-request-callback-model.js +5 -1
  37. package/dist/customer-user/items/items-model.d.ts +2 -0
  38. package/dist/customer-user/items/items-model.js +9 -1
  39. package/dist/customer-user/items-bundle/items-bundle-dao.d.ts +72 -0
  40. package/dist/customer-user/items-bundle/items-bundle-dao.js +117 -0
  41. package/dist/customer-user/items-bundle/items-bundle-model.d.ts +23 -0
  42. package/dist/customer-user/items-bundle/items-bundle-model.js +62 -0
  43. package/dist/customer-user/lsq-priority-updation/lsq-priority-updation-dao.d.ts +140 -0
  44. package/dist/customer-user/lsq-priority-updation/lsq-priority-updation-dao.js +253 -0
  45. package/dist/customer-user/lsq-priority-updation/lsq-priority-updation-model.d.ts +63 -0
  46. package/dist/customer-user/lsq-priority-updation/lsq-priority-updation-model.js +135 -0
  47. package/dist/customer-user/order-module/order/order-model.d.ts +1 -0
  48. package/dist/customer-user/order-module/order/order-model.js +5 -1
  49. package/dist/customer-user/order-module/plate-order/plate-order-model.d.ts +20 -0
  50. package/dist/customer-user/order-module/plate-order/plate-order-model.js +69 -2
  51. package/dist/customer-user/order-module/tracking/tracking-model.d.ts +9 -0
  52. package/dist/customer-user/order-module/tracking/tracking-model.js +33 -2
  53. package/dist/customer-user/replace-items/replace-items-model.d.ts +1 -0
  54. package/dist/customer-user/replace-items/replace-items-model.js +5 -1
  55. package/dist/customer-user/resume-journey/resume-journey-model.d.ts +11 -0
  56. package/dist/customer-user/resume-journey/resume-journey-model.js +41 -2
  57. package/dist/customer-user/testing-session/testing-session-dao.d.ts +86 -0
  58. package/dist/customer-user/testing-session/testing-session-dao.js +149 -0
  59. package/dist/customer-user/testing-session/testing-session-model.d.ts +30 -0
  60. package/dist/customer-user/testing-session/testing-session-model.js +104 -0
  61. package/dist/patner-third-party/third-party-api-key/third-party-api-key-dao.d.ts +114 -0
  62. package/dist/patner-third-party/third-party-api-key/third-party-api-key-dao.js +225 -0
  63. package/dist/patner-third-party/third-party-api-key/third-party-api-key-model.d.ts +21 -0
  64. package/dist/patner-third-party/third-party-api-key/third-party-api-key-model.js +70 -0
  65. package/index.js +13 -1
  66. package/package.json +1 -1
@@ -0,0 +1,26 @@
1
+ import { Item } from "dynamoose/dist/Item";
2
+ /**
3
+ * FMP context shape is still evolving — tighten once the product contract is fixed.
4
+ * Currently stored as an open object (no saveUnknown at schema root).
5
+ */
6
+ export type ElphieFmpContext = Record<string, unknown>;
7
+ export interface ElphieSession extends Item {
8
+ elphieSessionId: string;
9
+ user_id: string;
10
+ conversation_id: string;
11
+ title: string;
12
+ fmp_context?: ElphieFmpContext;
13
+ created_at: string;
14
+ updated_at: string;
15
+ }
16
+ /**
17
+ * Input for creating a session. `elphieSessionId` is set in the service/DAO layer
18
+ * via `crypto.randomUUID()` — never auto-generated in the schema.
19
+ */
20
+ export type CreateElphieSessionInput = {
21
+ user_id: string;
22
+ conversation_id: string;
23
+ title: string;
24
+ fmp_context?: ElphieFmpContext;
25
+ };
26
+ export declare const ElphieSessionModel: import("dynamoose/dist/General").ModelType<ElphieSession>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ElphieSessionModel = void 0;
7
+ const dynamoose_1 = __importDefault(require("dynamoose"));
8
+ const table_names_1 = require("../../config/table-names");
9
+ /**
10
+ * Dynamoose schema for `elphie_sessions`.
11
+ *
12
+ * HASH: `elphieSessionId` (app-generated UUID — no schema default).
13
+ * GSI `user_id-index`: HASH `user_id` only (`created_at` / `updated_at` are plain attributes).
14
+ *
15
+ * `create: false` — tables + GSIs are provisioned via CDK, not auto-created on boot.
16
+ */
17
+ const elphieSessionSchema = new dynamoose_1.default.Schema({
18
+ elphieSessionId: {
19
+ type: String,
20
+ hashKey: true,
21
+ required: true
22
+ },
23
+ user_id: {
24
+ type: String,
25
+ required: true,
26
+ index: {
27
+ name: "user_id-index",
28
+ type: "global"
29
+ }
30
+ },
31
+ conversation_id: {
32
+ type: String,
33
+ required: true
34
+ },
35
+ title: {
36
+ type: String,
37
+ required: true
38
+ },
39
+ fmp_context: {
40
+ type: Object
41
+ },
42
+ created_at: {
43
+ type: String,
44
+ },
45
+ updated_at: {
46
+ type: String,
47
+ }
48
+ }, {
49
+ // Allow nested keys under fmp_context until the shape is finalized.
50
+ // Root remains closed — not `saveUnknown: true`.
51
+ saveUnknown: ["fmp_context.**"],
52
+ timestamps: true
53
+ });
54
+ exports.ElphieSessionModel = dynamoose_1.default.model(table_names_1.TABLE_NAMES.ELPHIE_SESSIONS, elphieSessionSchema, { create: false, waitForActive: false });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxwaGllLXNlc3Npb24tbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9lbHBoaWUvZWxwaGllLXNlc3Npb24tbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBQWtDO0FBRWxDLDBEQUF1RDtBQTZCdkQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxtQkFBUyxDQUFDLE1BQU0sQ0FDNUM7SUFDSSxlQUFlLEVBQUU7UUFDYixJQUFJLEVBQUUsTUFBTTtRQUNaLE9BQU8sRUFBRSxJQUFJO1FBQ2IsUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRCxPQUFPLEVBQUU7UUFDTCxJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxJQUFJO1FBQ2QsS0FBSyxFQUFFO1lBQ0gsSUFBSSxFQUFFLGVBQWU7WUFDckIsSUFBSSxFQUFFLFFBQVE7U0FDakI7S0FDSjtJQUNELGVBQWUsRUFBRTtRQUNiLElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRCxLQUFLLEVBQUU7UUFDSCxJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0lBQ0QsV0FBVyxFQUFFO1FBQ1QsSUFBSSxFQUFFLE1BQU07S0FDZjtJQUNELFVBQVUsRUFBRTtRQUNSLElBQUksRUFBRSxNQUFNO0tBQ2Y7SUFDRCxVQUFVLEVBQUU7UUFDUixJQUFJLEVBQUUsTUFBTTtLQUNmO0NBQ0osRUFDRDtJQUNJLG9FQUFvRTtJQUNwRSxpREFBaUQ7SUFDakQsV0FBVyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsVUFBVSxFQUFFLElBQUk7Q0FDbkIsQ0FDSixDQUFDO0FBRVcsUUFBQSxrQkFBa0IsR0FBRyxtQkFBUyxDQUFDLEtBQUssQ0FDN0MseUJBQVcsQ0FBQyxlQUFlLEVBQzNCLG1CQUFtQixFQUNuQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGR5bmFtb29zZSBmcm9tIFwiZHluYW1vb3NlXCI7XG5pbXBvcnQgeyBJdGVtIH0gZnJvbSBcImR5bmFtb29zZS9kaXN0L0l0ZW1cIjtcbmltcG9ydCB7IFRBQkxFX05BTUVTIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy90YWJsZS1uYW1lc1wiO1xuXG4vKipcbiAqIEZNUCBjb250ZXh0IHNoYXBlIGlzIHN0aWxsIGV2b2x2aW5nIOKAlCB0aWdodGVuIG9uY2UgdGhlIHByb2R1Y3QgY29udHJhY3QgaXMgZml4ZWQuXG4gKiBDdXJyZW50bHkgc3RvcmVkIGFzIGFuIG9wZW4gb2JqZWN0IChubyBzYXZlVW5rbm93biBhdCBzY2hlbWEgcm9vdCkuXG4gKi9cbmV4cG9ydCB0eXBlIEVscGhpZUZtcENvbnRleHQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IGludGVyZmFjZSBFbHBoaWVTZXNzaW9uIGV4dGVuZHMgSXRlbSB7XG4gICAgZWxwaGllU2Vzc2lvbklkOiBzdHJpbmc7XG4gICAgdXNlcl9pZDogc3RyaW5nO1xuICAgIGNvbnZlcnNhdGlvbl9pZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZm1wX2NvbnRleHQ/OiBFbHBoaWVGbXBDb250ZXh0O1xuICAgIGNyZWF0ZWRfYXQ6IHN0cmluZztcbiAgICB1cGRhdGVkX2F0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW5wdXQgZm9yIGNyZWF0aW5nIGEgc2Vzc2lvbi4gYGVscGhpZVNlc3Npb25JZGAgaXMgc2V0IGluIHRoZSBzZXJ2aWNlL0RBTyBsYXllclxuICogdmlhIGBjcnlwdG8ucmFuZG9tVVVJRCgpYCDigJQgbmV2ZXIgYXV0by1nZW5lcmF0ZWQgaW4gdGhlIHNjaGVtYS5cbiAqL1xuZXhwb3J0IHR5cGUgQ3JlYXRlRWxwaGllU2Vzc2lvbklucHV0ID0ge1xuICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICBjb252ZXJzYXRpb25faWQ6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGZtcF9jb250ZXh0PzogRWxwaGllRm1wQ29udGV4dDtcbn07XG5cbi8qKlxuICogRHluYW1vb3NlIHNjaGVtYSBmb3IgYGVscGhpZV9zZXNzaW9uc2AuXG4gKlxuICogSEFTSDogYGVscGhpZVNlc3Npb25JZGAgKGFwcC1nZW5lcmF0ZWQgVVVJRCDigJQgbm8gc2NoZW1hIGRlZmF1bHQpLlxuICogR1NJIGB1c2VyX2lkLWluZGV4YDogSEFTSCBgdXNlcl9pZGAgb25seSAoYGNyZWF0ZWRfYXRgIC8gYHVwZGF0ZWRfYXRgIGFyZSBwbGFpbiBhdHRyaWJ1dGVzKS5cbiAqXG4gKiBgY3JlYXRlOiBmYWxzZWAg4oCUIHRhYmxlcyArIEdTSXMgYXJlIHByb3Zpc2lvbmVkIHZpYSBDREssIG5vdCBhdXRvLWNyZWF0ZWQgb24gYm9vdC5cbiAqL1xuY29uc3QgZWxwaGllU2Vzc2lvblNjaGVtYSA9IG5ldyBkeW5hbW9vc2UuU2NoZW1hKFxuICAgIHtcbiAgICAgICAgZWxwaGllU2Vzc2lvbklkOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBoYXNoS2V5OiB0cnVlLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgdXNlcl9pZDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwidXNlcl9pZC1pbmRleFwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZ2xvYmFsXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29udmVyc2F0aW9uX2lkOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgZm1wX2NvbnRleHQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdFxuICAgICAgICB9LFxuICAgICAgICBjcmVhdGVkX2F0OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZWRfYXQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgICAvLyBBbGxvdyBuZXN0ZWQga2V5cyB1bmRlciBmbXBfY29udGV4dCB1bnRpbCB0aGUgc2hhcGUgaXMgZmluYWxpemVkLlxuICAgICAgICAvLyBSb290IHJlbWFpbnMgY2xvc2VkIOKAlCBub3QgYHNhdmVVbmtub3duOiB0cnVlYC5cbiAgICAgICAgc2F2ZVVua25vd246IFtcImZtcF9jb250ZXh0LioqXCJdLFxuICAgICAgICB0aW1lc3RhbXBzOiB0cnVlXG4gICAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IEVscGhpZVNlc3Npb25Nb2RlbCA9IGR5bmFtb29zZS5tb2RlbDxFbHBoaWVTZXNzaW9uPihcbiAgICBUQUJMRV9OQU1FUy5FTFBISUVfU0VTU0lPTlMsXG4gICAgZWxwaGllU2Vzc2lvblNjaGVtYSxcbiAgICB7IGNyZWF0ZTogZmFsc2UsIHdhaXRGb3JBY3RpdmU6IGZhbHNlIH1cbik7XG4iXX0=
@@ -9,6 +9,7 @@ export declare class FmpRequestCallbackModel extends BaseModel {
9
9
  correspondence: string;
10
10
  triggerType: string;
11
11
  plateId?: string;
12
+ sourcePlatform?: string;
12
13
  }
13
14
  type SelectionsMeta = {
14
15
  title: string;
@@ -51,7 +51,11 @@ __decorate([
51
51
  (0, annotations_1.attribute)(),
52
52
  __metadata("design:type", String)
53
53
  ], FmpRequestCallbackModel.prototype, "plateId", void 0);
54
+ __decorate([
55
+ (0, annotations_1.attribute)(),
56
+ __metadata("design:type", String)
57
+ ], FmpRequestCallbackModel.prototype, "sourcePlatform", void 0);
54
58
  exports.FmpRequestCallbackModel = FmpRequestCallbackModel = __decorate([
55
59
  (0, annotations_1.table)("FmpRequestCallbackTable")
56
60
  ], FmpRequestCallbackModel);
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm1wLXJlcXVlc3QtY2FsbGJhY2stbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9mbXBSZXF1ZXN0Q2FsbGJhY2svZm1wLXJlcXVlc3QtY2FsbGJhY2stbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsdURBQXlGO0FBQ3pGLGlEQUE2QztBQUd0QyxJQUFNLHVCQUF1QixHQUE3QixNQUFNLHVCQUF3QixTQUFRLHNCQUFTO0NBbUJyRCxDQUFBO0FBbkJZLDBEQUF1QjtBQUVoQztJQURDLElBQUEsa0NBQW9CLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7O21EQUM5QjtBQUVYO0lBREMsSUFBQSx1QkFBUyxFQUFDLEVBQUUsc0JBQXNCLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDOzs0REFDbEQ7QUFFcEI7SUFEQyxJQUFBLHVCQUFTLEVBQUMsRUFBRSxzQkFBc0IsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDOzt1REFDbEQ7QUFFZjtJQURDLElBQUEsdUJBQVMsR0FBRTs7MkRBQ2tCO0FBRTlCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt3REFDSztBQUVqQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7NkRBQ1M7QUFFckI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OytEQUNXO0FBRXZCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs0REFDUTtBQUVwQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7d0RBQ0s7a0NBbEJSLHVCQUF1QjtJQURuQyxJQUFBLG1CQUFLLEVBQUMseUJBQXlCLENBQUM7R0FDcEIsdUJBQXVCLENBbUJuQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgYXR0cmlidXRlLCBhdXRvR2VuZXJhdGVkSGFzaEtleSwgcmFuZ2VLZXksIHRhYmxlIH0gZnJvbSBcIkBub3ZhLW9kbS9hbm5vdGF0aW9uc1wiO1xuaW1wb3J0IHsgQmFzZU1vZGVsIH0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWxcIjtcblxuQHRhYmxlKFwiRm1wUmVxdWVzdENhbGxiYWNrVGFibGVcIilcbmV4cG9ydCBjbGFzcyBGbXBSZXF1ZXN0Q2FsbGJhY2tNb2RlbCBleHRlbmRzIEJhc2VNb2RlbCB7XG4gICAgQGF1dG9HZW5lcmF0ZWRIYXNoS2V5KHsgdHlwZTogXCJTdHJpbmdcIiB9KVxuICAgIGlkOiBzdHJpbmc7XG4gICAgQGF0dHJpYnV0ZSh7IGluZGV4S2V5Q29uZmlndXJhdGlvbnM6IHsgXCJwaG9uZU51bWJlckluZGV4XCI6IFwiSEFTSFwiIH0gfSlcbiAgICBwaG9uZU51bWJlcjogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoeyBpbmRleEtleUNvbmZpZ3VyYXRpb25zOiB7IFwidXNlcklkSW5kZXhcIjogXCJIQVNIXCIgfSB9KVxuICAgIHVzZXJJZDogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHNlbGVjdGlvbnM/OiBTZWxlY3Rpb25zTWV0YVtdO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcmV3YXJkU3RhdHVzOiBzdHJpbmc7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY29ycmVzcG9uZGVuY2U6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKClcbiAgICB0cmlnZ2VyVHlwZTogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHBsYXRlSWQ/OiBzdHJpbmc7XG59XG5cbnR5cGUgU2VsZWN0aW9uc01ldGEgPSB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBvcHRpb25zOiBzdHJpbmdbXTtcbn0iXX0=
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm1wLXJlcXVlc3QtY2FsbGJhY2stbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9mbXBSZXF1ZXN0Q2FsbGJhY2svZm1wLXJlcXVlc3QtY2FsbGJhY2stbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsdURBQXlGO0FBQ3pGLGlEQUE2QztBQUd0QyxJQUFNLHVCQUF1QixHQUE3QixNQUFNLHVCQUF3QixTQUFRLHNCQUFTO0NBcUJyRCxDQUFBO0FBckJZLDBEQUF1QjtBQUVoQztJQURDLElBQUEsa0NBQW9CLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7O21EQUM5QjtBQUVYO0lBREMsSUFBQSx1QkFBUyxFQUFDLEVBQUUsc0JBQXNCLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDOzs0REFDbEQ7QUFFcEI7SUFEQyxJQUFBLHVCQUFTLEVBQUMsRUFBRSxzQkFBc0IsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDOzt1REFDbEQ7QUFFZjtJQURDLElBQUEsdUJBQVMsR0FBRTs7MkRBQ2tCO0FBRTlCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt3REFDSztBQUVqQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7NkRBQ1M7QUFFckI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OytEQUNXO0FBRXZCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs0REFDUTtBQUVwQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7d0RBQ0s7QUFFakI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OytEQUNZO2tDQXBCZix1QkFBdUI7SUFEbkMsSUFBQSxtQkFBSyxFQUFDLHlCQUF5QixDQUFDO0dBQ3BCLHVCQUF1QixDQXFCbkMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IGF0dHJpYnV0ZSwgYXV0b0dlbmVyYXRlZEhhc2hLZXksIHJhbmdlS2V5LCB0YWJsZSB9IGZyb20gXCJAbm92YS1vZG0vYW5ub3RhdGlvbnNcIjtcbmltcG9ydCB7IEJhc2VNb2RlbCB9IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsXCI7XG5cbkB0YWJsZShcIkZtcFJlcXVlc3RDYWxsYmFja1RhYmxlXCIpXG5leHBvcnQgY2xhc3MgRm1wUmVxdWVzdENhbGxiYWNrTW9kZWwgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICAgIEBhdXRvR2VuZXJhdGVkSGFzaEtleSh7IHR5cGU6IFwiU3RyaW5nXCIgfSlcbiAgICBpZDogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoeyBpbmRleEtleUNvbmZpZ3VyYXRpb25zOiB7IFwicGhvbmVOdW1iZXJJbmRleFwiOiBcIkhBU0hcIiB9IH0pXG4gICAgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKHsgaW5kZXhLZXlDb25maWd1cmF0aW9uczogeyBcInVzZXJJZEluZGV4XCI6IFwiSEFTSFwiIH0gfSlcbiAgICB1c2VySWQ6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKClcbiAgICBzZWxlY3Rpb25zPzogU2VsZWN0aW9uc01ldGFbXTtcbiAgICBAYXR0cmlidXRlKClcbiAgICBtZXNzYWdlPzogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHJld2FyZFN0YXR1czogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNvcnJlc3BvbmRlbmNlOiBzdHJpbmc7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgdHJpZ2dlclR5cGU6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKClcbiAgICBwbGF0ZUlkPzogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHNvdXJjZVBsYXRmb3JtPzogc3RyaW5nOyAvLyBNV0VCLCBBUFAsIFdFQlNJVEUsIFdIQVRTQVBQXG59XG5cbnR5cGUgU2VsZWN0aW9uc01ldGEgPSB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBvcHRpb25zOiBzdHJpbmdbXTtcbn0iXX0=
@@ -23,4 +23,6 @@ export declare class ItemsModel extends BaseModel {
23
23
  toOpenSearchDocument(): any;
24
24
  liveCounterId: string;
25
25
  liveCounterItemOrder: number;
26
+ itemConversionFactor: number;
27
+ thumbnailImageUrl: string;
26
28
  }
@@ -112,7 +112,15 @@ __decorate([
112
112
  (0, annotations_1.attribute)(),
113
113
  __metadata("design:type", Number)
114
114
  ], ItemsModel.prototype, "liveCounterItemOrder", void 0);
115
+ __decorate([
116
+ (0, annotations_1.attribute)(),
117
+ __metadata("design:type", Number)
118
+ ], ItemsModel.prototype, "itemConversionFactor", void 0);
119
+ __decorate([
120
+ (0, annotations_1.attribute)(),
121
+ __metadata("design:type", String)
122
+ ], ItemsModel.prototype, "thumbnailImageUrl", void 0);
115
123
  exports.ItemsModel = ItemsModel = __decorate([
116
124
  (0, annotations_1.table)("MenuItemsTable")
117
125
  ], ItemsModel);
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9pdGVtcy9pdGVtcy1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx1REFBK0U7QUFDL0UsaURBQTZDO0FBSXRDLElBQU0sVUFBVSxHQUFoQixNQUFNLFVBQVcsU0FBUSxzQkFBUztJQXNEckMsb0JBQW9CO1FBQ2hCLE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FPSixDQUFBO0FBL0RZLGdDQUFVO0FBRW5CO0lBREMsSUFBQSxrQ0FBb0IsRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQzs7MENBQzFCO0FBRWY7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2dEQUNTO0FBSXJCO0lBSEMsSUFBQSx1QkFBUyxFQUFDO1FBQ1Asc0JBQXNCLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUTtLQUMxRSxDQUFDOztrREFDcUI7QUFFdkI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzRDQUNLO0FBRWpCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzttREFDWTtBQUV4QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7aURBQ1U7QUFJdEI7SUFIQyxJQUFBLHVCQUFTLEVBQUM7UUFDUCxzQkFBc0IsRUFBRSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUTtLQUN0RSxDQUFDOzs0Q0FDZTtBQUVqQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7aURBQ1U7QUFFdEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O29EQUNhO0FBRXpCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsrQ0FDUTtBQUVwQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7b0RBQ2E7QUFFekI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O3VEQUNnQjtBQUU1QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7b0RBQ2E7QUFFekI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O29EQUNlO0FBSzNCO0lBSEMsSUFBQSx1QkFBUyxFQUFDO1FBQ1Asc0JBQXNCLEVBQUUsRUFBRSx5QkFBeUIsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUTtLQUNqRixDQUFDOzs4Q0FDaUI7QUFHbkI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzRDQUNPO0FBR25CO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs4Q0FDUztBQUdyQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7MkRBQ3FCO0FBR2pDO0lBREMsSUFBQSx1QkFBUyxHQUFFOztpREFDVztBQUd2QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7a0RBQ2E7QUFPekI7SUFEQyxJQUFBLHVCQUFTLEVBQUMsRUFBQyxzQkFBc0IsRUFBRSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUMsQ0FBQzs7aURBQ2hFO0FBR3RCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt3REFDaUI7cUJBOURwQixVQUFVO0lBRHRCLElBQUEsbUJBQUssRUFBQyxnQkFBZ0IsQ0FBQztHQUNYLFVBQVUsQ0ErRHRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXR0cmlidXRlLCBhdXRvR2VuZXJhdGVkSGFzaEtleSwgdGFibGUgfSBmcm9tIFwiQG5vdmEtb2RtL2Fubm90YXRpb25zXCI7XG5pbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbFwiO1xuXG5cbkB0YWJsZShcIk1lbnVJdGVtc1RhYmxlXCIpXG5leHBvcnQgY2xhc3MgSXRlbXNNb2RlbCBleHRlbmRzIEJhc2VNb2RlbCB7XG4gICAgQGF1dG9HZW5lcmF0ZWRIYXNoS2V5KHsgdHlwZTogJ1N0cmluZycgfSlcbiAgICBpdGVtSWQ6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtQ2F0ZWdvcnk6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKHtcbiAgICAgICAgaW5kZXhLZXlDb25maWd1cmF0aW9uczogeyBcIml0ZW1DYXRlZ29yeUluZGV4XCI6IFwiSEFTSFwiIH0sIHR5cGU6ICdTdHJpbmcnXG4gICAgfSlcbiAgICBpdGVtQ2F0ZWdvcnlJZDogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1OYW1lOiBzdHJpbmc7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbURlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbUltYWdlc1VybDogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoe1xuICAgICAgICBpbmRleEtleUNvbmZpZ3VyYXRpb25zOiB7IFwiaXRlbVR5cGVJbmRleFwiOiBcIkhBU0hcIiB9LCB0eXBlOiAnU3RyaW5nJ1xuICAgIH0pXG4gICAgaXRlbVR5cGU6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtQmFzZVByaWNlOiBudW1iZXI7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbU1pbmltdW1QcmljZTogbnVtYmVyO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1QcmVtaXVtOiBzdHJpbmc7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbUJhc2VRdWFudGl0eTogbnVtYmVyO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1NaW5pbXVtUXVhbnRpdHk6IG51bWJlcjtcbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtUXVhbnRpdHlVbml0OiBzdHJpbmc7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbUxvY2F0aW9uQ2l0eTogc3RyaW5nW107XG5cbiAgICBAYXR0cmlidXRlKHtcbiAgICAgICAgaW5kZXhLZXlDb25maWd1cmF0aW9uczogeyBcIml0ZW1DYXRlZ29yeUFjdGl2ZUluZGV4XCI6IFwiUkFOR0VcIiB9LCB0eXBlOiAnU3RyaW5nJ1xuICAgIH0pXG4gICAgaXRlbUFjdGl2ZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgbWVhbFR5cGU6IHN0cmluZ1tdO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY3Vpc2luZUlkczogc3RyaW5nW107XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBmcmVlQWNjb21wYW5pbWVudHNMaW1pdD86IG51bWJlcjsgLy8gRm9yIGFjY29tcGxpbWVudHNUYWJsZSBWYWx1ZSBDaGVja1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2F0ZWdvcnlGb3JNTD86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzQm9uZWxlc3NJdGVtPzogYm9vbGVhbjsgLy8gTmV3IEFkZGVkIDA4LTExLTIwMjUgVG8gY2hlY2sgaWYgdGhlIGl0ZW0gaXMgYSBib25lIGl0ZW1cblxuICAgIHRvT3BlblNlYXJjaERvY3VtZW50KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB7IC4uLnRoaXMgfTtcbiAgICB9XG5cbiAgICBAYXR0cmlidXRlKHtpbmRleEtleUNvbmZpZ3VyYXRpb25zOiB7IFwibGl2ZUNvdW50ZXJJZEluZGV4XCI6IFwiSEFTSFwiIH0sIHR5cGU6ICdTdHJpbmcnfSlcbiAgICBsaXZlQ291bnRlcklkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBsaXZlQ291bnRlckl0ZW1PcmRlcjogbnVtYmVyO1xufVxuIl19
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9pdGVtcy9pdGVtcy1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx1REFBK0U7QUFDL0UsaURBQTZDO0FBSXRDLElBQU0sVUFBVSxHQUFoQixNQUFNLFVBQVcsU0FBUSxzQkFBUztJQXNEckMsb0JBQW9CO1FBQ2hCLE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FhSixDQUFBO0FBckVZLGdDQUFVO0FBRW5CO0lBREMsSUFBQSxrQ0FBb0IsRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQzs7MENBQzFCO0FBRWY7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2dEQUNTO0FBSXJCO0lBSEMsSUFBQSx1QkFBUyxFQUFDO1FBQ1Asc0JBQXNCLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUTtLQUMxRSxDQUFDOztrREFDcUI7QUFFdkI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzRDQUNLO0FBRWpCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzttREFDWTtBQUV4QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7aURBQ1U7QUFJdEI7SUFIQyxJQUFBLHVCQUFTLEVBQUM7UUFDUCxzQkFBc0IsRUFBRSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUTtLQUN0RSxDQUFDOzs0Q0FDZTtBQUVqQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7aURBQ1U7QUFFdEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O29EQUNhO0FBRXpCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsrQ0FDUTtBQUVwQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7b0RBQ2E7QUFFekI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O3VEQUNnQjtBQUU1QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7b0RBQ2E7QUFFekI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O29EQUNlO0FBSzNCO0lBSEMsSUFBQSx1QkFBUyxFQUFDO1FBQ1Asc0JBQXNCLEVBQUUsRUFBRSx5QkFBeUIsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUTtLQUNqRixDQUFDOzs4Q0FDaUI7QUFHbkI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzRDQUNPO0FBR25CO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs4Q0FDUztBQUdyQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7MkRBQ3FCO0FBR2pDO0lBREMsSUFBQSx1QkFBUyxHQUFFOztpREFDVztBQUd2QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7a0RBQ2E7QUFPekI7SUFEQyxJQUFBLHVCQUFTLEVBQUMsRUFBQyxzQkFBc0IsRUFBRSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUMsQ0FBQzs7aURBQ2hFO0FBR3RCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt3REFDaUI7QUFHN0I7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O3dEQUNpQjtBQUc3QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7cURBQ2M7cUJBcEVqQixVQUFVO0lBRHRCLElBQUEsbUJBQUssRUFBQyxnQkFBZ0IsQ0FBQztHQUNYLFVBQVUsQ0FxRXRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXR0cmlidXRlLCBhdXRvR2VuZXJhdGVkSGFzaEtleSwgdGFibGUgfSBmcm9tIFwiQG5vdmEtb2RtL2Fubm90YXRpb25zXCI7XG5pbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbFwiO1xuXG5cbkB0YWJsZShcIk1lbnVJdGVtc1RhYmxlXCIpXG5leHBvcnQgY2xhc3MgSXRlbXNNb2RlbCBleHRlbmRzIEJhc2VNb2RlbCB7XG4gICAgQGF1dG9HZW5lcmF0ZWRIYXNoS2V5KHsgdHlwZTogJ1N0cmluZycgfSlcbiAgICBpdGVtSWQ6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtQ2F0ZWdvcnk6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKHtcbiAgICAgICAgaW5kZXhLZXlDb25maWd1cmF0aW9uczogeyBcIml0ZW1DYXRlZ29yeUluZGV4XCI6IFwiSEFTSFwiIH0sIHR5cGU6ICdTdHJpbmcnXG4gICAgfSlcbiAgICBpdGVtQ2F0ZWdvcnlJZDogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1OYW1lOiBzdHJpbmc7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbURlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbUltYWdlc1VybDogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoe1xuICAgICAgICBpbmRleEtleUNvbmZpZ3VyYXRpb25zOiB7IFwiaXRlbVR5cGVJbmRleFwiOiBcIkhBU0hcIiB9LCB0eXBlOiAnU3RyaW5nJ1xuICAgIH0pXG4gICAgaXRlbVR5cGU6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtQmFzZVByaWNlOiBudW1iZXI7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbU1pbmltdW1QcmljZTogbnVtYmVyO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1QcmVtaXVtOiBzdHJpbmc7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbUJhc2VRdWFudGl0eTogbnVtYmVyO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1NaW5pbXVtUXVhbnRpdHk6IG51bWJlcjtcbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtUXVhbnRpdHlVbml0OiBzdHJpbmc7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbUxvY2F0aW9uQ2l0eTogc3RyaW5nW107XG5cbiAgICBAYXR0cmlidXRlKHtcbiAgICAgICAgaW5kZXhLZXlDb25maWd1cmF0aW9uczogeyBcIml0ZW1DYXRlZ29yeUFjdGl2ZUluZGV4XCI6IFwiUkFOR0VcIiB9LCB0eXBlOiAnU3RyaW5nJ1xuICAgIH0pXG4gICAgaXRlbUFjdGl2ZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgbWVhbFR5cGU6IHN0cmluZ1tdO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY3Vpc2luZUlkczogc3RyaW5nW107XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBmcmVlQWNjb21wYW5pbWVudHNMaW1pdD86IG51bWJlcjsgLy8gRm9yIGFjY29tcGxpbWVudHNUYWJsZSBWYWx1ZSBDaGVja1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2F0ZWdvcnlGb3JNTD86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzQm9uZWxlc3NJdGVtPzogYm9vbGVhbjsgLy8gTmV3IEFkZGVkIDA4LTExLTIwMjUgVG8gY2hlY2sgaWYgdGhlIGl0ZW0gaXMgYSBib25lIGl0ZW1cblxuICAgIHRvT3BlblNlYXJjaERvY3VtZW50KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB7IC4uLnRoaXMgfTtcbiAgICB9XG5cbiAgICBAYXR0cmlidXRlKHtpbmRleEtleUNvbmZpZ3VyYXRpb25zOiB7IFwibGl2ZUNvdW50ZXJJZEluZGV4XCI6IFwiSEFTSFwiIH0sIHR5cGU6ICdTdHJpbmcnfSlcbiAgICBsaXZlQ291bnRlcklkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBsaXZlQ291bnRlckl0ZW1PcmRlcjogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbUNvbnZlcnNpb25GYWN0b3I6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHRodW1ibmFpbEltYWdlVXJsOiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,72 @@
1
+ import { GenericDynamooseDAO } from "../../base-dynamoose-dao";
2
+ import { AuthContext } from "../../base-dynamoose-model";
3
+ import { CreateItemsBundleInput, ItemBundleUsageType, ItemsBundle } from "./items-bundle-model";
4
+ type ListResult = {
5
+ items: ItemsBundle[];
6
+ nextToken?: string;
7
+ };
8
+ /**
9
+ * DAO for item bundles (add-on / replacement groupings).
10
+ *
11
+ * Table keys: `bundleId` (PK).
12
+ * Lookups:
13
+ * - `usageTypeIndex` → bundles by ADDON / REPLACEMENT
14
+ * - `bundleTypeIndex` → bundles by `bundleType`
15
+ */
16
+ declare class ItemsBundleDao extends GenericDynamooseDAO<ItemsBundle> {
17
+ constructor();
18
+ /**
19
+ * Creates one item-bundle record.
20
+ *
21
+ * Use when: admin defines a new ADDON or REPLACEMENT bundle.
22
+ * - `bundleId` auto-generates if omitted.
23
+ * - `usageType` must be `"ADDON"` or `"REPLACEMENT"`.
24
+ *
25
+ * @example
26
+ * await itemsBundleDao.save({
27
+ * bundleType: "STARTERS",
28
+ * bundleName: "Premium Starters Pack",
29
+ * usageType: "ADDON"
30
+ * });
31
+ */
32
+ save: (item: CreateItemsBundleInput, authContext?: AuthContext) => Promise<ItemsBundle>;
33
+ /**
34
+ * Updates one item-bundle by `bundleId`.
35
+ *
36
+ * Use when: renaming a bundle or changing ADDON ↔ REPLACEMENT usage.
37
+ *
38
+ * @example
39
+ * await itemsBundleDao.update("bundle-uuid", { usageType: "REPLACEMENT" });
40
+ */
41
+ update: (bundleId: string, updates: Partial<ItemsBundle>, authContext?: AuthContext) => Promise<ItemsBundle>;
42
+ /**
43
+ * Fetches one item-bundle by primary key.
44
+ *
45
+ * @example
46
+ * const bundle = await itemsBundleDao.getById("bundle-uuid");
47
+ */
48
+ getById: (bundleId: string) => Promise<ItemsBundle | null>;
49
+ /**
50
+ * Lists bundles by usage type — ADDON or REPLACEMENT (GSI `usageTypeIndex`).
51
+ *
52
+ * Use when: showing only add-on packs or only replacement packs in UI.
53
+ *
54
+ * @example
55
+ * const addons = await itemsBundleDao.listByUsageType("ADDON", 20);
56
+ * const replacements = await itemsBundleDao.listByUsageType("REPLACEMENT", 20);
57
+ */
58
+ listByUsageType: (usageType: ItemBundleUsageType, limit?: number, token?: string) => Promise<ListResult>;
59
+ /**
60
+ * Lists bundles by `bundleType` (GSI `bundleTypeIndex`).
61
+ *
62
+ * @example
63
+ * const starters = await itemsBundleDao.listByBundleType("STARTERS", 20);
64
+ */
65
+ listByBundleType: (bundleType: string, limit?: number, token?: string) => Promise<ListResult>;
66
+ /**
67
+ * Deletes one item-bundle by primary key.
68
+ */
69
+ deleteById: (bundleId: string) => Promise<void>;
70
+ }
71
+ export declare const itemsBundleDao: ItemsBundleDao;
72
+ export {};
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.itemsBundleDao = void 0;
7
+ const dynamoose_1 = __importDefault(require("dynamoose"));
8
+ const base_dynamoose_dao_1 = require("../../base-dynamoose-dao");
9
+ const items_bundle_model_1 = require("./items-bundle-model");
10
+ /**
11
+ * DAO for item bundles (add-on / replacement groupings).
12
+ *
13
+ * Table keys: `bundleId` (PK).
14
+ * Lookups:
15
+ * - `usageTypeIndex` → bundles by ADDON / REPLACEMENT
16
+ * - `bundleTypeIndex` → bundles by `bundleType`
17
+ */
18
+ class ItemsBundleDao extends base_dynamoose_dao_1.GenericDynamooseDAO {
19
+ constructor() {
20
+ super(items_bundle_model_1.ItemsBundleModel, "bundleId");
21
+ /**
22
+ * Creates one item-bundle record.
23
+ *
24
+ * Use when: admin defines a new ADDON or REPLACEMENT bundle.
25
+ * - `bundleId` auto-generates if omitted.
26
+ * - `usageType` must be `"ADDON"` or `"REPLACEMENT"`.
27
+ *
28
+ * @example
29
+ * await itemsBundleDao.save({
30
+ * bundleType: "STARTERS",
31
+ * bundleName: "Premium Starters Pack",
32
+ * usageType: "ADDON"
33
+ * });
34
+ */
35
+ this.save = async (item, authContext) => {
36
+ return super.save(item, authContext);
37
+ };
38
+ /**
39
+ * Updates one item-bundle by `bundleId`.
40
+ *
41
+ * Use when: renaming a bundle or changing ADDON ↔ REPLACEMENT usage.
42
+ *
43
+ * @example
44
+ * await itemsBundleDao.update("bundle-uuid", { usageType: "REPLACEMENT" });
45
+ */
46
+ this.update = async (bundleId, updates, authContext) => {
47
+ const updated = await items_bundle_model_1.ItemsBundleModel.update({ bundleId }, {
48
+ ...updates,
49
+ updated_time: new Date(),
50
+ updated_user: authContext?.userSub
51
+ }, {
52
+ condition: new dynamoose_1.default.Condition().attribute("bundleId").exists()
53
+ });
54
+ return updated;
55
+ };
56
+ /**
57
+ * Fetches one item-bundle by primary key.
58
+ *
59
+ * @example
60
+ * const bundle = await itemsBundleDao.getById("bundle-uuid");
61
+ */
62
+ this.getById = async (bundleId) => this.get(bundleId);
63
+ /**
64
+ * Lists bundles by usage type — ADDON or REPLACEMENT (GSI `usageTypeIndex`).
65
+ *
66
+ * Use when: showing only add-on packs or only replacement packs in UI.
67
+ *
68
+ * @example
69
+ * const addons = await itemsBundleDao.listByUsageType("ADDON", 20);
70
+ * const replacements = await itemsBundleDao.listByUsageType("REPLACEMENT", 20);
71
+ */
72
+ this.listByUsageType = async (usageType, limit, token) => {
73
+ const decodedToken = this.decode(token);
74
+ let queryBuilder = items_bundle_model_1.ItemsBundleModel.query("usageType").eq(usageType).using("usageTypeIndex");
75
+ if (decodedToken) {
76
+ queryBuilder = queryBuilder.startAt(decodedToken);
77
+ }
78
+ if (typeof limit === "number") {
79
+ queryBuilder = queryBuilder.limit(limit);
80
+ }
81
+ const queryResult = await queryBuilder.exec();
82
+ return {
83
+ items: queryResult,
84
+ nextToken: await this.encode(queryResult.lastKey)
85
+ };
86
+ };
87
+ /**
88
+ * Lists bundles by `bundleType` (GSI `bundleTypeIndex`).
89
+ *
90
+ * @example
91
+ * const starters = await itemsBundleDao.listByBundleType("STARTERS", 20);
92
+ */
93
+ this.listByBundleType = async (bundleType, limit, token) => {
94
+ const decodedToken = this.decode(token);
95
+ let queryBuilder = items_bundle_model_1.ItemsBundleModel.query("bundleType").eq(bundleType).using("bundleTypeIndex");
96
+ if (decodedToken) {
97
+ queryBuilder = queryBuilder.startAt(decodedToken);
98
+ }
99
+ if (typeof limit === "number") {
100
+ queryBuilder = queryBuilder.limit(limit);
101
+ }
102
+ const queryResult = await queryBuilder.exec();
103
+ return {
104
+ items: queryResult,
105
+ nextToken: await this.encode(queryResult.lastKey)
106
+ };
107
+ };
108
+ /**
109
+ * Deletes one item-bundle by primary key.
110
+ */
111
+ this.deleteById = async (bundleId) => {
112
+ await this.delete(bundleId);
113
+ };
114
+ }
115
+ }
116
+ exports.itemsBundleDao = new ItemsBundleDao();
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMtYnVuZGxlLWRhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXN0b21lci11c2VyL2l0ZW1zLWJ1bmRsZS9pdGVtcy1idW5kbGUtZGFvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUFrQztBQUNsQyxpRUFBMEU7QUFFMUUsNkRBSzhCO0FBTzlCOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLGNBQWUsU0FBUSx3Q0FBZ0M7SUFDekQ7UUFDSSxLQUFLLENBQUMscUNBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFHeEM7Ozs7Ozs7Ozs7Ozs7V0FhRztRQUNILFNBQUksR0FBRyxLQUFLLEVBQUUsSUFBNEIsRUFBRSxXQUF5QixFQUF3QixFQUFFO1lBQzNGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFtQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQztRQUVGOzs7Ozs7O1dBT0c7UUFDSCxXQUFNLEdBQUcsS0FBSyxFQUNWLFFBQWdCLEVBQ2hCLE9BQTZCLEVBQzdCLFdBQXlCLEVBQ0wsRUFBRTtZQUN0QixNQUFNLE9BQU8sR0FBRyxNQUFNLHFDQUFnQixDQUFDLE1BQU0sQ0FDekMsRUFBRSxRQUFRLEVBQUUsRUFDWjtnQkFDSSxHQUFHLE9BQU87Z0JBQ1YsWUFBWSxFQUFFLElBQUksSUFBSSxFQUFFO2dCQUN4QixZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU87YUFDckMsRUFDRDtnQkFDSSxTQUFTLEVBQUUsSUFBSSxtQkFBUyxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEVBQUU7YUFDdEUsQ0FDSixDQUFDO1lBQ0YsT0FBTyxPQUFpQyxDQUFDO1FBQzdDLENBQUMsQ0FBQztRQUVGOzs7OztXQUtHO1FBQ0gsWUFBTyxHQUFHLEtBQUssRUFBRSxRQUFnQixFQUErQixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV0Rjs7Ozs7Ozs7V0FRRztRQUNILG9CQUFlLEdBQUcsS0FBSyxFQUNuQixTQUE4QixFQUM5QixLQUFjLEVBQ2QsS0FBYyxFQUNLLEVBQUU7WUFDckIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxJQUFJLFlBQVksR0FBRyxxQ0FBZ0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzdGLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2YsWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzVCLFlBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QyxPQUFPO2dCQUNILEtBQUssRUFBRSxXQUF1QztnQkFDOUMsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBZ0MsQ0FBQzthQUM3RSxDQUFDO1FBQ04sQ0FBQyxDQUFDO1FBRUY7Ozs7O1dBS0c7UUFDSCxxQkFBZ0IsR0FBRyxLQUFLLEVBQ3BCLFVBQWtCLEVBQ2xCLEtBQWMsRUFDZCxLQUFjLEVBQ0ssRUFBRTtZQUNyQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLElBQUksWUFBWSxHQUFHLHFDQUFnQixDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDaEcsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDZixZQUFZLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN0RCxDQUFDO1lBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDNUIsWUFBWSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0MsQ0FBQztZQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0sWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzlDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLFdBQXVDO2dCQUM5QyxTQUFTLEVBQUUsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFnQyxDQUFDO2FBQzdFLENBQUM7UUFDTixDQUFDLENBQUM7UUFFRjs7V0FFRztRQUNILGVBQVUsR0FBRyxLQUFLLEVBQUUsUUFBZ0IsRUFBaUIsRUFBRTtZQUNuRCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDO0lBbkhGLENBQUM7Q0FvSEo7QUFFWSxRQUFBLGNBQWMsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGR5bmFtb29zZSBmcm9tIFwiZHluYW1vb3NlXCI7XG5pbXBvcnQgeyBEeW5hbW9LZXksIEdlbmVyaWNEeW5hbW9vc2VEQU8gfSBmcm9tIFwiLi4vLi4vYmFzZS1keW5hbW9vc2UtZGFvXCI7XG5pbXBvcnQgeyBBdXRoQ29udGV4dCB9IGZyb20gXCIuLi8uLi9iYXNlLWR5bmFtb29zZS1tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBDcmVhdGVJdGVtc0J1bmRsZUlucHV0LFxuICAgIEl0ZW1CdW5kbGVVc2FnZVR5cGUsXG4gICAgSXRlbXNCdW5kbGUsXG4gICAgSXRlbXNCdW5kbGVNb2RlbFxufSBmcm9tIFwiLi9pdGVtcy1idW5kbGUtbW9kZWxcIjtcblxudHlwZSBMaXN0UmVzdWx0ID0ge1xuICAgIGl0ZW1zOiBJdGVtc0J1bmRsZVtdO1xuICAgIG5leHRUb2tlbj86IHN0cmluZztcbn07XG5cbi8qKlxuICogREFPIGZvciBpdGVtIGJ1bmRsZXMgKGFkZC1vbiAvIHJlcGxhY2VtZW50IGdyb3VwaW5ncykuXG4gKlxuICogVGFibGUga2V5czogYGJ1bmRsZUlkYCAoUEspLlxuICogTG9va3VwczpcbiAqIC0gYHVzYWdlVHlwZUluZGV4YCDihpIgYnVuZGxlcyBieSBBRERPTiAvIFJFUExBQ0VNRU5UXG4gKiAtIGBidW5kbGVUeXBlSW5kZXhgIOKGkiBidW5kbGVzIGJ5IGBidW5kbGVUeXBlYFxuICovXG5jbGFzcyBJdGVtc0J1bmRsZURhbyBleHRlbmRzIEdlbmVyaWNEeW5hbW9vc2VEQU88SXRlbXNCdW5kbGU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoSXRlbXNCdW5kbGVNb2RlbCwgXCJidW5kbGVJZFwiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIG9uZSBpdGVtLWJ1bmRsZSByZWNvcmQuXG4gICAgICpcbiAgICAgKiBVc2Ugd2hlbjogYWRtaW4gZGVmaW5lcyBhIG5ldyBBRERPTiBvciBSRVBMQUNFTUVOVCBidW5kbGUuXG4gICAgICogLSBgYnVuZGxlSWRgIGF1dG8tZ2VuZXJhdGVzIGlmIG9taXR0ZWQuXG4gICAgICogLSBgdXNhZ2VUeXBlYCBtdXN0IGJlIGBcIkFERE9OXCJgIG9yIGBcIlJFUExBQ0VNRU5UXCJgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBhd2FpdCBpdGVtc0J1bmRsZURhby5zYXZlKHtcbiAgICAgKiAgICAgYnVuZGxlVHlwZTogXCJTVEFSVEVSU1wiLFxuICAgICAqICAgICBidW5kbGVOYW1lOiBcIlByZW1pdW0gU3RhcnRlcnMgUGFja1wiLFxuICAgICAqICAgICB1c2FnZVR5cGU6IFwiQURET05cIlxuICAgICAqIH0pO1xuICAgICAqL1xuICAgIHNhdmUgPSBhc3luYyAoaXRlbTogQ3JlYXRlSXRlbXNCdW5kbGVJbnB1dCwgYXV0aENvbnRleHQ/OiBBdXRoQ29udGV4dCk6IFByb21pc2U8SXRlbXNCdW5kbGU+ID0+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnNhdmUoaXRlbSBhcyBJdGVtc0J1bmRsZSwgYXV0aENvbnRleHQpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIG9uZSBpdGVtLWJ1bmRsZSBieSBgYnVuZGxlSWRgLlxuICAgICAqXG4gICAgICogVXNlIHdoZW46IHJlbmFtaW5nIGEgYnVuZGxlIG9yIGNoYW5naW5nIEFERE9OIOKGlCBSRVBMQUNFTUVOVCB1c2FnZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYXdhaXQgaXRlbXNCdW5kbGVEYW8udXBkYXRlKFwiYnVuZGxlLXV1aWRcIiwgeyB1c2FnZVR5cGU6IFwiUkVQTEFDRU1FTlRcIiB9KTtcbiAgICAgKi9cbiAgICB1cGRhdGUgPSBhc3luYyAoXG4gICAgICAgIGJ1bmRsZUlkOiBzdHJpbmcsXG4gICAgICAgIHVwZGF0ZXM6IFBhcnRpYWw8SXRlbXNCdW5kbGU+LFxuICAgICAgICBhdXRoQ29udGV4dD86IEF1dGhDb250ZXh0XG4gICAgKTogUHJvbWlzZTxJdGVtc0J1bmRsZT4gPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgSXRlbXNCdW5kbGVNb2RlbC51cGRhdGUoXG4gICAgICAgICAgICB7IGJ1bmRsZUlkIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4udXBkYXRlcyxcbiAgICAgICAgICAgICAgICB1cGRhdGVkX3RpbWU6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgdXBkYXRlZF91c2VyOiBhdXRoQ29udGV4dD8udXNlclN1YlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25kaXRpb246IG5ldyBkeW5hbW9vc2UuQ29uZGl0aW9uKCkuYXR0cmlidXRlKFwiYnVuZGxlSWRcIikuZXhpc3RzKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWQgYXMgdW5rbm93biBhcyBJdGVtc0J1bmRsZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmV0Y2hlcyBvbmUgaXRlbS1idW5kbGUgYnkgcHJpbWFyeSBrZXkuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IGJ1bmRsZSA9IGF3YWl0IGl0ZW1zQnVuZGxlRGFvLmdldEJ5SWQoXCJidW5kbGUtdXVpZFwiKTtcbiAgICAgKi9cbiAgICBnZXRCeUlkID0gYXN5bmMgKGJ1bmRsZUlkOiBzdHJpbmcpOiBQcm9taXNlPEl0ZW1zQnVuZGxlIHwgbnVsbD4gPT4gdGhpcy5nZXQoYnVuZGxlSWQpO1xuXG4gICAgLyoqXG4gICAgICogTGlzdHMgYnVuZGxlcyBieSB1c2FnZSB0eXBlIOKAlCBBRERPTiBvciBSRVBMQUNFTUVOVCAoR1NJIGB1c2FnZVR5cGVJbmRleGApLlxuICAgICAqXG4gICAgICogVXNlIHdoZW46IHNob3dpbmcgb25seSBhZGQtb24gcGFja3Mgb3Igb25seSByZXBsYWNlbWVudCBwYWNrcyBpbiBVSS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3QgYWRkb25zID0gYXdhaXQgaXRlbXNCdW5kbGVEYW8ubGlzdEJ5VXNhZ2VUeXBlKFwiQURET05cIiwgMjApO1xuICAgICAqIGNvbnN0IHJlcGxhY2VtZW50cyA9IGF3YWl0IGl0ZW1zQnVuZGxlRGFvLmxpc3RCeVVzYWdlVHlwZShcIlJFUExBQ0VNRU5UXCIsIDIwKTtcbiAgICAgKi9cbiAgICBsaXN0QnlVc2FnZVR5cGUgPSBhc3luYyAoXG4gICAgICAgIHVzYWdlVHlwZTogSXRlbUJ1bmRsZVVzYWdlVHlwZSxcbiAgICAgICAgbGltaXQ/OiBudW1iZXIsXG4gICAgICAgIHRva2VuPzogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PiB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuZGVjb2RlKHRva2VuKTtcbiAgICAgICAgbGV0IHF1ZXJ5QnVpbGRlciA9IEl0ZW1zQnVuZGxlTW9kZWwucXVlcnkoXCJ1c2FnZVR5cGVcIikuZXEodXNhZ2VUeXBlKS51c2luZyhcInVzYWdlVHlwZUluZGV4XCIpO1xuICAgICAgICBpZiAoZGVjb2RlZFRva2VuKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIuc3RhcnRBdChkZWNvZGVkVG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBhd2FpdCBxdWVyeUJ1aWxkZXIuZXhlYygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHF1ZXJ5UmVzdWx0IGFzIHVua25vd24gYXMgSXRlbXNCdW5kbGVbXSxcbiAgICAgICAgICAgIG5leHRUb2tlbjogYXdhaXQgdGhpcy5lbmNvZGUocXVlcnlSZXN1bHQubGFzdEtleSBhcyBEeW5hbW9LZXkgfCB1bmRlZmluZWQpXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExpc3RzIGJ1bmRsZXMgYnkgYGJ1bmRsZVR5cGVgIChHU0kgYGJ1bmRsZVR5cGVJbmRleGApLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBzdGFydGVycyA9IGF3YWl0IGl0ZW1zQnVuZGxlRGFvLmxpc3RCeUJ1bmRsZVR5cGUoXCJTVEFSVEVSU1wiLCAyMCk7XG4gICAgICovXG4gICAgbGlzdEJ5QnVuZGxlVHlwZSA9IGFzeW5jIChcbiAgICAgICAgYnVuZGxlVHlwZTogc3RyaW5nLFxuICAgICAgICBsaW1pdD86IG51bWJlcixcbiAgICAgICAgdG9rZW4/OiBzdHJpbmdcbiAgICApOiBQcm9taXNlPExpc3RSZXN1bHQ+ID0+IHtcbiAgICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gdGhpcy5kZWNvZGUodG9rZW4pO1xuICAgICAgICBsZXQgcXVlcnlCdWlsZGVyID0gSXRlbXNCdW5kbGVNb2RlbC5xdWVyeShcImJ1bmRsZVR5cGVcIikuZXEoYnVuZGxlVHlwZSkudXNpbmcoXCJidW5kbGVUeXBlSW5kZXhcIik7XG4gICAgICAgIGlmIChkZWNvZGVkVG9rZW4pIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5zdGFydEF0KGRlY29kZWRUb2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBsaW1pdCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLmxpbWl0KGxpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IHF1ZXJ5QnVpbGRlci5leGVjKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtczogcXVlcnlSZXN1bHQgYXMgdW5rbm93biBhcyBJdGVtc0J1bmRsZVtdLFxuICAgICAgICAgICAgbmV4dFRva2VuOiBhd2FpdCB0aGlzLmVuY29kZShxdWVyeVJlc3VsdC5sYXN0S2V5IGFzIER5bmFtb0tleSB8IHVuZGVmaW5lZClcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBvbmUgaXRlbS1idW5kbGUgYnkgcHJpbWFyeSBrZXkuXG4gICAgICovXG4gICAgZGVsZXRlQnlJZCA9IGFzeW5jIChidW5kbGVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlKGJ1bmRsZUlkKTtcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgaXRlbXNCdW5kbGVEYW8gPSBuZXcgSXRlbXNCdW5kbGVEYW8oKTtcbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { BaseDynamooseModel } from "../../base-dynamoose-model";
2
+ /**
3
+ * Decides how the bundle is applied on a platter item.
4
+ * - ADDON → extra items added on top of the platter
5
+ * - REPLACEMENT → swaps an existing platter item
6
+ */
7
+ export declare const ITEM_BUNDLE_USAGE_TYPE: {
8
+ readonly ADDON: "ADDON";
9
+ readonly REPLACEMENT: "REPLACEMENT";
10
+ };
11
+ export type ItemBundleUsageType = (typeof ITEM_BUNDLE_USAGE_TYPE)[keyof typeof ITEM_BUNDLE_USAGE_TYPE];
12
+ export interface ItemsBundle extends BaseDynamooseModel {
13
+ bundleId: string;
14
+ bundleType: string;
15
+ bundleName: string;
16
+ usageType: ItemBundleUsageType;
17
+ bundleOrder?: number;
18
+ }
19
+ export type CreateItemsBundleInput = Omit<ItemsBundle, "bundleId"> & {
20
+ bundleId?: string;
21
+ };
22
+ export declare const ItemsBundleModel: import("dynamoose/dist/General").ModelType<ItemsBundle>;
23
+ export declare const convertToItemsBundleModel: (input: CreateItemsBundleInput | ItemsBundle) => ItemsBundle;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.convertToItemsBundleModel = exports.ItemsBundleModel = exports.ITEM_BUNDLE_USAGE_TYPE = void 0;
7
+ const dynamoose_1 = __importDefault(require("dynamoose"));
8
+ const crypto_1 = require("crypto");
9
+ const base_dynamoose_model_1 = require("../../base-dynamoose-model");
10
+ const table_names_1 = require("../../config/table-names");
11
+ /**
12
+ * Decides how the bundle is applied on a platter item.
13
+ * - ADDON → extra items added on top of the platter
14
+ * - REPLACEMENT → swaps an existing platter item
15
+ */
16
+ exports.ITEM_BUNDLE_USAGE_TYPE = {
17
+ ADDON: "ADDON",
18
+ REPLACEMENT: "REPLACEMENT"
19
+ };
20
+ const itemsBundleSchema = new dynamoose_1.default.Schema({
21
+ bundleId: {
22
+ type: String,
23
+ hashKey: true,
24
+ required: true,
25
+ default: () => (0, crypto_1.randomUUID)()
26
+ },
27
+ bundleType: {
28
+ type: String,
29
+ required: true,
30
+ index: {
31
+ name: "bundleTypeIndex",
32
+ type: "global"
33
+ }
34
+ },
35
+ bundleName: {
36
+ type: String,
37
+ required: true
38
+ },
39
+ bundleOrder: {
40
+ type: Number,
41
+ required: false
42
+ },
43
+ usageType: {
44
+ type: String,
45
+ required: true,
46
+ enum: [exports.ITEM_BUNDLE_USAGE_TYPE.ADDON, exports.ITEM_BUNDLE_USAGE_TYPE.REPLACEMENT],
47
+ index: {
48
+ name: "usageTypeIndex",
49
+ type: "global"
50
+ }
51
+ },
52
+ ...base_dynamoose_model_1.BASE_DYNAMOOSE_AUDIT_SCHEMA
53
+ }, {
54
+ saveUnknown: false,
55
+ timestamps: true
56
+ });
57
+ exports.ItemsBundleModel = dynamoose_1.default.model(table_names_1.TABLE_NAMES.ITEMS_BUNDLE, itemsBundleSchema, { create: false, waitForActive: false });
58
+ const convertToItemsBundleModel = (input) => {
59
+ return new exports.ItemsBundleModel(input);
60
+ };
61
+ exports.convertToItemsBundleModel = convertToItemsBundleModel;
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMtYnVuZGxlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvaXRlbXMtYnVuZGxlL2l0ZW1zLWJ1bmRsZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBa0M7QUFDbEMsbUNBQW9DO0FBQ3BDLHFFQUE2RjtBQUM3RiwwREFBdUQ7QUFFdkQ7Ozs7R0FJRztBQUNVLFFBQUEsc0JBQXNCLEdBQUc7SUFDbEMsS0FBSyxFQUFFLE9BQU87SUFDZCxXQUFXLEVBQUUsYUFBYTtDQUNwQixDQUFDO0FBaUJYLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxtQkFBUyxDQUFDLE1BQU0sQ0FDMUM7SUFDSSxRQUFRLEVBQUU7UUFDTixJQUFJLEVBQUUsTUFBTTtRQUNaLE9BQU8sRUFBRSxJQUFJO1FBQ2IsUUFBUSxFQUFFLElBQUk7UUFDZCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBQSxtQkFBVSxHQUFFO0tBQzlCO0lBQ0QsVUFBVSxFQUFFO1FBQ1IsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsSUFBSTtRQUNkLEtBQUssRUFBRTtZQUNILElBQUksRUFBRSxpQkFBaUI7WUFDdkIsSUFBSSxFQUFFLFFBQVE7U0FDakI7S0FDSjtJQUNELFVBQVUsRUFBRTtRQUNSLElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRCxXQUFXLEVBQUU7UUFDVCxJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxLQUFLO0tBQ2xCO0lBQ0QsU0FBUyxFQUFFO1FBQ1AsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsSUFBSTtRQUNkLElBQUksRUFBRSxDQUFDLDhCQUFzQixDQUFDLEtBQUssRUFBRSw4QkFBc0IsQ0FBQyxXQUFXLENBQUM7UUFDeEUsS0FBSyxFQUFFO1lBQ0gsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixJQUFJLEVBQUUsUUFBUTtTQUNqQjtLQUNKO0lBQ0QsR0FBRyxrREFBMkI7Q0FDakMsRUFDRDtJQUNJLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0NBQ25CLENBQ0osQ0FBQztBQUVXLFFBQUEsZ0JBQWdCLEdBQUcsbUJBQVMsQ0FBQyxLQUFLLENBQzNDLHlCQUFXLENBQUMsWUFBWSxFQUN4QixpQkFBaUIsRUFDakIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FDMUMsQ0FBQztBQUVLLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxLQUEyQyxFQUFFLEVBQUU7SUFDckYsT0FBTyxJQUFJLHdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQUZXLFFBQUEseUJBQXlCLDZCQUVwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkeW5hbW9vc2UgZnJvbSBcImR5bmFtb29zZVwiO1xuaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gXCJjcnlwdG9cIjtcbmltcG9ydCB7IEJBU0VfRFlOQU1PT1NFX0FVRElUX1NDSEVNQSwgQmFzZUR5bmFtb29zZU1vZGVsIH0gZnJvbSBcIi4uLy4uL2Jhc2UtZHluYW1vb3NlLW1vZGVsXCI7XG5pbXBvcnQgeyBUQUJMRV9OQU1FUyB9IGZyb20gXCIuLi8uLi9jb25maWcvdGFibGUtbmFtZXNcIjtcblxuLyoqXG4gKiBEZWNpZGVzIGhvdyB0aGUgYnVuZGxlIGlzIGFwcGxpZWQgb24gYSBwbGF0dGVyIGl0ZW0uXG4gKiAtIEFERE9OIOKGkiBleHRyYSBpdGVtcyBhZGRlZCBvbiB0b3Agb2YgdGhlIHBsYXR0ZXJcbiAqIC0gUkVQTEFDRU1FTlQg4oaSIHN3YXBzIGFuIGV4aXN0aW5nIHBsYXR0ZXIgaXRlbVxuICovXG5leHBvcnQgY29uc3QgSVRFTV9CVU5ETEVfVVNBR0VfVFlQRSA9IHtcbiAgICBBRERPTjogXCJBRERPTlwiLFxuICAgIFJFUExBQ0VNRU5UOiBcIlJFUExBQ0VNRU5UXCJcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEl0ZW1CdW5kbGVVc2FnZVR5cGUgPVxuICAgICh0eXBlb2YgSVRFTV9CVU5ETEVfVVNBR0VfVFlQRSlba2V5b2YgdHlwZW9mIElURU1fQlVORExFX1VTQUdFX1RZUEVdO1xuXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1zQnVuZGxlIGV4dGVuZHMgQmFzZUR5bmFtb29zZU1vZGVsIHtcbiAgICBidW5kbGVJZDogc3RyaW5nO1xuICAgIGJ1bmRsZVR5cGU6IHN0cmluZztcbiAgICBidW5kbGVOYW1lOiBzdHJpbmc7XG4gICAgdXNhZ2VUeXBlOiBJdGVtQnVuZGxlVXNhZ2VUeXBlO1xuICAgIGJ1bmRsZU9yZGVyPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBDcmVhdGVJdGVtc0J1bmRsZUlucHV0ID0gT21pdDxJdGVtc0J1bmRsZSwgXCJidW5kbGVJZFwiPiAmIHtcbiAgICBidW5kbGVJZD86IHN0cmluZztcbn07XG5cbmNvbnN0IGl0ZW1zQnVuZGxlU2NoZW1hID0gbmV3IGR5bmFtb29zZS5TY2hlbWEoXG4gICAge1xuICAgICAgICBidW5kbGVJZDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgaGFzaEtleTogdHJ1ZSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgZGVmYXVsdDogKCkgPT4gcmFuZG9tVVVJRCgpXG4gICAgICAgIH0sXG4gICAgICAgIGJ1bmRsZVR5cGU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgaW5kZXg6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImJ1bmRsZVR5cGVJbmRleFwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZ2xvYmFsXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYnVuZGxlTmFtZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgYnVuZGxlT3JkZXI6IHtcbiAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICB1c2FnZVR5cGU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgZW51bTogW0lURU1fQlVORExFX1VTQUdFX1RZUEUuQURET04sIElURU1fQlVORExFX1VTQUdFX1RZUEUuUkVQTEFDRU1FTlRdLFxuICAgICAgICAgICAgaW5kZXg6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcInVzYWdlVHlwZUluZGV4XCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJnbG9iYWxcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAuLi5CQVNFX0RZTkFNT09TRV9BVURJVF9TQ0hFTUFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgc2F2ZVVua25vd246IGZhbHNlLFxuICAgICAgICB0aW1lc3RhbXBzOiB0cnVlXG4gICAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IEl0ZW1zQnVuZGxlTW9kZWwgPSBkeW5hbW9vc2UubW9kZWw8SXRlbXNCdW5kbGU+KFxuICAgIFRBQkxFX05BTUVTLklURU1TX0JVTkRMRSxcbiAgICBpdGVtc0J1bmRsZVNjaGVtYSxcbiAgICB7IGNyZWF0ZTogZmFsc2UsIHdhaXRGb3JBY3RpdmU6IGZhbHNlIH1cbik7XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9JdGVtc0J1bmRsZU1vZGVsID0gKGlucHV0OiBDcmVhdGVJdGVtc0J1bmRsZUlucHV0IHwgSXRlbXNCdW5kbGUpID0+IHtcbiAgICByZXR1cm4gbmV3IEl0ZW1zQnVuZGxlTW9kZWwoaW5wdXQpO1xufTtcbiJdfQ==
@@ -0,0 +1,140 @@
1
+ import { GenericDynamooseDAO } from "../../base-dynamoose-dao";
2
+ import { AuthContext } from "../../base-dynamoose-model";
3
+ import { CreateLsqPriorityUpdationInput, LsqPassedStr, LsqPriorityUpdation } from "./lsq-priority-updation-model";
4
+ type ListResult = {
5
+ items: LsqPriorityUpdation[];
6
+ nextToken?: string;
7
+ };
8
+ /**
9
+ * DAO for LeadSquared priority-updation queue.
10
+ *
11
+ * Table keys: `lsqPriorityUpdationId` (PK).
12
+ * Lookups:
13
+ * - `opportunityIdIndex` → by LeadSquared `opportunityId`
14
+ * - `leadNumberIndex` → by lead phone/number
15
+ * - `statusIndex` → by record `status`
16
+ * - `passedStrIndex` → unprocessed queue (`passedStr` + `priorityRank`)
17
+ * Processed rows are deleted from the table (not soft-flagged).
18
+ */
19
+ declare class LsqPriorityUpdationDao extends GenericDynamooseDAO<LsqPriorityUpdation> {
20
+ constructor();
21
+ private normalizeInput;
22
+ /**
23
+ * Creates / queues one opportunity for priority updation.
24
+ *
25
+ * Use when: LeadSquared webhook receives a new/updated opportunity.
26
+ * - `lsqPriorityUpdationId` auto-generates if omitted.
27
+ * - Auto-fills `passedStr` from `passed` (`false` → `"FALSE"`).
28
+ * - Auto-fills `priorityRank` from `priority` (P1→1 … P5→5).
29
+ *
30
+ * @example
31
+ * await lsqPriorityUpdationDao.save({
32
+ * opportunityId: "opp-123",
33
+ * leadNumber: "9876543210",
34
+ * passed: false,
35
+ * priority: "P1",
36
+ * urgency: "U2",
37
+ * value: "V3",
38
+ * eventDate: "2026-07-30",
39
+ * payload: { raw: "webhook-body" }
40
+ * });
41
+ */
42
+ save: (item: CreateLsqPriorityUpdationInput, authContext?: AuthContext) => Promise<LsqPriorityUpdation>;
43
+ /**
44
+ * Updates an existing queued record by `lsqPriorityUpdationId`.
45
+ *
46
+ * Use when: recalculating priority/urgency/value (e.g. midnight job) or
47
+ * refreshing webhook payload fields.
48
+ * - Re-syncs `passedStr` / `priorityRank` when `passed` / `priority` change.
49
+ * - Always refreshes `updatedAt`.
50
+ *
51
+ * @example
52
+ * await lsqPriorityUpdationDao.update("lsq-uuid", {
53
+ * priority: "P2",
54
+ * urgency: "U1",
55
+ * value: "V2"
56
+ * });
57
+ */
58
+ update: (lsqPriorityUpdationId: string, updates: Partial<LsqPriorityUpdation>, authContext?: AuthContext) => Promise<LsqPriorityUpdation>;
59
+ /**
60
+ * Fetches one queue record by table primary key.
61
+ *
62
+ * @example
63
+ * const row = await lsqPriorityUpdationDao.getById("lsq-uuid");
64
+ */
65
+ getById: (lsqPriorityUpdationId: string) => Promise<LsqPriorityUpdation | null>;
66
+ /**
67
+ * Fetches one queue record by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
68
+ *
69
+ * @example
70
+ * const row = await lsqPriorityUpdationDao.getByOpportunityId("opp-123");
71
+ */
72
+ getByOpportunityId: (opportunityId: string) => Promise<LsqPriorityUpdation | null>;
73
+ /**
74
+ * Lists queue records by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
75
+ *
76
+ * @example
77
+ * const { items } = await lsqPriorityUpdationDao.listByOpportunityId("opp-123");
78
+ */
79
+ listByOpportunityId: (opportunityId: string, limit?: number, token?: string) => Promise<ListResult>;
80
+ /**
81
+ * Fetches one queue record by `leadNumber` (GSI `leadNumberIndex`).
82
+ *
83
+ * @example
84
+ * const row = await lsqPriorityUpdationDao.getByLeadNumber("9876543210");
85
+ */
86
+ getByLeadNumber: (leadNumber: string) => Promise<LsqPriorityUpdation | null>;
87
+ /**
88
+ * Lists queue records by `leadNumber` (GSI `leadNumberIndex`).
89
+ *
90
+ * @example
91
+ * const { items } = await lsqPriorityUpdationDao.listByLeadNumber("9876543210");
92
+ */
93
+ listByLeadNumber: (leadNumber: string, limit?: number, token?: string) => Promise<ListResult>;
94
+ /**
95
+ * Lists queue records by `status` (GSI `statusIndex`).
96
+ *
97
+ * @example
98
+ * const { items } = await lsqPriorityUpdationDao.listByStatus("PENDING", 25);
99
+ */
100
+ listByStatus: (status: string, limit?: number, token?: string) => Promise<ListResult>;
101
+ /**
102
+ * Lists queued (unprocessed) opportunities sorted by `priorityRank` ascending.
103
+ *
104
+ * Use when: worker pulls next batch of unassigned LSQ priority updates.
105
+ * Queries GSI `passedStrIndex` with `passedStr = "FALSE"`.
106
+ *
107
+ * @example
108
+ * const { items, nextToken } = await lsqPriorityUpdationDao.listUnprocessed(25);
109
+ */
110
+ listUnprocessed: (limit?: number, token?: string) => Promise<ListResult>;
111
+ /**
112
+ * Lists opportunities by `passedStr` (GSI `passedStrIndex`), sorted by `priorityRank`.
113
+ *
114
+ * @example
115
+ * const queued = await lsqPriorityUpdationDao.listByPassedStr("FALSE", 25);
116
+ */
117
+ listByPassedStr: (passedStr: LsqPassedStr, limit?: number, token?: string) => Promise<ListResult>;
118
+ /**
119
+ * Marks a queue row as processed by deleting it via primary key.
120
+ *
121
+ * Use when: worker successfully applied priority update in LeadSquared.
122
+ *
123
+ * @example
124
+ * await lsqPriorityUpdationDao.markProcessed("lsq-uuid");
125
+ */
126
+ markProcessed: (lsqPriorityUpdationId: string) => Promise<void>;
127
+ /**
128
+ * Marks processed by LeadSquared `opportunityId` (lookup GSI, then delete by PK).
129
+ *
130
+ * @example
131
+ * await lsqPriorityUpdationDao.markProcessedByOpportunityId("opp-123");
132
+ */
133
+ markProcessedByOpportunityId: (opportunityId: string) => Promise<boolean>;
134
+ /**
135
+ * Deletes one queue record by primary key.
136
+ */
137
+ deleteById: (lsqPriorityUpdationId: string) => Promise<void>;
138
+ }
139
+ export declare const lsqPriorityUpdationDao: LsqPriorityUpdationDao;
140
+ export {};