@lyxa.ai/core 1.1.21 → 1.1.23

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 (102) hide show
  1. package/dist/libraries/event/index.d.ts +3 -3
  2. package/dist/libraries/event/index.js +18 -61
  3. package/dist/libraries/event/index.js.map +1 -1
  4. package/dist/libraries/mongo/models/banner.model.js +3 -3
  5. package/dist/libraries/mongo/models/banner.model.js.map +1 -1
  6. package/dist/libraries/mongo/models/cancellation-reason.model.js +3 -3
  7. package/dist/libraries/mongo/models/cancellation-reason.model.js.map +1 -1
  8. package/dist/libraries/mongo/models/cart.model.js +2 -2
  9. package/dist/libraries/mongo/models/cart.model.js.map +1 -1
  10. package/dist/libraries/mongo/models/category.model.js +2 -19
  11. package/dist/libraries/mongo/models/category.model.js.map +1 -1
  12. package/dist/libraries/mongo/models/dish.model.js +2 -2
  13. package/dist/libraries/mongo/models/dish.model.js.map +1 -1
  14. package/dist/libraries/mongo/models/faq.model.js +2 -2
  15. package/dist/libraries/mongo/models/faq.model.js.map +1 -1
  16. package/dist/libraries/mongo/models/filter-container.model.js +3 -3
  17. package/dist/libraries/mongo/models/filter-container.model.js.map +1 -1
  18. package/dist/libraries/mongo/models/finance-settlement.model.js +2 -2
  19. package/dist/libraries/mongo/models/finance-settlement.model.js.map +1 -1
  20. package/dist/libraries/mongo/models/list-container.model.js +3 -3
  21. package/dist/libraries/mongo/models/list-container.model.js.map +1 -1
  22. package/dist/libraries/mongo/models/product.model.d.ts +1 -0
  23. package/dist/libraries/mongo/models/product.model.js +13 -6
  24. package/dist/libraries/mongo/models/product.model.js.map +1 -1
  25. package/dist/libraries/mongo/models/shop-category.model.js +2 -2
  26. package/dist/libraries/mongo/models/shop-category.model.js.map +1 -1
  27. package/dist/libraries/mongo/models/shop.model.js +2 -2
  28. package/dist/libraries/mongo/models/shop.model.js.map +1 -1
  29. package/dist/libraries/mongo/models/support-reason.model.js +3 -3
  30. package/dist/libraries/mongo/models/support-reason.model.js.map +1 -1
  31. package/dist/libraries/mongo/models/tag.model.js +3 -3
  32. package/dist/libraries/mongo/models/tag.model.js.map +1 -1
  33. package/dist/libraries/mongo/models/user-app-section-setting.model.js +3 -3
  34. package/dist/libraries/mongo/models/user-app-section-setting.model.js.map +1 -1
  35. package/dist/libraries/mongo/models/user.model.d.ts +1 -1
  36. package/dist/libraries/mongo/plugins/normalize-field.plugin.d.ts +4 -0
  37. package/dist/libraries/mongo/plugins/normalize-field.plugin.js +42 -0
  38. package/dist/libraries/mongo/plugins/normalize-field.plugin.js.map +1 -0
  39. package/dist/libraries/mongo/utilities/{shopHooks.js → shop.hooks.js} +3 -3
  40. package/dist/libraries/mongo/utilities/shop.hooks.js.map +1 -0
  41. package/dist/libraries/mongo/utilities/{sortingOrderHooks.js → sorting-order.hooks.js} +1 -1
  42. package/dist/libraries/mongo/utilities/sorting-order.hooks.js.map +1 -0
  43. package/dist/libraries/mongo/utilities/{uniqueIdHooks.js → unique-id.hooks.js} +1 -1
  44. package/dist/libraries/mongo/utilities/unique-id.hooks.js.map +1 -0
  45. package/dist/libraries/socket/BaseSocketEvent.d.ts +4 -1
  46. package/dist/libraries/socket/BaseSocketEvent.js +4 -4
  47. package/dist/libraries/socket/BaseSocketEvent.js.map +1 -1
  48. package/dist/libraries/socket/PushNotificationEvent.d.ts +13 -0
  49. package/dist/libraries/socket/PushNotificationEvent.js +20 -0
  50. package/dist/libraries/socket/PushNotificationEvent.js.map +1 -0
  51. package/dist/libraries/socket/core/socket-event-consumer.d.ts +1 -0
  52. package/dist/libraries/socket/core/socket-event-consumer.js +27 -0
  53. package/dist/libraries/socket/core/socket-event-consumer.js.map +1 -0
  54. package/dist/libraries/socket/core/socket-event-publisher.d.ts +4 -0
  55. package/dist/libraries/socket/core/socket-event-publisher.js +68 -0
  56. package/dist/libraries/socket/core/socket-event-publisher.js.map +1 -0
  57. package/dist/libraries/socket/core/socket-event-registry.d.ts +1 -1
  58. package/dist/libraries/socket/core/socket-event-registry.js +1 -1
  59. package/dist/libraries/socket/core/socket-event-registry.js.map +1 -1
  60. package/dist/libraries/socket/{socket-event-registry.map.d.ts → core/socket-event-registry.map.d.ts} +33 -19
  61. package/dist/libraries/socket/core/socket-event-registry.map.js +33 -0
  62. package/dist/libraries/socket/core/socket-event-registry.map.js.map +1 -0
  63. package/dist/libraries/socket/events/chatlist-message-send.socket.event.d.ts +5 -4
  64. package/dist/libraries/socket/events/chatlist-message-send.socket.event.js +10 -7
  65. package/dist/libraries/socket/events/chatlist-message-send.socket.event.js.map +1 -1
  66. package/dist/libraries/socket/events/chatroom-message-send.socket.event.d.ts +10 -5
  67. package/dist/libraries/socket/events/chatroom-message-send.socket.event.js +17 -7
  68. package/dist/libraries/socket/events/chatroom-message-send.socket.event.js.map +1 -1
  69. package/dist/libraries/socket/events/notification.socket.event.d.ts +25 -0
  70. package/dist/libraries/socket/events/notification.socket.event.js +22 -0
  71. package/dist/libraries/socket/events/notification.socket.event.js.map +1 -0
  72. package/dist/libraries/socket/events/ticket-assign.socket.event.d.ts +5 -4
  73. package/dist/libraries/socket/events/ticket-assign.socket.event.js +4 -4
  74. package/dist/libraries/socket/events/ticket-assign.socket.event.js.map +1 -1
  75. package/dist/libraries/socket/events/ticket-unassign.socket.event.d.ts +5 -4
  76. package/dist/libraries/socket/events/ticket-unassign.socket.event.js +7 -4
  77. package/dist/libraries/socket/events/ticket-unassign.socket.event.js.map +1 -1
  78. package/dist/libraries/trpc/middlewares/createSocketSubscriptionProcedure.d.ts +1 -1
  79. package/dist/types/README.md +1 -1
  80. package/dist/types/package.json +1 -1
  81. package/dist/types/utilities/enum.d.ts +5 -1
  82. package/dist/types/utilities/enum.js +6 -1
  83. package/dist/types/utilities/enum.js.map +1 -1
  84. package/dist/types/utilities/validation/common-validation.d.ts +78 -2
  85. package/dist/types/utilities/validation/global-validation.d.ts +38 -14
  86. package/dist/utilities/enum.d.ts +5 -1
  87. package/dist/utilities/enum.js +6 -1
  88. package/dist/utilities/enum.js.map +1 -1
  89. package/dist/utilities/normalize.d.ts +1 -0
  90. package/dist/utilities/normalize.js +7 -0
  91. package/dist/utilities/normalize.js.map +1 -1
  92. package/dist/utilities/validation/common-validation.d.ts +78 -2
  93. package/dist/utilities/validation/global-validation.d.ts +38 -14
  94. package/package.json +1 -1
  95. package/dist/libraries/mongo/utilities/shopHooks.js.map +0 -1
  96. package/dist/libraries/mongo/utilities/sortingOrderHooks.js.map +0 -1
  97. package/dist/libraries/mongo/utilities/uniqueIdHooks.js.map +0 -1
  98. package/dist/libraries/socket/socket-event-registry.map.js +0 -28
  99. package/dist/libraries/socket/socket-event-registry.map.js.map +0 -1
  100. /package/dist/libraries/mongo/utilities/{shopHooks.d.ts → shop.hooks.d.ts} +0 -0
  101. /package/dist/libraries/mongo/utilities/{sortingOrderHooks.d.ts → sorting-order.hooks.d.ts} +0 -0
  102. /package/dist/libraries/mongo/utilities/{uniqueIdHooks.d.ts → unique-id.hooks.d.ts} +0 -0
@@ -1,9 +1,9 @@
1
1
  import amqp from 'amqplib';
2
2
  import { BaseEvent } from './BaseEvent';
3
- import { BaseSocketEvent } from '../socket/BaseSocketEvent';
3
+ export declare const EXCHANGE_NAME = "lyxa.events";
4
+ export declare const INSTANCE_ROUTE_PREFIX = "instance";
4
5
  export declare function initEventBus(rabbitUrl: string): Promise<void>;
6
+ export declare function getChannel(): amqp.Channel;
5
7
  export declare function publishEvent<TPayload extends Record<string, unknown>>(event: BaseEvent<TPayload>): Promise<void>;
6
8
  export declare function subscribeToEvent(eventId: string, onMessage: (payload: any) => Promise<void>): Promise<void>;
7
- export declare function subscribeToSocketEvent(): Promise<amqp.Channel>;
8
- export declare function publishSocketEvent(event: BaseSocketEvent<any, any>, recipients: string[]): Promise<void>;
9
9
  export declare function closeEventBus(): Promise<void>;
@@ -3,102 +3,59 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.INSTANCE_ROUTE_PREFIX = exports.EXCHANGE_NAME = void 0;
6
7
  exports.initEventBus = initEventBus;
8
+ exports.getChannel = getChannel;
7
9
  exports.publishEvent = publishEvent;
8
10
  exports.subscribeToEvent = subscribeToEvent;
9
- exports.subscribeToSocketEvent = subscribeToSocketEvent;
10
- exports.publishSocketEvent = publishSocketEvent;
11
11
  exports.closeEventBus = closeEventBus;
12
12
  const amqplib_1 = __importDefault(require("amqplib"));
13
13
  const instance_utils_1 = require("../../utilities/instance.utils");
14
- const index_1 = require("../../index");
15
- const local_subscription_registry_1 = require("../socket/core/local-subscription-registry");
16
- const socket_redis_connections_1 = require("../socket/core/socket-redis-connections");
17
14
  let connection;
18
15
  let channel;
19
- const EXCHANGE_NAME = 'lyxa.events';
20
- const INSTANCE_ROUTE_PREFIX = 'instance';
16
+ exports.EXCHANGE_NAME = 'lyxa.events';
17
+ exports.INSTANCE_ROUTE_PREFIX = 'instance';
21
18
  async function initEventBus(rabbitUrl) {
22
19
  connection = await amqplib_1.default.connect(rabbitUrl);
23
20
  channel = await connection.createChannel();
24
- await channel.assertExchange(EXCHANGE_NAME, 'topic', { durable: true });
21
+ await channel.assertExchange(exports.EXCHANGE_NAME, 'topic', { durable: true });
25
22
  console.log(`EventBus initialized with instance ID: ${(0, instance_utils_1.getInstanceId)()}`);
26
23
  }
27
- async function publishEvent(event) {
24
+ function getChannel() {
28
25
  if (!channel)
29
26
  throw new Error('Channel not initialized. Call initEventBus first.');
27
+ return channel;
28
+ }
29
+ async function publishEvent(event) {
30
+ const ch = getChannel();
30
31
  const messageBuffer = Buffer.from(JSON.stringify(event.payload));
31
- channel.publish(EXCHANGE_NAME, event.eventId, messageBuffer, {
32
+ ch.publish(exports.EXCHANGE_NAME, event.eventId, messageBuffer, {
32
33
  contentType: 'application/json',
33
34
  });
34
35
  console.log(`Published event [${event.eventId}] with payload`, event.payload);
35
36
  }
36
37
  async function subscribeToEvent(eventId, onMessage) {
37
- if (!channel)
38
- throw new Error('Channel not initialized. Call initEventBus first.');
38
+ const ch = getChannel();
39
39
  const queueName = `${eventId}-${(0, instance_utils_1.getInstanceId)()}`;
40
- await channel.assertQueue(queueName, {
40
+ await ch.assertQueue(queueName, {
41
41
  durable: false,
42
42
  exclusive: true,
43
43
  autoDelete: true,
44
44
  });
45
- await channel.bindQueue(queueName, EXCHANGE_NAME, eventId);
46
- await channel.consume(queueName, async (msg) => {
45
+ await ch.bindQueue(queueName, exports.EXCHANGE_NAME, eventId);
46
+ await ch.consume(queueName, async (msg) => {
47
47
  if (msg !== null) {
48
- const payloadString = msg.content.toString();
49
- const payload = JSON.parse(payloadString);
48
+ const payload = JSON.parse(msg.content.toString());
50
49
  try {
51
50
  await onMessage(payload);
52
- channel.ack(msg);
51
+ ch.ack(msg);
53
52
  }
54
53
  catch (err) {
55
54
  console.error(`Error handling event [${eventId}] on instance [${(0, instance_utils_1.getInstanceId)()}]`, err);
56
55
  }
57
56
  }
58
57
  }, { noAck: false });
59
- console.log(`Subscribed to event [${eventId}] on queue [${queueName}] for instance [${(0, instance_utils_1.getInstanceId)()}]`);
60
- }
61
- async function subscribeToSocketEvent() {
62
- const queueName = `socket-events-${(0, instance_utils_1.getInstanceId)()}`;
63
- await channel.assertQueue(queueName, { durable: true });
64
- await channel.bindQueue(queueName, EXCHANGE_NAME, `instance.${(0, instance_utils_1.getInstanceId)()}`);
65
- await channel.consume(queueName, msg => {
66
- if (!msg)
67
- return;
68
- try {
69
- const { localKey, payload, recipient } = JSON.parse(msg.content.toString('utf8'));
70
- local_subscription_registry_1.LocalSubs.emit(recipient, localKey, payload);
71
- channel.ack(msg);
72
- }
73
- catch (e) {
74
- console.error('Failed to handle instance event', e);
75
- channel.nack(msg, false, false);
76
- }
77
- });
78
- return channel;
79
- }
80
- async function publishSocketEvent(event, recipients) {
81
- const redisService = (0, index_1.getLibraries)().getRedisService();
82
- const localKey = event.getSubscriptionKey();
83
- const payload = event.payload();
84
- for (const recipient of recipients) {
85
- const isSub = await (0, socket_redis_connections_1.isEntitySubscribed)(recipient, localKey);
86
- if (!isSub) {
87
- continue;
88
- }
89
- const instanceNames = await redisService.getSetMembers((0, socket_redis_connections_1.kEntityInstances)(recipient));
90
- if (!instanceNames.length) {
91
- continue;
92
- }
93
- for (const instanceName of instanceNames) {
94
- const routingKey = `${INSTANCE_ROUTE_PREFIX}.${instanceName}`;
95
- const messageBuffer = Buffer.from(JSON.stringify({ localKey, payload, recipient }), 'utf8');
96
- channel.publish(EXCHANGE_NAME, routingKey, messageBuffer, {
97
- contentType: 'application/json',
98
- persistent: true,
99
- });
100
- }
101
- }
58
+ console.log(`Subscribed to event [${eventId}] on queue [${queueName}]`);
102
59
  }
103
60
  async function closeEventBus() {
104
61
  if (channel)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/event/index.ts"],"names":[],"mappings":"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","sourcesContent":["import amqp from 'amqplib';\nimport { BaseEvent } from './BaseEvent';\nimport { getInstanceId } from '../../utilities/instance.utils';\nimport { BaseSocketEvent } from '../socket/BaseSocketEvent';\nimport { getLibraries } from '../../index';\nimport { LocalSubs } from '../socket/core/local-subscription-registry';\nimport { isEntitySubscribed, kEntityEvents, kEntityInstances } from '../socket/core/socket-redis-connections';\n\nlet connection: amqp.ChannelModel;\nlet channel: amqp.Channel;\nconst EXCHANGE_NAME = 'lyxa.events';\nconst INSTANCE_ROUTE_PREFIX = 'instance'; // routing key: instance.{instanceName}.{eventType}\n\nexport async function initEventBus(rabbitUrl: string) {\n\tconnection = await amqp.connect(rabbitUrl);\n\tchannel = await connection.createChannel();\n\tawait channel.assertExchange(EXCHANGE_NAME, 'topic', { durable: true });\n\tconsole.log(`EventBus initialized with instance ID: ${getInstanceId()}`);\n}\n\nexport async function publishEvent<TPayload extends Record<string, unknown>>(\n\tevent: BaseEvent<TPayload>\n): Promise<void> {\n\tif (!channel) throw new Error('Channel not initialized. Call initEventBus first.');\n\tconst messageBuffer = Buffer.from(JSON.stringify(event.payload));\n\tchannel.publish(EXCHANGE_NAME, event.eventId, messageBuffer, {\n\t\tcontentType: 'application/json',\n\t});\n\tconsole.log(`Published event [${event.eventId}] with payload`, event.payload);\n}\n\nexport async function subscribeToEvent(\n\teventId: string,\n\tonMessage: (payload: any) => Promise<void>\n): Promise<void> {\n\tif (!channel) throw new Error('Channel not initialized. Call initEventBus first.');\n\tconst queueName = `${eventId}-${getInstanceId()}`;\n\tawait channel.assertQueue(queueName, {\n\t\tdurable: false,\n\t\texclusive: true,\n\t\tautoDelete: true,\n\t});\n\tawait channel.bindQueue(queueName, EXCHANGE_NAME, eventId);\n\tawait channel.consume(\n\t\tqueueName,\n\t\tasync msg => {\n\t\t\tif (msg !== null) {\n\t\t\t\tconst payloadString = msg.content.toString();\n\t\t\t\tconst payload = JSON.parse(payloadString);\n\t\t\t\ttry {\n\t\t\t\t\tawait onMessage(payload);\n\t\t\t\t\tchannel.ack(msg);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconsole.error(`Error handling event [${eventId}] on instance [${getInstanceId()}]`, err);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{ noAck: false }\n\t);\n\tconsole.log(`Subscribed to event [${eventId}] on queue [${queueName}] for instance [${getInstanceId()}]`);\n}\n\nexport async function subscribeToSocketEvent() {\n\tconst queueName = `socket-events-${getInstanceId()}`;\n\tawait channel.assertQueue(queueName, { durable: true });\n\tawait channel.bindQueue(queueName, EXCHANGE_NAME, `instance.${getInstanceId()}`);\n\n\tawait channel.consume(queueName, msg => {\n\t\tif (!msg) return;\n\t\ttry {\n\t\t\tconst { localKey, payload, recipient } = JSON.parse(msg.content.toString('utf8'));\n\t\t\tLocalSubs.emit(recipient, localKey, payload);\n\t\t\tchannel.ack(msg);\n\t\t} catch (e) {\n\t\t\tconsole.error('Failed to handle instance event', e);\n\t\t\tchannel.nack(msg, false, false);\n\t\t}\n\t});\n\n\treturn channel;\n}\nexport async function publishSocketEvent(\n\tevent: BaseSocketEvent<any, any>,\n\trecipients: string[]\n): Promise<void> {\n\tconst redisService = getLibraries().getRedisService();\n\tconst localKey = event.getSubscriptionKey();\n\tconst payload = event.payload();\n\n\tfor (const recipient of recipients) {\n\t\tconst isSub = await isEntitySubscribed(recipient, localKey);\n\t\tif (!isSub) {\n\t\t\t// Not subscribed → push notification fallback\n\t\t\t// TODO: queue push notification for { recipient, eventType, payload }\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst instanceNames = await redisService.getSetMembers(kEntityInstances(recipient));\n\t\tif (!instanceNames.length) {\n\t\t\t// No active instances → push notification fallback\n\t\t\t// TODO: queue push notification for { recipient, eventType, payload }\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Publish to every instance with routing\n\t\tfor (const instanceName of instanceNames) {\n\t\t\tconst routingKey = `${INSTANCE_ROUTE_PREFIX}.${instanceName}`;\n\t\t\tconst messageBuffer = Buffer.from(JSON.stringify({ localKey, payload, recipient }), 'utf8');\n\t\t\tchannel.publish(EXCHANGE_NAME, routingKey, messageBuffer, {\n\t\t\t\tcontentType: 'application/json',\n\t\t\t\tpersistent: true,\n\t\t\t});\n\t\t}\n\t}\n}\n\nexport async function closeEventBus(): Promise<void> {\n\tif (channel) await channel.close();\n\tif (connection) await connection.close();\n\tconsole.log(`EventBus closed for instance [${getInstanceId()}]`);\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/event/index.ts"],"names":[],"mappings":"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","sourcesContent":["import amqp from 'amqplib';\nimport { BaseEvent } from './BaseEvent';\nimport { getInstanceId } from '../../utilities/instance.utils';\n\nlet connection: amqp.ChannelModel;\nlet channel: amqp.Channel;\nexport const EXCHANGE_NAME = 'lyxa.events';\nexport const INSTANCE_ROUTE_PREFIX = 'instance'; // routing key: instance.{instanceName}.{eventType}\n\nexport async function initEventBus(rabbitUrl: string) {\n\tconnection = await amqp.connect(rabbitUrl);\n\tchannel = await connection.createChannel();\n\tawait channel.assertExchange(EXCHANGE_NAME, 'topic', { durable: true });\n\tconsole.log(`EventBus initialized with instance ID: ${getInstanceId()}`);\n}\n\nexport function getChannel(): amqp.Channel {\n\tif (!channel) throw new Error('Channel not initialized. Call initEventBus first.');\n\treturn channel;\n}\n\nexport async function publishEvent<TPayload extends Record<string, unknown>>(\n\tevent: BaseEvent<TPayload>\n): Promise<void> {\n\tconst ch = getChannel();\n\tconst messageBuffer = Buffer.from(JSON.stringify(event.payload));\n\tch.publish(EXCHANGE_NAME, event.eventId, messageBuffer, {\n\t\tcontentType: 'application/json',\n\t});\n\tconsole.log(`Published event [${event.eventId}] with payload`, event.payload);\n}\n\nexport async function subscribeToEvent(\n\teventId: string,\n\tonMessage: (payload: any) => Promise<void>\n): Promise<void> {\n\tconst ch = getChannel();\n\tconst queueName = `${eventId}-${getInstanceId()}`;\n\n\tawait ch.assertQueue(queueName, {\n\t\tdurable: false,\n\t\texclusive: true,\n\t\tautoDelete: true,\n\t});\n\n\tawait ch.bindQueue(queueName, EXCHANGE_NAME, eventId);\n\n\tawait ch.consume(\n\t\tqueueName,\n\t\tasync msg => {\n\t\t\tif (msg !== null) {\n\t\t\t\tconst payload = JSON.parse(msg.content.toString());\n\t\t\t\ttry {\n\t\t\t\t\tawait onMessage(payload);\n\t\t\t\t\tch.ack(msg);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconsole.error(`Error handling event [${eventId}] on instance [${getInstanceId()}]`, err);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{ noAck: false }\n\t);\n\n\tconsole.log(`Subscribed to event [${eventId}] on queue [${queueName}]`);\n}\n\nexport async function closeEventBus(): Promise<void> {\n\tif (channel) await channel.close();\n\tif (connection) await connection.close();\n\tconsole.log(`EventBus closed for instance [${getInstanceId()}]`);\n}"]}
@@ -18,7 +18,7 @@ const product_model_1 = require("./product.model");
18
18
  const zone_model_1 = require("./zone.model");
19
19
  const list_container_model_1 = require("./list-container.model");
20
20
  const _1 = require(".");
21
- const sortingOrderHooks_1 = require("../utilities/sortingOrderHooks");
21
+ const sorting_order_hooks_1 = require("../utilities/sorting-order.hooks");
22
22
  let Banner = class Banner extends defaultClasses_1.TimeStamps {
23
23
  title;
24
24
  image;
@@ -95,11 +95,11 @@ __decorate([
95
95
  exports.Banner = Banner = __decorate([
96
96
  (0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'banners' } }),
97
97
  (0, typegoose_1.pre)('save', async function (next) {
98
- await sortingOrderHooks_1.handlePreSaveForSortingWithStatus.call(this, _1.BannerModel, { itemType: this.itemType });
98
+ await sorting_order_hooks_1.handlePreSaveForSortingWithStatus.call(this, _1.BannerModel, { itemType: this.itemType });
99
99
  next();
100
100
  }),
101
101
  (0, typegoose_1.pre)('findOneAndUpdate', async function (next) {
102
- await sortingOrderHooks_1.handlePreUpdateForSortingWithStatus.call(this, _1.BannerModel, ['itemType']);
102
+ await sorting_order_hooks_1.handlePreUpdateForSortingWithStatus.call(this, _1.BannerModel, ['itemType']);
103
103
  next();
104
104
  }),
105
105
  (0, typegoose_1.index)({ title: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })
@@ -1 +1 @@
1
- {"version":3,"file":"banner.model.js","sourceRoot":"/","sources":["libraries/mongo/models/banner.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { index, modelOptions, pre, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport {\n\tBannerClickType,\n\tBannerLinkType,\n\tBannerUserType,\n\tItemType,\n\tStatus,\n\tUserAppSectionItemType,\n} from '../../../utilities/enum';\nimport { Shop } from './shop.model';\nimport { Product } from './product.model';\nimport { Zone } from './zone.model';\nimport { ListContainer } from './list-container.model';\nimport { BannerModel } from '.';\nimport { Query } from 'mongoose';\nimport {\n\thandlePreSaveForSortingWithStatus,\n\thandlePreUpdateForSortingWithStatus,\n} from '../utilities/sortingOrderHooks';\n\n@modelOptions({ schemaOptions: { collection: 'banners' } })\n@pre<Banner>('save', async function (next) {\n\tawait handlePreSaveForSortingWithStatus.call(this, BannerModel, { itemType: this.itemType });\n\n\tnext();\n})\n@pre<Banner>('findOneAndUpdate', async function (this: Query<any, Banner>, next) {\n\tawait handlePreUpdateForSortingWithStatus.call(this, BannerModel, ['itemType']);\n\n\tnext();\n})\n@index({ title: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })\nexport class Banner extends TimeStamps {\n\t@prop({ required: true, type: String, trim: true, maxlength: 50 })\n\tpublic title!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic image!: string;\n\n\t@prop({ required: true, type: String, enum: UserAppSectionItemType })\n\tpublic itemType!: UserAppSectionItemType;\n\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: String, enum: BannerUserType, default: BannerUserType.ALL })\n\tpublic visibility?: BannerUserType;\n\n\t@prop({ ref: () => Zone, default: [] })\n\tpublic zones?: Ref<Zone>[];\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isClickable?: boolean;\n\n\t@prop({ type: String, enum: BannerClickType })\n\tpublic clickType?: BannerClickType;\n\n\t@prop({ type: String, enum: BannerLinkType })\n\tpublic linkType?: BannerLinkType;\n\n\t@prop({ type: String, trim: true })\n\tpublic link?: string;\n\n\t@prop({ ref: () => Shop })\n\tpublic shop?: Ref<Shop>;\n\n\t@prop({ ref: () => Product })\n\tpublic product?: Ref<Product>;\n\n\t@prop({ ref: () => ListContainer })\n\tpublic listContainer?: Ref<ListContainer>;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
1
+ {"version":3,"file":"banner.model.js","sourceRoot":"/","sources":["libraries/mongo/models/banner.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { index, modelOptions, pre, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport {\n\tBannerClickType,\n\tBannerLinkType,\n\tBannerUserType,\n\tItemType,\n\tStatus,\n\tUserAppSectionItemType,\n} from '../../../utilities/enum';\nimport { Shop } from './shop.model';\nimport { Product } from './product.model';\nimport { Zone } from './zone.model';\nimport { ListContainer } from './list-container.model';\nimport { BannerModel } from '.';\nimport { Query } from 'mongoose';\nimport {\n\thandlePreSaveForSortingWithStatus,\n\thandlePreUpdateForSortingWithStatus,\n} from '../utilities/sorting-order.hooks';\n\n@modelOptions({ schemaOptions: { collection: 'banners' } })\n@pre<Banner>('save', async function (next) {\n\tawait handlePreSaveForSortingWithStatus.call(this, BannerModel, { itemType: this.itemType });\n\n\tnext();\n})\n@pre<Banner>('findOneAndUpdate', async function (this: Query<any, Banner>, next) {\n\tawait handlePreUpdateForSortingWithStatus.call(this, BannerModel, ['itemType']);\n\n\tnext();\n})\n@index({ title: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })\nexport class Banner extends TimeStamps {\n\t@prop({ required: true, type: String, trim: true, maxlength: 50 })\n\tpublic title!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic image!: string;\n\n\t@prop({ required: true, type: String, enum: UserAppSectionItemType })\n\tpublic itemType!: UserAppSectionItemType;\n\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: String, enum: BannerUserType, default: BannerUserType.ALL })\n\tpublic visibility?: BannerUserType;\n\n\t@prop({ ref: () => Zone, default: [] })\n\tpublic zones?: Ref<Zone>[];\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isClickable?: boolean;\n\n\t@prop({ type: String, enum: BannerClickType })\n\tpublic clickType?: BannerClickType;\n\n\t@prop({ type: String, enum: BannerLinkType })\n\tpublic linkType?: BannerLinkType;\n\n\t@prop({ type: String, trim: true })\n\tpublic link?: string;\n\n\t@prop({ ref: () => Shop })\n\tpublic shop?: Ref<Shop>;\n\n\t@prop({ ref: () => Product })\n\tpublic product?: Ref<Product>;\n\n\t@prop({ ref: () => ListContainer })\n\tpublic listContainer?: Ref<ListContainer>;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
@@ -14,7 +14,7 @@ const typegoose_1 = require("@typegoose/typegoose");
14
14
  const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
15
15
  const enum_1 = require("../../../utilities/enum");
16
16
  const _1 = require(".");
17
- const sortingOrderHooks_1 = require("../utilities/sortingOrderHooks");
17
+ const sorting_order_hooks_1 = require("../utilities/sorting-order.hooks");
18
18
  let CancellationReason = class CancellationReason extends defaultClasses_1.TimeStamps {
19
19
  reason;
20
20
  reasonType;
@@ -41,13 +41,13 @@ __decorate([
41
41
  exports.CancellationReason = CancellationReason = __decorate([
42
42
  (0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'cancellationReasons' } }),
43
43
  (0, typegoose_1.pre)('save', async function (next) {
44
- await sortingOrderHooks_1.handlePreSaveForSortingWithStatus.call(this, _1.CancellationReasonModel, {
44
+ await sorting_order_hooks_1.handlePreSaveForSortingWithStatus.call(this, _1.CancellationReasonModel, {
45
45
  reasonType: this.reasonType,
46
46
  });
47
47
  next();
48
48
  }),
49
49
  (0, typegoose_1.pre)('findOneAndUpdate', async function (next) {
50
- await sortingOrderHooks_1.handlePreUpdateForSortingWithStatus.call(this, _1.CancellationReasonModel, ['reasonType']);
50
+ await sorting_order_hooks_1.handlePreUpdateForSortingWithStatus.call(this, _1.CancellationReasonModel, ['reasonType']);
51
51
  next();
52
52
  }),
53
53
  (0, typegoose_1.index)({ reason: 1, reasonType: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })
@@ -1 +1 @@
1
- {"version":3,"file":"cancellation-reason.model.js","sourceRoot":"/","sources":["libraries/mongo/models/cancellation-reason.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAsE;AACtE,4EAAqE;AACrE,kDAA6E;AAE7E,wBAA4C;AAC5C,sEAGwC;AAgBjC,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,2BAAU;IAE1C,MAAM,CAAU;IAGhB,UAAU,CAA8B;IAGxC,MAAM,CAAU;IAGhB,YAAY,CAAU;CAC7B,CAAA;AAZY,gDAAkB;AAEvB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACF;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,iCAA0B,EAAE,CAAC;;sDACZ;AAGxC;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,aAAM,EAAE,CAAC;;kDAChB;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;wDACM;6BAXjB,kBAAkB;IAd9B,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,qBAAqB,EAAE,EAAE,CAAC;IACtE,IAAA,eAAG,EAAqB,MAAM,EAAE,KAAK,WAAW,IAAI;QACpD,MAAM,qDAAiC,CAAC,IAAI,CAAC,IAAI,EAAE,0BAAuB,EAAE;YAC3E,UAAU,EAAE,IAAI,CAAC,UAAU;SAC3B,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IACD,IAAA,eAAG,EAAqB,kBAAkB,EAAE,KAAK,WAAiD,IAAI;QACtG,MAAM,uDAAmC,CAAC,IAAI,CAAC,IAAI,EAAE,0BAAuB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAE9F,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IACD,IAAA,iBAAK,EAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;GACvF,kBAAkB,CAY9B","sourcesContent":["import { modelOptions, prop, pre, index } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { CancellationReasonTypeEnum, Status } from '../../../utilities/enum';\nimport { Query } from 'mongoose';\nimport { CancellationReasonModel } from '.';\nimport {\n\thandlePreSaveForSortingWithStatus,\n\thandlePreUpdateForSortingWithStatus,\n} from '../utilities/sortingOrderHooks';\n\n@modelOptions({ schemaOptions: { collection: 'cancellationReasons' } })\n@pre<CancellationReason>('save', async function (next) {\n\tawait handlePreSaveForSortingWithStatus.call(this, CancellationReasonModel, {\n\t\treasonType: this.reasonType,\n\t});\n\n\tnext();\n})\n@pre<CancellationReason>('findOneAndUpdate', async function (this: Query<any, CancellationReason>, next) {\n\tawait handlePreUpdateForSortingWithStatus.call(this, CancellationReasonModel, ['reasonType']);\n\n\tnext();\n})\n@index({ reason: 1, reasonType: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })\nexport class CancellationReason extends TimeStamps {\n\t@prop({ required: true })\n\tpublic reason!: string;\n\n\t@prop({ required: true, enum: CancellationReasonTypeEnum })\n\tpublic reasonType!: CancellationReasonTypeEnum;\n\n\t@prop({ required: true, enum: Status })\n\tpublic status!: Status;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
1
+ {"version":3,"file":"cancellation-reason.model.js","sourceRoot":"/","sources":["libraries/mongo/models/cancellation-reason.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAsE;AACtE,4EAAqE;AACrE,kDAA6E;AAE7E,wBAA4C;AAC5C,0EAG0C;AAgBnC,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,2BAAU;IAE1C,MAAM,CAAU;IAGhB,UAAU,CAA8B;IAGxC,MAAM,CAAU;IAGhB,YAAY,CAAU;CAC7B,CAAA;AAZY,gDAAkB;AAEvB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACF;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,iCAA0B,EAAE,CAAC;;sDACZ;AAGxC;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,aAAM,EAAE,CAAC;;kDAChB;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;wDACM;6BAXjB,kBAAkB;IAd9B,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,qBAAqB,EAAE,EAAE,CAAC;IACtE,IAAA,eAAG,EAAqB,MAAM,EAAE,KAAK,WAAW,IAAI;QACpD,MAAM,uDAAiC,CAAC,IAAI,CAAC,IAAI,EAAE,0BAAuB,EAAE;YAC3E,UAAU,EAAE,IAAI,CAAC,UAAU;SAC3B,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IACD,IAAA,eAAG,EAAqB,kBAAkB,EAAE,KAAK,WAAiD,IAAI;QACtG,MAAM,yDAAmC,CAAC,IAAI,CAAC,IAAI,EAAE,0BAAuB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAE9F,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IACD,IAAA,iBAAK,EAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;GACvF,kBAAkB,CAY9B","sourcesContent":["import { modelOptions, prop, pre, index } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { CancellationReasonTypeEnum, Status } from '../../../utilities/enum';\nimport { Query } from 'mongoose';\nimport { CancellationReasonModel } from '.';\nimport {\n\thandlePreSaveForSortingWithStatus,\n\thandlePreUpdateForSortingWithStatus,\n} from '../utilities/sorting-order.hooks';\n\n@modelOptions({ schemaOptions: { collection: 'cancellationReasons' } })\n@pre<CancellationReason>('save', async function (next) {\n\tawait handlePreSaveForSortingWithStatus.call(this, CancellationReasonModel, {\n\t\treasonType: this.reasonType,\n\t});\n\n\tnext();\n})\n@pre<CancellationReason>('findOneAndUpdate', async function (this: Query<any, CancellationReason>, next) {\n\tawait handlePreUpdateForSortingWithStatus.call(this, CancellationReasonModel, ['reasonType']);\n\n\tnext();\n})\n@index({ reason: 1, reasonType: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })\nexport class CancellationReason extends TimeStamps {\n\t@prop({ required: true })\n\tpublic reason!: string;\n\n\t@prop({ required: true, enum: CancellationReasonTypeEnum })\n\tpublic reasonType!: CancellationReasonTypeEnum;\n\n\t@prop({ required: true, enum: Status })\n\tpublic status!: Status;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
@@ -18,7 +18,7 @@ const enum_1 = require("../../../utilities/enum");
18
18
  const address_model_1 = require("./shared/address.model");
19
19
  const user_model_1 = require("./user.model");
20
20
  const line_item_model_1 = require("./line-item.model");
21
- const uniqueIdHooks_1 = require("../utilities/uniqueIdHooks");
21
+ const unique_id_hooks_1 = require("../utilities/unique-id.hooks");
22
22
  const _1 = require(".");
23
23
  const charge_model_1 = require("./embedded/charge.model");
24
24
  class ShopSnap {
@@ -178,7 +178,7 @@ exports.Cart = Cart = __decorate([
178
178
  },
179
179
  }),
180
180
  (0, typegoose_1.pre)('save', async function (next) {
181
- await uniqueIdHooks_1.handlePreSaveForUniqueId.call(this, _1.CartModel, 'cartId');
181
+ await unique_id_hooks_1.handlePreSaveForUniqueId.call(this, _1.CartModel, 'cartId');
182
182
  next();
183
183
  })
184
184
  ], Cart);
@@ -1 +1 @@
1
- {"version":3,"file":"cart.model.js","sourceRoot":"/","sources":["libraries/mongo/models/cart.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { prop, Ref, index, modelOptions, Severity, pre } from '@typegoose/typegoose';\nimport { Shop } from './shop.model';\nimport { Parent } from './parent.model';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { CartStatus, ChargeType, ItemType, PaymentPreference } from '../../../utilities/enum';\nimport { Address, RegularOrderAddress } from './shared/address.model';\nimport { Coupon } from './coupon.model';\nimport { User } from './user.model';\nimport { LineItem } from './line-item.model';\nimport { handlePreSaveForUniqueId } from '../utilities/uniqueIdHooks';\nimport { CartModel } from '.';\nimport { Charge } from './embedded/charge.model';\n\nexport class ShopSnap {\n\t@prop({ required: true, type: String })\n\tpublic name!: string;\n\n\t@prop({ required: true, type: String, enum: ChargeType, default: ChargeType.CUSTOM })\n\tpublic chargeType!: ChargeType;\n\n\t@prop({ required: true, type: Charge })\n\tpublic charge!: Charge;\n\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType!: ItemType;\n\n\t@prop({ required: true, type: Address })\n\tpublic address!: Address;\n\n\t@prop({ type: String })\n\tpublic logo?: string;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isShopDelivery?: boolean;\n\n\t@prop({ type: Number, default: 10 })\n\tpublic defaultPreparationTime?: number;\n}\n\n@modelOptions({\n\tschemaOptions: {\n\t\tcollection: 'carts',\n\t\ttoJSON: { virtuals: true },\n\t\ttoObject: { virtuals: true },\n\t},\n\toptions: {\n\t\tallowMixed: Severity.ALLOW,\n\t},\n})\n@index({ user: 1 })\n@index({ shop: 1 })\n@index({ status: 1 })\n@index(\n\t{ user: 1, shop: 1 },\n\t{\n\t\tunique: true,\n\t\tpartialFilterExpression: {\n\t\t\tstatus: { $in: [CartStatus.ACTIVE, CartStatus.LOCKED] },\n\t\t\tdeletedAt: null,\n\t\t},\n\t}\n)\n@pre<Cart>('save', async function (next) {\n\t// Generate unique id if not exists\n\tawait handlePreSaveForUniqueId.call(this, CartModel, 'cartId');\n\n\tnext();\n})\nexport class Cart extends TimeStamps {\n\t@prop({ type: String, unique: true, index: true })\n\tpublic cartId: string;\n\n\t@prop({ trim: true, maxlength: 100 })\n\tpublic title?: string;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic exchangeRate?: number;\n\n\t@prop({ type: Number, default: 0.01 })\n\tpublic roundTo?: number;\n\n\t@prop({ type: Number, default: 1000 })\n\tpublic secondaryRoundTo?: number;\n\n\t@prop({ required: true, ref: () => User })\n\tpublic user!: Ref<User>;\n\n\t@prop({ required: true, ref: () => Parent })\n\tpublic parent: Ref<Parent>;\n\n\t@prop({ required: true, ref: () => Shop })\n\tpublic shop!: Ref<Shop>;\n\n\t@prop({ type: ShopSnap })\n\tpublic shopSnap?: ShopSnap;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isGroupOrder?: boolean;\n\n\t@prop({ type: String, enum: PaymentPreference })\n\tpublic paymentPreference?: PaymentPreference;\n\n\t@prop({ type: Number, default: Infinity })\n\tpublic spendingLimitForGuest?: number;\n\n\t@prop({ type: Number, default: Infinity })\n\tpublic secondarySpendingLimitForGuest?: number;\n\n\t@prop({\n\t\tenum: CartStatus,\n\t\ttype: String,\n\t\tdefault: CartStatus.ACTIVE,\n\t\trequired: true,\n\t})\n\tpublic status!: CartStatus;\n\n\t@prop({ type: String, trim: true })\n\tpublic couponCode?: string;\n\n\t@prop({\n\t\tref: () => LineItem,\n\t\tforeignField: 'cart',\n\t\tlocalField: '_id',\n\t})\n\tpublic lineItems: Ref<LineItem>[];\n}\n"]}
1
+ {"version":3,"file":"cart.model.js","sourceRoot":"/","sources":["libraries/mongo/models/cart.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { prop, Ref, index, modelOptions, Severity, pre } from '@typegoose/typegoose';\nimport { Shop } from './shop.model';\nimport { Parent } from './parent.model';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { CartStatus, ChargeType, ItemType, PaymentPreference } from '../../../utilities/enum';\nimport { Address, RegularOrderAddress } from './shared/address.model';\nimport { Coupon } from './coupon.model';\nimport { User } from './user.model';\nimport { LineItem } from './line-item.model';\nimport { handlePreSaveForUniqueId } from '../utilities/unique-id.hooks';\nimport { CartModel } from '.';\nimport { Charge } from './embedded/charge.model';\n\nexport class ShopSnap {\n\t@prop({ required: true, type: String })\n\tpublic name!: string;\n\n\t@prop({ required: true, type: String, enum: ChargeType, default: ChargeType.CUSTOM })\n\tpublic chargeType!: ChargeType;\n\n\t@prop({ required: true, type: Charge })\n\tpublic charge!: Charge;\n\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType!: ItemType;\n\n\t@prop({ required: true, type: Address })\n\tpublic address!: Address;\n\n\t@prop({ type: String })\n\tpublic logo?: string;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isShopDelivery?: boolean;\n\n\t@prop({ type: Number, default: 10 })\n\tpublic defaultPreparationTime?: number;\n}\n\n@modelOptions({\n\tschemaOptions: {\n\t\tcollection: 'carts',\n\t\ttoJSON: { virtuals: true },\n\t\ttoObject: { virtuals: true },\n\t},\n\toptions: {\n\t\tallowMixed: Severity.ALLOW,\n\t},\n})\n@index({ user: 1 })\n@index({ shop: 1 })\n@index({ status: 1 })\n@index(\n\t{ user: 1, shop: 1 },\n\t{\n\t\tunique: true,\n\t\tpartialFilterExpression: {\n\t\t\tstatus: { $in: [CartStatus.ACTIVE, CartStatus.LOCKED] },\n\t\t\tdeletedAt: null,\n\t\t},\n\t}\n)\n@pre<Cart>('save', async function (next) {\n\t// Generate unique id if not exists\n\tawait handlePreSaveForUniqueId.call(this, CartModel, 'cartId');\n\n\tnext();\n})\nexport class Cart extends TimeStamps {\n\t@prop({ type: String, unique: true, index: true })\n\tpublic cartId: string;\n\n\t@prop({ trim: true, maxlength: 100 })\n\tpublic title?: string;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic exchangeRate?: number;\n\n\t@prop({ type: Number, default: 0.01 })\n\tpublic roundTo?: number;\n\n\t@prop({ type: Number, default: 1000 })\n\tpublic secondaryRoundTo?: number;\n\n\t@prop({ required: true, ref: () => User })\n\tpublic user!: Ref<User>;\n\n\t@prop({ required: true, ref: () => Parent })\n\tpublic parent: Ref<Parent>;\n\n\t@prop({ required: true, ref: () => Shop })\n\tpublic shop!: Ref<Shop>;\n\n\t@prop({ type: ShopSnap })\n\tpublic shopSnap?: ShopSnap;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isGroupOrder?: boolean;\n\n\t@prop({ type: String, enum: PaymentPreference })\n\tpublic paymentPreference?: PaymentPreference;\n\n\t@prop({ type: Number, default: Infinity })\n\tpublic spendingLimitForGuest?: number;\n\n\t@prop({ type: Number, default: Infinity })\n\tpublic secondarySpendingLimitForGuest?: number;\n\n\t@prop({\n\t\tenum: CartStatus,\n\t\ttype: String,\n\t\tdefault: CartStatus.ACTIVE,\n\t\trequired: true,\n\t})\n\tpublic status!: CartStatus;\n\n\t@prop({ type: String, trim: true })\n\tpublic couponCode?: string;\n\n\t@prop({\n\t\tref: () => LineItem,\n\t\tforeignField: 'cart',\n\t\tlocalField: '_id',\n\t})\n\tpublic lineItems: Ref<LineItem>[];\n}\n"]}
@@ -13,6 +13,7 @@ exports.Category = void 0;
13
13
  const typegoose_1 = require("@typegoose/typegoose");
14
14
  const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
15
15
  const enum_1 = require("../../../utilities/enum");
16
+ const normalize_field_plugin_1 = require("../plugins/normalize-field.plugin");
16
17
  let Category = class Category extends defaultClasses_1.TimeStamps {
17
18
  name;
18
19
  nameNormalized;
@@ -61,24 +62,6 @@ exports.Category = Category = __decorate([
61
62
  deletedAt: null,
62
63
  },
63
64
  }),
64
- (0, typegoose_1.pre)('save', function (next) {
65
- if (this.name) {
66
- this.nameNormalized = this.name.toLowerCase();
67
- }
68
- next();
69
- }),
70
- (0, typegoose_1.pre)('findOneAndUpdate', function (next) {
71
- const update = this.getUpdate();
72
- if (update?.name) {
73
- update.nameNormalized = update.name.toLowerCase();
74
- }
75
- if (update?.$set?.name) {
76
- update.$set.nameNormalized = update.$set.name.toLowerCase();
77
- }
78
- if (update?.$setOnInsert?.name) {
79
- update.$setOnInsert.nameNormalized = update.$setOnInsert.name.toLowerCase();
80
- }
81
- next();
82
- })
65
+ (0, typegoose_1.plugin)(normalize_field_plugin_1.normalizeFieldPlugin, { field: 'name' })
83
66
  ], Category);
84
67
  //# sourceMappingURL=category.model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"category.model.js","sourceRoot":"/","sources":["libraries/mongo/models/category.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA2E;AAC3E,4EAAqE;AACrE,kDAA2D;AAkCpD,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,2BAAU;IAEhC,IAAI,CAAU;IAGd,cAAc,CAAU;IAGxB,KAAK,CAAU;IAGf,QAAQ,CAAY;IAGpB,cAAc,CAAiB;IAG/B,MAAM,CAAU;IAGhB,IAAI,CAAU;CACrB,CAAA;AArBY,4BAAQ;AAEb;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;;sCAC7C;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;;gDACpC;AAGxB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;uCACD;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAQ,EAAE,CAAC;;0CAC5B;AAGpB;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;;gDACQ;AAG/B;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;wCACtC;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;;sCAClB;mBApBT,QAAQ;IA/BpB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;IAC7D,IAAA,iBAAK,EACL,EAAE,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAClC;QACC,MAAM,EAAE,IAAI;QACZ,uBAAuB,EAAE;YACxB,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,eAAQ,CAAC,OAAO,EAAE,eAAQ,CAAC,QAAQ,CAAC,EAAE;YACxD,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,IAAI;SACf;KACD,CACD;IACA,IAAA,eAAG,EAAW,MAAM,EAAE,UAAU,IAAI;QACpC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/C,CAAC;QACD,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IACD,IAAA,eAAG,EAAW,kBAAkB,EAAE,UAAsC,IAAI;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAS,CAAC;QACvC,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnD,CAAC;QACD,IAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7D,CAAC;QACD,IAAI,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YAChC,MAAM,CAAC,YAAY,CAAC,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7E,CAAC;QACD,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;GACW,QAAQ,CAqBpB","sourcesContent":["import { index, modelOptions, pre, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { ItemType, Status } from '../../../utilities/enum';\nimport { Query } from 'mongoose';\n\n@modelOptions({ schemaOptions: { collection: 'categories' } })\n@index(\n\t{ nameNormalized: 1, itemType: 1 },\n\t{\n\t\tunique: true,\n\t\tpartialFilterExpression: {\n\t\t\titemType: { $in: [ItemType.GROCERY, ItemType.PHARMACY] },\n\t\t\tparentCategory: null,\n\t\t\tdeletedAt: null,\n\t\t},\n\t}\n)\n@pre<Category>('save', function (next) {\n\tif (this.name) {\n\t\tthis.nameNormalized = this.name.toLowerCase();\n\t}\n\tnext();\n})\n@pre<Category>('findOneAndUpdate', function (this: Query<any, Category>, next) {\n\tconst update = this.getUpdate() as any;\n\tif (update?.name) {\n\t\tupdate.nameNormalized = update.name.toLowerCase();\n\t}\n\tif (update?.$set?.name) {\n\t\tupdate.$set.nameNormalized = update.$set.name.toLowerCase();\n\t}\n\tif (update?.$setOnInsert?.name) {\n\t\tupdate.$setOnInsert.nameNormalized = update.$setOnInsert.name.toLowerCase();\n\t}\n\tnext();\n})\nexport class Category extends TimeStamps {\n\t@prop({ required: true, type: String, trim: true, maxlength: 30 })\n\tpublic name!: string;\n\n\t@prop({ type: String, trim: true, lowercase: true, select: false })\n\tpublic nameNormalized?: string;\n\n\t@prop({ type: String })\n\tpublic image?: string;\n\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType!: ItemType;\n\n\t@prop({ ref: () => Category })\n\tpublic parentCategory?: Ref<Category>;\n\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: String, maxlength: 250 })\n\tpublic note?: string;\n}\n"]}
1
+ {"version":3,"file":"category.model.js","sourceRoot":"/","sources":["libraries/mongo/models/category.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA8E;AAC9E,4EAAqE;AACrE,kDAA2D;AAC3D,8EAAyE;AAelE,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,2BAAU;IAEhC,IAAI,CAAU;IAGd,cAAc,CAAU;IAGxB,KAAK,CAAU;IAGf,QAAQ,CAAY;IAGpB,cAAc,CAAiB;IAG/B,MAAM,CAAU;IAGhB,IAAI,CAAU;CACrB,CAAA;AArBY,4BAAQ;AAEb;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;;sCAC7C;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;;gDACpC;AAGxB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;uCACD;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAQ,EAAE,CAAC;;0CAC5B;AAGpB;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;;gDACQ;AAG/B;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;wCACtC;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;;sCAClB;mBApBT,QAAQ;IAbpB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;IAC7D,IAAA,iBAAK,EACL,EAAE,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAClC;QACC,MAAM,EAAE,IAAI;QACZ,uBAAuB,EAAE;YACxB,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,eAAQ,CAAC,OAAO,EAAE,eAAQ,CAAC,QAAQ,CAAC,EAAE;YACxD,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,IAAI;SACf;KACD,CACD;IACA,IAAA,kBAAM,EAAC,6CAAoB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;GACnC,QAAQ,CAqBpB","sourcesContent":["import { index, modelOptions, plugin, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { ItemType, Status } from '../../../utilities/enum';\nimport { normalizeFieldPlugin } from '../plugins/normalize-field.plugin';\n\n@modelOptions({ schemaOptions: { collection: 'categories' } })\n@index(\n\t{ nameNormalized: 1, itemType: 1 },\n\t{\n\t\tunique: true,\n\t\tpartialFilterExpression: {\n\t\t\titemType: { $in: [ItemType.GROCERY, ItemType.PHARMACY] },\n\t\t\tparentCategory: null,\n\t\t\tdeletedAt: null,\n\t\t},\n\t}\n)\n@plugin(normalizeFieldPlugin, { field: 'name' })\nexport class Category extends TimeStamps {\n\t@prop({ required: true, type: String, trim: true, maxlength: 30 })\n\tpublic name!: string;\n\n\t@prop({ type: String, trim: true, lowercase: true, select: false })\n\tpublic nameNormalized?: string;\n\n\t@prop({ type: String })\n\tpublic image?: string;\n\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType!: ItemType;\n\n\t@prop({ ref: () => Category })\n\tpublic parentCategory?: Ref<Category>;\n\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: String, maxlength: 250 })\n\tpublic note?: string;\n}\n"]}
@@ -15,7 +15,7 @@ const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
15
15
  const enum_1 = require("../../../utilities/enum");
16
16
  const shop_model_1 = require("./shop.model");
17
17
  const _1 = require(".");
18
- const sortingOrderHooks_1 = require("../utilities/sortingOrderHooks");
18
+ const sorting_order_hooks_1 = require("../utilities/sorting-order.hooks");
19
19
  let Dish = class Dish extends defaultClasses_1.TimeStamps {
20
20
  shop;
21
21
  name;
@@ -83,7 +83,7 @@ exports.Dish = Dish = __decorate([
83
83
  (0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'dishes' } }),
84
84
  (0, typegoose_1.Index)({ shop: 1, deletedAt: 1 }),
85
85
  (0, typegoose_1.pre)('save', async function (next) {
86
- await sortingOrderHooks_1.handlePreSaveForSorting.call(this, _1.DishModel, {
86
+ await sorting_order_hooks_1.handlePreSaveForSorting.call(this, _1.DishModel, {
87
87
  shop: this.shop,
88
88
  });
89
89
  next();
@@ -1 +1 @@
1
- {"version":3,"file":"dish.model.js","sourceRoot":"/","sources":["libraries/mongo/models/dish.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA2E;AAC3E,4EAAqE;AACrE,kDAAuD;AACvD,6CAAoC;AACpC,wBAA8B;AAC9B,sEAAyE;AAYlE,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,2BAAU;IAE5B,IAAI,CAAa;IAGjB,IAAI,CAAU;IAGd,KAAK,CAAU;IAGf,WAAW,CAAU;IAGrB,QAAQ,CAAgB;IAGxB,WAAW,CAAY;IAGvB,QAAQ,CAAU;IAGlB,GAAG,CAAU;IAGb,MAAM,CAAU;IAGhB,OAAO,CAAU;IAGjB,iBAAiB,CAAY;IAG7B,YAAY,CAAU;CAC7B,CAAA;AApCY,oBAAI;AAET;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAI,EAAE,CAAC;;kCAClB;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kCAClB;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mCACD;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yCACK;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAY,EAAE,CAAC;;sCAC5B;AAGxB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;yCACd;AAGvB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;sCACd;AAGlB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;iCACnB;AAGb;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;oCAChB;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qCACf;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;;+CACX;AAG7B;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;0CACM;eAnCjB,IAAI;IAVhB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC;IACzD,IAAA,iBAAK,EAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAChC,IAAA,eAAG,EAAO,MAAM,EAAE,KAAK,WAAW,IAAI;QAEtC,MAAM,2CAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAS,EAAE;YACnD,IAAI,EAAE,IAAI,CAAC,IAAI;SACf,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;GACW,IAAI,CAoChB","sourcesContent":["import { Index, modelOptions, pre, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { DishCategory } from '../../../utilities/enum';\nimport { Shop } from './shop.model';\nimport { DishModel } from '.';\nimport { handlePreSaveForSorting } from '../utilities/sortingOrderHooks';\n\n@modelOptions({ schemaOptions: { collection: 'dishes' } })\n@Index({ shop: 1, deletedAt: 1 })\n@pre<Dish>('save', async function (next) {\n\t// Set sortingOrder\n\tawait handlePreSaveForSorting.call(this, DishModel, {\n\t\tshop: this.shop,\n\t});\n\n\tnext();\n})\nexport class Dish extends TimeStamps {\n\t@prop({ required: true, ref: () => Shop })\n\tpublic shop!: Ref<Shop>;\n\n\t@prop({ required: true, type: String })\n\tpublic name!: string;\n\n\t@prop({ type: String })\n\tpublic image?: string;\n\n\t@prop({ type: String })\n\tpublic description?: string;\n\n\t@prop({ required: true, type: String, enum: DishCategory })\n\tpublic category!: DishCategory;\n\n\t@prop({ type: () => [String], default: [] })\n\tpublic ingredients?: string[];\n\n\t@prop({ required: true, type: Number })\n\tpublic calories!: number;\n\n\t@prop({ required: true, type: Number })\n\tpublic fat!: number;\n\n\t@prop({ required: true, type: Number })\n\tpublic fibers!: number;\n\n\t@prop({ required: true, type: Number })\n\tpublic protein!: number;\n\n\t@prop({ required: true, type: () => [Number] })\n\tpublic portionPercentage!: number[];\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
1
+ {"version":3,"file":"dish.model.js","sourceRoot":"/","sources":["libraries/mongo/models/dish.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA2E;AAC3E,4EAAqE;AACrE,kDAAuD;AACvD,6CAAoC;AACpC,wBAA8B;AAC9B,0EAA2E;AAYpE,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,2BAAU;IAE5B,IAAI,CAAa;IAGjB,IAAI,CAAU;IAGd,KAAK,CAAU;IAGf,WAAW,CAAU;IAGrB,QAAQ,CAAgB;IAGxB,WAAW,CAAY;IAGvB,QAAQ,CAAU;IAGlB,GAAG,CAAU;IAGb,MAAM,CAAU;IAGhB,OAAO,CAAU;IAGjB,iBAAiB,CAAY;IAG7B,YAAY,CAAU;CAC7B,CAAA;AApCY,oBAAI;AAET;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAI,EAAE,CAAC;;kCAClB;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kCAClB;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mCACD;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yCACK;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAY,EAAE,CAAC;;sCAC5B;AAGxB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;yCACd;AAGvB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;sCACd;AAGlB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;iCACnB;AAGb;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;oCAChB;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qCACf;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;;+CACX;AAG7B;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;0CACM;eAnCjB,IAAI;IAVhB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC;IACzD,IAAA,iBAAK,EAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAChC,IAAA,eAAG,EAAO,MAAM,EAAE,KAAK,WAAW,IAAI;QAEtC,MAAM,6CAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAS,EAAE;YACnD,IAAI,EAAE,IAAI,CAAC,IAAI;SACf,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;GACW,IAAI,CAoChB","sourcesContent":["import { Index, modelOptions, pre, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { DishCategory } from '../../../utilities/enum';\nimport { Shop } from './shop.model';\nimport { DishModel } from '.';\nimport { handlePreSaveForSorting } from '../utilities/sorting-order.hooks';\n\n@modelOptions({ schemaOptions: { collection: 'dishes' } })\n@Index({ shop: 1, deletedAt: 1 })\n@pre<Dish>('save', async function (next) {\n\t// Set sortingOrder\n\tawait handlePreSaveForSorting.call(this, DishModel, {\n\t\tshop: this.shop,\n\t});\n\n\tnext();\n})\nexport class Dish extends TimeStamps {\n\t@prop({ required: true, ref: () => Shop })\n\tpublic shop!: Ref<Shop>;\n\n\t@prop({ required: true, type: String })\n\tpublic name!: string;\n\n\t@prop({ type: String })\n\tpublic image?: string;\n\n\t@prop({ type: String })\n\tpublic description?: string;\n\n\t@prop({ required: true, type: String, enum: DishCategory })\n\tpublic category!: DishCategory;\n\n\t@prop({ type: () => [String], default: [] })\n\tpublic ingredients?: string[];\n\n\t@prop({ required: true, type: Number })\n\tpublic calories!: number;\n\n\t@prop({ required: true, type: Number })\n\tpublic fat!: number;\n\n\t@prop({ required: true, type: Number })\n\tpublic fibers!: number;\n\n\t@prop({ required: true, type: Number })\n\tpublic protein!: number;\n\n\t@prop({ required: true, type: () => [Number] })\n\tpublic portionPercentage!: number[];\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
@@ -14,7 +14,7 @@ const typegoose_1 = require("@typegoose/typegoose");
14
14
  const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
15
15
  const enum_1 = require("../../../utilities/enum");
16
16
  const _1 = require(".");
17
- const sortingOrderHooks_1 = require("../utilities/sortingOrderHooks");
17
+ const sorting_order_hooks_1 = require("../utilities/sorting-order.hooks");
18
18
  let Faq = class Faq extends defaultClasses_1.TimeStamps {
19
19
  question;
20
20
  answer;
@@ -46,7 +46,7 @@ __decorate([
46
46
  exports.Faq = Faq = __decorate([
47
47
  (0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'faqs' } }),
48
48
  (0, typegoose_1.pre)('save', async function (next) {
49
- await sortingOrderHooks_1.handlePreSaveForSorting.call(this, _1.FaqModel);
49
+ await sorting_order_hooks_1.handlePreSaveForSorting.call(this, _1.FaqModel);
50
50
  next();
51
51
  })
52
52
  ], Faq);
@@ -1 +1 @@
1
- {"version":3,"file":"faq.model.js","sourceRoot":"/","sources":["libraries/mongo/models/faq.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA+D;AAC/D,4EAAqE;AACrE,kDAAiE;AACjE,wBAA6B;AAC7B,sEAAyE;AASlE,IAAM,GAAG,GAAT,MAAM,GAAI,SAAQ,2BAAU;IAE3B,QAAQ,CAAU;IAGlB,MAAM,CAAU;IAGhB,WAAW,CAAkB;IAG7B,MAAM,CAAU;IAGhB,YAAY,CAAU;CAC7B,CAAA;AAfY,kBAAG;AAER;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qCACd;AAGlB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mCAChB;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,qBAAc,EAAE,CAAC;;wCACX;AAG7B;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;mCACxB;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yCACM;cAdjB,GAAG;IAPf,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;IACvD,IAAA,eAAG,EAAM,MAAM,EAAE,KAAK,WAAW,IAAI;QAErC,MAAM,2CAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAQ,CAAC,CAAC;QAEnD,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;GACW,GAAG,CAef","sourcesContent":["import { modelOptions, pre, prop } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { FaqAccountType, Status } from '../../../utilities/enum';\nimport { FaqModel } from '.';\nimport { handlePreSaveForSorting } from '../utilities/sortingOrderHooks';\n\n@modelOptions({ schemaOptions: { collection: 'faqs' } })\n@pre<Faq>('save', async function (next) {\n\t// Set sortingOrder\n\tawait handlePreSaveForSorting.call(this, FaqModel);\n\n\tnext();\n})\nexport class Faq extends TimeStamps {\n\t@prop({ required: true, type: String })\n\tpublic question!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic answer!: string;\n\n\t@prop({ required: true, enum: FaqAccountType })\n\tpublic accountType!: FaqAccountType;\n\n\t@prop({ enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
1
+ {"version":3,"file":"faq.model.js","sourceRoot":"/","sources":["libraries/mongo/models/faq.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA+D;AAC/D,4EAAqE;AACrE,kDAAiE;AACjE,wBAA6B;AAC7B,0EAA2E;AASpE,IAAM,GAAG,GAAT,MAAM,GAAI,SAAQ,2BAAU;IAE3B,QAAQ,CAAU;IAGlB,MAAM,CAAU;IAGhB,WAAW,CAAkB;IAG7B,MAAM,CAAU;IAGhB,YAAY,CAAU;CAC7B,CAAA;AAfY,kBAAG;AAER;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qCACd;AAGlB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mCAChB;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,qBAAc,EAAE,CAAC;;wCACX;AAG7B;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;mCACxB;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yCACM;cAdjB,GAAG;IAPf,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;IACvD,IAAA,eAAG,EAAM,MAAM,EAAE,KAAK,WAAW,IAAI;QAErC,MAAM,6CAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAQ,CAAC,CAAC;QAEnD,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;GACW,GAAG,CAef","sourcesContent":["import { modelOptions, pre, prop } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { FaqAccountType, Status } from '../../../utilities/enum';\nimport { FaqModel } from '.';\nimport { handlePreSaveForSorting } from '../utilities/sorting-order.hooks';\n\n@modelOptions({ schemaOptions: { collection: 'faqs' } })\n@pre<Faq>('save', async function (next) {\n\t// Set sortingOrder\n\tawait handlePreSaveForSorting.call(this, FaqModel);\n\n\tnext();\n})\nexport class Faq extends TimeStamps {\n\t@prop({ required: true, type: String })\n\tpublic question!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic answer!: string;\n\n\t@prop({ required: true, enum: FaqAccountType })\n\tpublic accountType!: FaqAccountType;\n\n\t@prop({ enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
@@ -14,7 +14,7 @@ const typegoose_1 = require("@typegoose/typegoose");
14
14
  const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
15
15
  const enum_1 = require("../../../utilities/enum");
16
16
  const _1 = require(".");
17
- const sortingOrderHooks_1 = require("../utilities/sortingOrderHooks");
17
+ const sorting_order_hooks_1 = require("../utilities/sorting-order.hooks");
18
18
  let FilterContainer = class FilterContainer extends defaultClasses_1.TimeStamps {
19
19
  name;
20
20
  deals;
@@ -52,11 +52,11 @@ exports.FilterContainer = FilterContainer = __decorate([
52
52
  (0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'filterContainers' } }),
53
53
  (0, typegoose_1.Index)({ itemType: 1, deletedAt: 1 }),
54
54
  (0, typegoose_1.pre)('save', async function (next) {
55
- await sortingOrderHooks_1.handlePreSaveForSortingWithStatus.call(this, _1.FilterContainerModel, { itemType: this.itemType });
55
+ await sorting_order_hooks_1.handlePreSaveForSortingWithStatus.call(this, _1.FilterContainerModel, { itemType: this.itemType });
56
56
  next();
57
57
  }),
58
58
  (0, typegoose_1.pre)('findOneAndUpdate', async function (next) {
59
- await sortingOrderHooks_1.handlePreUpdateForSortingWithStatus.call(this, _1.FilterContainerModel, ['itemType']);
59
+ await sorting_order_hooks_1.handlePreUpdateForSortingWithStatus.call(this, _1.FilterContainerModel, ['itemType']);
60
60
  next();
61
61
  })
62
62
  ], FilterContainer);
@@ -1 +1 @@
1
- {"version":3,"file":"filter-container.model.js","sourceRoot":"/","sources":["libraries/mongo/models/filter-container.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAsE;AACtE,4EAAqE;AACrE,kDAAyE;AACzE,wBAAyC;AAEzC,sEAGwC;AAcjC,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,2BAAU;IAEvC,IAAI,CAAU;IAGd,KAAK,CAAY;IAGjB,QAAQ,CAA0B;IAGlC,MAAM,CAAU;IAGhB,SAAS,CAAW;IAGpB,YAAY,CAAU;CAC7B,CAAA;AAlBY,0CAAe;AAEpB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;6CAClB;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;;8CACjB;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6BAAsB,EAAE,CAAC;;iDACZ;AAGlC;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;+CACtC;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;kDACZ;AAGpB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qDACM;0BAjBjB,eAAe;IAZ3B,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,CAAC;IACnE,IAAA,iBAAK,EAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACpC,IAAA,eAAG,EAAkB,MAAM,EAAE,KAAK,WAAW,IAAI;QACjD,MAAM,qDAAiC,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEtG,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IACD,IAAA,eAAG,EAAkB,kBAAkB,EAAE,KAAK,WAA8C,IAAI;QAChG,MAAM,uDAAmC,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAoB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAEzF,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;GACW,eAAe,CAkB3B","sourcesContent":["import { Index, modelOptions, pre, prop } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { Status, UserAppSectionItemType } from '../../../utilities/enum';\nimport { FilterContainerModel } from '.';\nimport { Query } from 'mongoose';\nimport {\n\thandlePreSaveForSortingWithStatus,\n\thandlePreUpdateForSortingWithStatus,\n} from '../utilities/sortingOrderHooks';\n\n@modelOptions({ schemaOptions: { collection: 'filterContainers' } })\n@Index({ itemType: 1, deletedAt: 1 })\n@pre<FilterContainer>('save', async function (next) {\n\tawait handlePreSaveForSortingWithStatus.call(this, FilterContainerModel, { itemType: this.itemType });\n\n\tnext();\n})\n@pre<FilterContainer>('findOneAndUpdate', async function (this: Query<any, FilterContainer>, next) {\n\tawait handlePreUpdateForSortingWithStatus.call(this, FilterContainerModel, ['itemType']);\n\n\tnext();\n})\nexport class FilterContainer extends TimeStamps {\n\t@prop({ required: true, type: String })\n\tpublic name!: string;\n\n\t@prop({ required: true, type: [String] })\n\tpublic deals!: string[]; // e.g., \"5\", \"10\", \"20\", \"30\", \"double_menu\"\n\n\t@prop({ type: String, enum: UserAppSectionItemType })\n\tpublic itemType?: UserAppSectionItemType;\n\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: Boolean, default: true })\n\tpublic isVisible!: boolean;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
1
+ {"version":3,"file":"filter-container.model.js","sourceRoot":"/","sources":["libraries/mongo/models/filter-container.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAsE;AACtE,4EAAqE;AACrE,kDAAyE;AACzE,wBAAyC;AAEzC,0EAG0C;AAcnC,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,2BAAU;IAEvC,IAAI,CAAU;IAGd,KAAK,CAAY;IAGjB,QAAQ,CAA0B;IAGlC,MAAM,CAAU;IAGhB,SAAS,CAAW;IAGpB,YAAY,CAAU;CAC7B,CAAA;AAlBY,0CAAe;AAEpB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;6CAClB;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;;8CACjB;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6BAAsB,EAAE,CAAC;;iDACZ;AAGlC;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;+CACtC;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;kDACZ;AAGpB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qDACM;0BAjBjB,eAAe;IAZ3B,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,CAAC;IACnE,IAAA,iBAAK,EAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACpC,IAAA,eAAG,EAAkB,MAAM,EAAE,KAAK,WAAW,IAAI;QACjD,MAAM,uDAAiC,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEtG,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IACD,IAAA,eAAG,EAAkB,kBAAkB,EAAE,KAAK,WAA8C,IAAI;QAChG,MAAM,yDAAmC,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAoB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAEzF,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;GACW,eAAe,CAkB3B","sourcesContent":["import { Index, modelOptions, pre, prop } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { Status, UserAppSectionItemType } from '../../../utilities/enum';\nimport { FilterContainerModel } from '.';\nimport { Query } from 'mongoose';\nimport {\n\thandlePreSaveForSortingWithStatus,\n\thandlePreUpdateForSortingWithStatus,\n} from '../utilities/sorting-order.hooks';\n\n@modelOptions({ schemaOptions: { collection: 'filterContainers' } })\n@Index({ itemType: 1, deletedAt: 1 })\n@pre<FilterContainer>('save', async function (next) {\n\tawait handlePreSaveForSortingWithStatus.call(this, FilterContainerModel, { itemType: this.itemType });\n\n\tnext();\n})\n@pre<FilterContainer>('findOneAndUpdate', async function (this: Query<any, FilterContainer>, next) {\n\tawait handlePreUpdateForSortingWithStatus.call(this, FilterContainerModel, ['itemType']);\n\n\tnext();\n})\nexport class FilterContainer extends TimeStamps {\n\t@prop({ required: true, type: String })\n\tpublic name!: string;\n\n\t@prop({ required: true, type: [String] })\n\tpublic deals!: string[]; // e.g., \"5\", \"10\", \"20\", \"30\", \"double_menu\"\n\n\t@prop({ type: String, enum: UserAppSectionItemType })\n\tpublic itemType?: UserAppSectionItemType;\n\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: Boolean, default: true })\n\tpublic isVisible!: boolean;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
@@ -19,7 +19,7 @@ const enum_1 = require("../../../utilities/enum");
19
19
  const user_model_1 = require("./user.model");
20
20
  const admin_model_1 = require("./admin.model");
21
21
  const parent_model_1 = require("./parent.model");
22
- const uniqueIdHooks_1 = require("../utilities/uniqueIdHooks");
22
+ const unique_id_hooks_1 = require("../utilities/unique-id.hooks");
23
23
  const _1 = require(".");
24
24
  let FinanceSettlement = class FinanceSettlement extends defaultClasses_1.TimeStamps {
25
25
  settlementId;
@@ -119,7 +119,7 @@ exports.FinanceSettlement = FinanceSettlement = __decorate([
119
119
  (0, typegoose_1.index)({ settlementType: 1, createdAt: -1 }),
120
120
  (0, typegoose_1.index)({ accountType: 1, settlementType: 1, createdAt: -1 }),
121
121
  (0, typegoose_1.pre)('save', async function (next) {
122
- await uniqueIdHooks_1.handlePreSaveForUniqueId.call(this, _1.FinanceSettlementModel, 'settlementId', 10);
122
+ await unique_id_hooks_1.handlePreSaveForUniqueId.call(this, _1.FinanceSettlementModel, 'settlementId', 10);
123
123
  next();
124
124
  })
125
125
  ], FinanceSettlement);
@@ -1 +1 @@
1
- {"version":3,"file":"finance-settlement.model.js","sourceRoot":"/","sources":["libraries/mongo/models/finance-settlement.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { index, modelOptions, pre, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { Order } from './order.model';\nimport { Shop } from './shop.model';\nimport { Rider } from './rider.model';\nimport { AccountType, ItemType, SettlementType } from '../../../utilities/enum';\nimport { User } from './user.model';\nimport { Admin } from './admin.model';\nimport { Parent } from './parent.model';\nimport { handlePreSaveForUniqueId } from '../utilities/uniqueIdHooks';\nimport { FinanceSettlementModel } from '.';\n\n@modelOptions({ schemaOptions: { collection: 'financeSettlements' } })\n@index({ settlementType: 1, createdAt: -1 })\n@index({ accountType: 1, settlementType: 1, createdAt: -1 })\n@pre<FinanceSettlement>('save', async function (next) {\n\t// Generate unique id if not exists\n\tawait handlePreSaveForUniqueId.call(this, FinanceSettlementModel, 'settlementId', 10);\n\n\tnext();\n})\nexport class FinanceSettlement extends TimeStamps {\n\t@prop({ type: String, unique: true, index: true })\n\tpublic settlementId: string;\n\n\t@prop({ required: true, type: String, enum: AccountType })\n\tpublic accountType!: AccountType;\n\n\t@prop({ ref: () => Order, index: true })\n\tpublic order?: Ref<Order>;\n\n\t@prop({ ref: () => Parent, index: true })\n\tpublic parent?: Ref<Parent>;\n\n\t@prop({ ref: () => Shop, index: true })\n\tpublic shop?: Ref<Shop>;\n\n\t@prop({ type: String, enum: ItemType, index: true })\n\tpublic itemType?: ItemType;\n\n\t@prop({ ref: () => Rider, index: true })\n\tpublic rider?: Ref<Rider>;\n\n\t@prop({ ref: () => User, index: true })\n\tpublic user?: Ref<User>;\n\n\t@prop({ required: true, type: String, enum: SettlementType })\n\tpublic settlementType!: SettlementType;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic amount?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic secondaryAmount?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic amountFromItems?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic secondaryAmountFromItems?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic amountFromDelivery?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic secondaryAmountFromDelivery?: number;\n\n\t@prop({ type: String })\n\tpublic paymentIntentId?: string;\n\n\t@prop({ ref: () => Admin })\n\tpublic settleBy?: Ref<Admin>;\n\n\t@prop({ type: String, maxlength: 250 })\n\tpublic adminNote?: string;\n}\n"]}
1
+ {"version":3,"file":"finance-settlement.model.js","sourceRoot":"/","sources":["libraries/mongo/models/finance-settlement.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { index, modelOptions, pre, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { Order } from './order.model';\nimport { Shop } from './shop.model';\nimport { Rider } from './rider.model';\nimport { AccountType, ItemType, SettlementType } from '../../../utilities/enum';\nimport { User } from './user.model';\nimport { Admin } from './admin.model';\nimport { Parent } from './parent.model';\nimport { handlePreSaveForUniqueId } from '../utilities/unique-id.hooks';\nimport { FinanceSettlementModel } from '.';\n\n@modelOptions({ schemaOptions: { collection: 'financeSettlements' } })\n@index({ settlementType: 1, createdAt: -1 })\n@index({ accountType: 1, settlementType: 1, createdAt: -1 })\n@pre<FinanceSettlement>('save', async function (next) {\n\t// Generate unique id if not exists\n\tawait handlePreSaveForUniqueId.call(this, FinanceSettlementModel, 'settlementId', 10);\n\n\tnext();\n})\nexport class FinanceSettlement extends TimeStamps {\n\t@prop({ type: String, unique: true, index: true })\n\tpublic settlementId: string;\n\n\t@prop({ required: true, type: String, enum: AccountType })\n\tpublic accountType!: AccountType;\n\n\t@prop({ ref: () => Order, index: true })\n\tpublic order?: Ref<Order>;\n\n\t@prop({ ref: () => Parent, index: true })\n\tpublic parent?: Ref<Parent>;\n\n\t@prop({ ref: () => Shop, index: true })\n\tpublic shop?: Ref<Shop>;\n\n\t@prop({ type: String, enum: ItemType, index: true })\n\tpublic itemType?: ItemType;\n\n\t@prop({ ref: () => Rider, index: true })\n\tpublic rider?: Ref<Rider>;\n\n\t@prop({ ref: () => User, index: true })\n\tpublic user?: Ref<User>;\n\n\t@prop({ required: true, type: String, enum: SettlementType })\n\tpublic settlementType!: SettlementType;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic amount?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic secondaryAmount?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic amountFromItems?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic secondaryAmountFromItems?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic amountFromDelivery?: number;\n\n\t@prop({ type: Number, default: 0 })\n\tpublic secondaryAmountFromDelivery?: number;\n\n\t@prop({ type: String })\n\tpublic paymentIntentId?: string;\n\n\t@prop({ ref: () => Admin })\n\tpublic settleBy?: Ref<Admin>;\n\n\t@prop({ type: String, maxlength: 250 })\n\tpublic adminNote?: string;\n}\n"]}
@@ -16,7 +16,7 @@ const enum_1 = require("../../../utilities/enum");
16
16
  const shop_model_1 = require("./shop.model");
17
17
  const tag_model_1 = require("./tag.model");
18
18
  const zone_model_1 = require("./zone.model");
19
- const sortingOrderHooks_1 = require("../utilities/sortingOrderHooks");
19
+ const sorting_order_hooks_1 = require("../utilities/sorting-order.hooks");
20
20
  const _1 = require(".");
21
21
  let ListContainer = class ListContainer extends defaultClasses_1.TimeStamps {
22
22
  name;
@@ -81,11 +81,11 @@ exports.ListContainer = ListContainer = __decorate([
81
81
  (0, typegoose_1.index)({ name: 1, itemType: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } }),
82
82
  (0, typegoose_1.index)({ itemType: 1, deletedAt: 1 }),
83
83
  (0, typegoose_1.pre)('save', async function (next) {
84
- await sortingOrderHooks_1.handlePreSaveForSortingWithStatus.call(this, _1.ListContainerModel, { itemType: this.itemType });
84
+ await sorting_order_hooks_1.handlePreSaveForSortingWithStatus.call(this, _1.ListContainerModel, { itemType: this.itemType });
85
85
  next();
86
86
  }),
87
87
  (0, typegoose_1.pre)('findOneAndUpdate', async function (next) {
88
- await sortingOrderHooks_1.handlePreUpdateForSortingWithStatus.call(this, _1.ListContainerModel, ['itemType']);
88
+ await sorting_order_hooks_1.handlePreUpdateForSortingWithStatus.call(this, _1.ListContainerModel, ['itemType']);
89
89
  next();
90
90
  })
91
91
  ], ListContainer);
@@ -1 +1 @@
1
- {"version":3,"file":"list-container.model.js","sourceRoot":"/","sources":["libraries/mongo/models/list-container.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { index, modelOptions, pre, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { ItemType, Status } from '../../../utilities/enum';\nimport { Shop } from './shop.model';\nimport { Tag } from './tag.model';\nimport { Zone } from './zone.model';\nimport { Query } from 'mongoose';\nimport {\n\thandlePreSaveForSortingWithStatus,\n\thandlePreUpdateForSortingWithStatus,\n} from '../utilities/sortingOrderHooks';\nimport { ListContainerModel } from '.';\n\n@modelOptions({ schemaOptions: { collection: 'listContainers' } })\n@index({ name: 1, itemType: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })\n@index({ itemType: 1, deletedAt: 1 })\n@pre<ListContainer>('save', async function (next) {\n\tawait handlePreSaveForSortingWithStatus.call(this, ListContainerModel, { itemType: this.itemType });\n\n\tnext();\n})\n@pre<ListContainer>('findOneAndUpdate', async function (this: Query<any, ListContainer>, next) {\n\tawait handlePreUpdateForSortingWithStatus.call(this, ListContainerModel, ['itemType']);\n\n\tnext();\n})\nexport class ListContainer extends TimeStamps {\n\t@prop({ required: true, type: String, maxlength: 30 })\n\tpublic name!: string;\n\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType!: ItemType;\n\n\t@prop({ required: true, type: String })\n\tpublic image!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic banner!: string;\n\n\t@prop({ ref: () => Zone, default: [] })\n\tpublic zones?: Ref<Zone>[];\n\n\t@prop({ type: () => [String], default: [] })\n\tpublic deals?: string[];\n\n\t@prop({ ref: () => Tag, default: [] })\n\tpublic tags?: Ref<Tag>[];\n\n\t@prop({ ref: () => Shop, default: [] })\n\tpublic shops?: Ref<Shop>[];\n\n\t@prop({ enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: Boolean, default: true })\n\tpublic isVisible!: boolean;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
1
+ {"version":3,"file":"list-container.model.js","sourceRoot":"/","sources":["libraries/mongo/models/list-container.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { index, modelOptions, pre, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { ItemType, Status } from '../../../utilities/enum';\nimport { Shop } from './shop.model';\nimport { Tag } from './tag.model';\nimport { Zone } from './zone.model';\nimport { Query } from 'mongoose';\nimport {\n\thandlePreSaveForSortingWithStatus,\n\thandlePreUpdateForSortingWithStatus,\n} from '../utilities/sorting-order.hooks';\nimport { ListContainerModel } from '.';\n\n@modelOptions({ schemaOptions: { collection: 'listContainers' } })\n@index({ name: 1, itemType: 1 }, { unique: true, partialFilterExpression: { deletedAt: null } })\n@index({ itemType: 1, deletedAt: 1 })\n@pre<ListContainer>('save', async function (next) {\n\tawait handlePreSaveForSortingWithStatus.call(this, ListContainerModel, { itemType: this.itemType });\n\n\tnext();\n})\n@pre<ListContainer>('findOneAndUpdate', async function (this: Query<any, ListContainer>, next) {\n\tawait handlePreUpdateForSortingWithStatus.call(this, ListContainerModel, ['itemType']);\n\n\tnext();\n})\nexport class ListContainer extends TimeStamps {\n\t@prop({ required: true, type: String, maxlength: 30 })\n\tpublic name!: string;\n\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType!: ItemType;\n\n\t@prop({ required: true, type: String })\n\tpublic image!: string;\n\n\t@prop({ required: true, type: String })\n\tpublic banner!: string;\n\n\t@prop({ ref: () => Zone, default: [] })\n\tpublic zones?: Ref<Zone>[];\n\n\t@prop({ type: () => [String], default: [] })\n\tpublic deals?: string[];\n\n\t@prop({ ref: () => Tag, default: [] })\n\tpublic tags?: Ref<Tag>[];\n\n\t@prop({ ref: () => Shop, default: [] })\n\tpublic shops?: Ref<Shop>[];\n\n\t@prop({ enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: Boolean, default: true })\n\tpublic isVisible!: boolean;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
@@ -11,6 +11,7 @@ export declare class Product extends TimeStamps {
11
11
  productId: string;
12
12
  shop: Ref<Shop>;
13
13
  name: string;
14
+ nameNormalized?: string;
14
15
  barcode?: string;
15
16
  shopCategory: Ref<ShopCategory>;
16
17
  itemType: ItemType;