@lyxa.ai/core 1.0.78-debug.3 → 1.0.78-debug.4

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.
@@ -16,6 +16,7 @@ const enum_1 = require("../../../utilities/enum");
16
16
  const order_cancel_model_1 = require("./embedded/order-cancel.model");
17
17
  const user_model_1 = require("./user.model");
18
18
  const rider_model_1 = require("./rider.model");
19
+ const _1 = require(".");
19
20
  let Order = class Order extends defaultClasses_1.TimeStamps {
20
21
  orderId;
21
22
  orderType;
@@ -84,21 +85,11 @@ exports.Order = Order = __decorate([
84
85
  },
85
86
  options: { allowMixed: typegoose_1.Severity.ALLOW },
86
87
  }),
87
- (0, typegoose_1.pre)('save', async function () {
88
- if (this.isNew && !this.orderId) {
89
- const OrderModel = this.constructor;
90
- const currentDate = getCurrentDateFormat();
91
- const startOfDay = getStartOfDay();
92
- const endOfDay = getEndOfDay();
93
- const todayOrderCount = await OrderModel.countDocuments({
94
- createdAt: {
95
- $gte: startOfDay,
96
- $lt: endOfDay
97
- }
98
- });
99
- const orderSequence = incrementWithPadding(todayOrderCount, 6);
100
- this.orderId = `${currentDate}${orderSequence}`;
101
- }
88
+ (0, typegoose_1.pre)('save', async function (next) {
89
+ if (this.orderId)
90
+ return next();
91
+ this.orderId = await generateOrderId();
92
+ next();
102
93
  }),
103
94
  (0, typegoose_1.Index)({ 'deliveryAddress.location': '2dsphere' }),
104
95
  (0, typegoose_1.Index)({
@@ -123,11 +114,10 @@ exports.Order = Order = __decorate([
123
114
  (0, typegoose_1.Index)({ parent: 1, orderType: 1, status: 1, 'finance.processedAt': 1, deletedAt: 1 })
124
115
  ], Order);
125
116
  async function generateOrderId() {
126
- const OrderModel = (0, typegoose_1.getModelForClass)(Order);
127
117
  const currentDate = getCurrentDateFormat();
128
118
  const startOfDay = getStartOfDay();
129
119
  const endOfDay = getEndOfDay();
130
- const todayOrderCount = await OrderModel.countDocuments({
120
+ const todayOrderCount = await _1.OrderModel.countDocuments({
131
121
  createdAt: {
132
122
  $gte: startOfDay,
133
123
  $lt: endOfDay
@@ -1 +1 @@
1
- {"version":3,"file":"order.model.js","sourceRoot":"/","sources":["libraries/mongo/models/order.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { prop, Ref, modelOptions, Severity, Index, pre, getModelForClass } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { OrderType } from '../../../utilities/enum';\nimport { OrderCancel } from './embedded/order-cancel.model';\nimport { User } from './user.model';\nimport { Rider } from './rider.model';\n\n@modelOptions({\n\tschemaOptions: {\n\t\tcollection: 'orders',\n\t\tdiscriminatorKey: 'orderType',\n\t\ttoJSON: { virtuals: true },\n\t\ttoObject: { virtuals: true },\n\t},\n\toptions: { allowMixed: Severity.ALLOW },\n})\n@pre<Order>('save', async function() {\n\t// Only generate orderId if it's a new document and orderId is not already set\n\tif (this.isNew && !this.orderId) {\n\t\t// Get the model constructor from the document\n\t\tconst OrderModel = this.constructor as any;\n\t\t\n\t\t// Get current date in server time format\n\t\tconst currentDate = getCurrentDateFormat();\n\t\t\n\t\t// Count orders created today to get the sequence number\n\t\tconst startOfDay = getStartOfDay();\n\t\tconst endOfDay = getEndOfDay();\n\t\t\n\t\tconst todayOrderCount = await OrderModel.countDocuments({\n\t\t\tcreatedAt: {\n\t\t\t\t$gte: startOfDay,\n\t\t\t\t$lt: endOfDay\n\t\t\t}\n\t\t});\n\t\t\n\t\t// Increment and pad the count\n\t\tconst orderSequence = incrementWithPadding(todayOrderCount, 6);\n\t\t\n\t\tthis.orderId = `${currentDate}${orderSequence}`;\n\t}\n})\n@Index({ 'deliveryAddress.location': '2dsphere' })\n@Index({\n\tshop: 1,\n\torderType: 1,\n\tstatus: 1,\n\t'statusTimeline.status': 1,\n\t'statusTimeline.timestamp': 1,\n\tdeletedAt: 1,\n})\n@Index({ shop: 1, orderType: 1, status: 1, 'finance.processedAt': 1, deletedAt: 1 })\n@Index({ shop: 1, orderType: 1, status: 1, 'deliveryAddress.location': 1, deletedAt: 1 })\n@Index({ shop: 1, orderType: 1, status: 1, deletedAt: 1 })\n@Index({\n\tparent: 1,\n\torderType: 1,\n\tstatus: 1,\n\t'statusTimeline.status': 1,\n\t'statusTimeline.timestamp': 1,\n\tdeletedAt: 1,\n})\n@Index({ parent: 1, orderType: 1, status: 1, 'finance.processedAt': 1, deletedAt: 1 })\nexport class Order extends TimeStamps {\n\t@prop({ required: true, type: String, unique: true })\n\tpublic orderId: string;\n\n\t@prop({ type: String, enum: OrderType, default: OrderType.REGULAR })\n\tpublic orderType?: OrderType;\n\n\t@prop({ required: true, ref: () => User })\n\tpublic user: Ref<User>;\n\n\t@prop({ ref: () => Rider, index: true })\n\tpublic rider?: Ref<Rider>;\n\n\t@prop({ type: Number })\n\tpublic deliveredTimeInMinutes: number;\n\n\t@prop({ type: String })\n\tpublic instruction?: string;\n\n\t@prop({ type: String })\n\tpublic note?: string;\n\n\t@prop({ type: Date })\n\tpublic scheduledFor?: Date;\n\n\t@prop({ type: () => OrderCancel })\n\tpublic orderCancel?: OrderCancel;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isLateOrder?: boolean;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isUrgentOrder?: boolean;\n}\n\nasync function generateOrderId(): Promise<string> {\n\tconst OrderModel = getModelForClass(Order);\n\t\n\t// Get current date in server time format\n\tconst currentDate = getCurrentDateFormat();\n\t\n\t// Count orders created today to get the sequence number\n\tconst startOfDay = getStartOfDay();\n\tconst endOfDay = getEndOfDay();\n\t\n\tconst todayOrderCount = await OrderModel.countDocuments({\n\t\tcreatedAt: {\n\t\t\t$gte: startOfDay,\n\t\t\t$lt: endOfDay\n\t\t}\n\t});\n\t\n\t// Increment and pad the count\n\tconst orderSequence = incrementWithPadding(todayOrderCount, 6);\n\t\n\treturn `${currentDate}${orderSequence}`;\n}\n\nfunction incrementWithPadding(\n\tvalue: number | string,\n\twidth: number = 1,\n\tpadChar: string = '0',\n\tincrement: number = 1\n): string {\n\tconst numericValue = typeof value === 'string' ? parseInt(value, 10) : value;\n\tconst incrementedValue = numericValue + increment;\n\treturn String(incrementedValue).padStart(width, padChar);\n}\n\nfunction getCurrentDateFormat(): string {\n\tconst now = new Date();\n\t\n\tconst day = String(now.getDate()).padStart(2, '0');\n\tconst month = String(now.getMonth() + 1).padStart(2, '0'); // getMonth() is 0-indexed\n\tconst year = String(now.getFullYear()).slice(-2); // Get last 2 digits of year\n\t\n\treturn `${day}${month}${year}`;\n}\n\nfunction getStartOfDay(): Date {\n\tconst now = new Date();\n\tconst startOfDay = new Date(now);\n\tstartOfDay.setHours(0, 0, 0, 0);\n\treturn startOfDay;\n}\n\nfunction getEndOfDay(): Date {\n\tconst now = new Date();\n\tconst endOfDay = new Date(now);\n\tendOfDay.setHours(23, 59, 59, 999);\n\treturn endOfDay;\n}"]}
1
+ {"version":3,"file":"order.model.js","sourceRoot":"/","sources":["libraries/mongo/models/order.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { prop, Ref, modelOptions, Severity, Index, pre, getModelForClass } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { OrderType } from '../../../utilities/enum';\nimport { OrderCancel } from './embedded/order-cancel.model';\nimport { User } from './user.model';\nimport { Rider } from './rider.model';\nimport { OrderModel } from '.';\n\n@modelOptions({\n\tschemaOptions: {\n\t\tcollection: 'orders',\n\t\tdiscriminatorKey: 'orderType',\n\t\ttoJSON: { virtuals: true },\n\t\ttoObject: { virtuals: true },\n\t},\n\toptions: { allowMixed: Severity.ALLOW },\n})\n@pre<Order>('save', async function (next) {\n\tif (this.orderId) return next(); \n\n\tthis.orderId = await generateOrderId();\n\n\tnext();\n})\n@Index({ 'deliveryAddress.location': '2dsphere' })\n@Index({\n\tshop: 1,\n\torderType: 1,\n\tstatus: 1,\n\t'statusTimeline.status': 1,\n\t'statusTimeline.timestamp': 1,\n\tdeletedAt: 1,\n})\n@Index({ shop: 1, orderType: 1, status: 1, 'finance.processedAt': 1, deletedAt: 1 })\n@Index({ shop: 1, orderType: 1, status: 1, 'deliveryAddress.location': 1, deletedAt: 1 })\n@Index({ shop: 1, orderType: 1, status: 1, deletedAt: 1 })\n@Index({\n\tparent: 1,\n\torderType: 1,\n\tstatus: 1,\n\t'statusTimeline.status': 1,\n\t'statusTimeline.timestamp': 1,\n\tdeletedAt: 1,\n})\n@Index({ parent: 1, orderType: 1, status: 1, 'finance.processedAt': 1, deletedAt: 1 })\nexport class Order extends TimeStamps {\n\t@prop({ required: true, type: String, unique: true })\n\tpublic orderId: string;\n\n\t@prop({ type: String, enum: OrderType, default: OrderType.REGULAR })\n\tpublic orderType?: OrderType;\n\n\t@prop({ required: true, ref: () => User })\n\tpublic user: Ref<User>;\n\n\t@prop({ ref: () => Rider, index: true })\n\tpublic rider?: Ref<Rider>;\n\n\t@prop({ type: Number })\n\tpublic deliveredTimeInMinutes: number;\n\n\t@prop({ type: String })\n\tpublic instruction?: string;\n\n\t@prop({ type: String })\n\tpublic note?: string;\n\n\t@prop({ type: Date })\n\tpublic scheduledFor?: Date;\n\n\t@prop({ type: () => OrderCancel })\n\tpublic orderCancel?: OrderCancel;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isLateOrder?: boolean;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isUrgentOrder?: boolean;\n}\n\nasync function generateOrderId(): Promise<string> {\n\t// Get current date in server time format\n\tconst currentDate = getCurrentDateFormat();\n\t\n\t// Count orders created today to get the sequence number\n\tconst startOfDay = getStartOfDay();\n\tconst endOfDay = getEndOfDay();\n\t\n\tconst todayOrderCount = await OrderModel.countDocuments({\n\t\tcreatedAt: {\n\t\t\t$gte: startOfDay,\n\t\t\t$lt: endOfDay\n\t\t}\n\t});\n\t\n\t// Increment and pad the count\n\tconst orderSequence = incrementWithPadding(todayOrderCount, 6);\n\t\n\treturn `${currentDate}${orderSequence}`;\n}\n\nfunction incrementWithPadding(\n\tvalue: number | string,\n\twidth: number = 1,\n\tpadChar: string = '0',\n\tincrement: number = 1\n): string {\n\tconst numericValue = typeof value === 'string' ? parseInt(value, 10) : value;\n\tconst incrementedValue = numericValue + increment;\n\treturn String(incrementedValue).padStart(width, padChar);\n}\n\nfunction getCurrentDateFormat(): string {\n\tconst now = new Date();\n\t\n\tconst day = String(now.getDate()).padStart(2, '0');\n\tconst month = String(now.getMonth() + 1).padStart(2, '0'); // getMonth() is 0-indexed\n\tconst year = String(now.getFullYear()).slice(-2); // Get last 2 digits of year\n\t\n\treturn `${day}${month}${year}`;\n}\n\nfunction getStartOfDay(): Date {\n\tconst now = new Date();\n\tconst startOfDay = new Date(now);\n\tstartOfDay.setHours(0, 0, 0, 0);\n\treturn startOfDay;\n}\n\nfunction getEndOfDay(): Date {\n\tconst now = new Date();\n\tconst endOfDay = new Date(now);\n\tendOfDay.setHours(23, 59, 59, 999);\n\treturn endOfDay;\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lyxa.ai/core",
3
- "version": "1.0.78-debug.3",
3
+ "version": "1.0.78-debug.4",
4
4
  "description": "The Core system of the Lyxa services.",
5
5
  "author": "elie <42282499+Internalizable@users.noreply.github.com>",
6
6
  "license": "MIT",