@fesmex/models 0.1.61 → 0.1.63

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.
package/dist/index.js CHANGED
@@ -163,6 +163,30 @@ var articleFileSchema = new Schema8(
163
163
  },
164
164
  { _id: false }
165
165
  );
166
+ var articleContentSchema = new Schema8(
167
+ {
168
+ details: { type: String, required: false, trim: true },
169
+ applications: { type: String, required: false, trim: true },
170
+ technical_sheet_url: {
171
+ type: String,
172
+ required: false,
173
+ trim: true,
174
+ validate: {
175
+ validator: (value) => {
176
+ if (!value) return true;
177
+ try {
178
+ new URL(value);
179
+ return true;
180
+ } catch {
181
+ return false;
182
+ }
183
+ },
184
+ message: "technical_sheet_url must be a valid URL"
185
+ }
186
+ }
187
+ },
188
+ { _id: false }
189
+ );
166
190
  var articleSchema = new Schema8({
167
191
  article_number: { type: String, required: true, unique: true },
168
192
  // SAP ItemCode
@@ -175,6 +199,7 @@ var articleSchema = new Schema8({
175
199
  tags: { type: [Types7.ObjectId], ref: "Tag", default: [], index: true },
176
200
  is_featured: { type: Boolean, default: false, index: true },
177
201
  featured_order: { type: Number, default: 0 },
202
+ content: { type: articleContentSchema, required: false },
178
203
  files: {
179
204
  images: { type: [articleFileSchema], required: false },
180
205
  datasheets: { type: [articleFileSchema], required: false }
@@ -262,22 +287,62 @@ var inventoryStockSchema = new Schema14({
262
287
  inventoryStockSchema.index({ article_id: 1, warehouse_id: 1 }, { name: "inventory_stocks_article_warehouse_unique", unique: true });
263
288
  var InventoryStocks_default = mongoose14.models.InventoryStock || model14("InventoryStock", inventoryStockSchema, "inventory_stocks");
264
289
 
265
- // src/inventory/models/PriceLists.ts
290
+ // src/inventory/models/StockReservations.ts
266
291
  import mongoose15, { Schema as Schema15, model as model15 } from "mongoose";
267
- var priceListSchema = new Schema15({
292
+ var StockReservationStatus = /* @__PURE__ */ ((StockReservationStatus2) => {
293
+ StockReservationStatus2["ACTIVE"] = "active";
294
+ StockReservationStatus2["RELEASED"] = "released";
295
+ StockReservationStatus2["CONSUMED"] = "consumed";
296
+ return StockReservationStatus2;
297
+ })(StockReservationStatus || {});
298
+ var stockReservationSchema = new Schema15(
299
+ {
300
+ order_id: { type: Schema15.Types.ObjectId, ref: "Order", required: true },
301
+ article_id: { type: Schema15.Types.ObjectId, ref: "Article", required: true },
302
+ warehouse_id: { type: Schema15.Types.ObjectId, ref: "Warehouse", required: true },
303
+ quantity: { type: Number, required: true, min: 1 },
304
+ expires_at: { type: Date, required: true },
305
+ status: {
306
+ type: String,
307
+ enum: Object.values(StockReservationStatus),
308
+ default: "active" /* ACTIVE */,
309
+ required: true
310
+ }
311
+ },
312
+ {
313
+ timestamps: { createdAt: "created_at", updatedAt: "updated_at" }
314
+ }
315
+ );
316
+ stockReservationSchema.index(
317
+ { order_id: 1, article_id: 1, warehouse_id: 1 },
318
+ { name: "stock_reservations_order_article_warehouse" }
319
+ );
320
+ stockReservationSchema.index(
321
+ { status: 1, expires_at: 1 },
322
+ { name: "stock_reservations_status_expires" }
323
+ );
324
+ stockReservationSchema.index(
325
+ { article_id: 1, warehouse_id: 1, status: 1 },
326
+ { name: "stock_reservations_article_warehouse_status" }
327
+ );
328
+ var StockReservations_default = mongoose15.models.StockReservation || model15("StockReservation", stockReservationSchema, "stock_reservations");
329
+
330
+ // src/inventory/models/PriceLists.ts
331
+ import mongoose16, { Schema as Schema16, model as model16 } from "mongoose";
332
+ var priceListSchema = new Schema16({
268
333
  number: { type: String, required: true, unique: true },
269
334
  name: { type: String, required: true },
270
335
  created_at: { type: Date, default: Date.now },
271
336
  updated_at: { type: Date }
272
337
  });
273
- var PriceLists_default = mongoose15.models.PriceList || model15("PriceList", priceListSchema, "price_lists");
338
+ var PriceLists_default = mongoose16.models.PriceList || model16("PriceList", priceListSchema, "price_lists");
274
339
 
275
340
  // src/inventory/models/Category.ts
276
- import mongoose16, { Schema as Schema16, model as model16, Types as Types10 } from "mongoose";
277
- var categorySchema = new Schema16({
341
+ import mongoose17, { Schema as Schema17, model as model17, Types as Types11 } from "mongoose";
342
+ var categorySchema = new Schema17({
278
343
  name: { type: String, required: true, trim: true },
279
344
  slug: { type: String, required: true, trim: true, lowercase: true },
280
- parent_id: { type: Types10.ObjectId, ref: "Category", default: null, index: true },
345
+ parent_id: { type: Types11.ObjectId, ref: "Category", default: null, index: true },
281
346
  order: { type: Number, default: 0 },
282
347
  is_active: { type: Boolean, default: true, index: true },
283
348
  created_at: { type: Date, default: Date.now },
@@ -286,11 +351,11 @@ var categorySchema = new Schema16({
286
351
  categorySchema.index({ slug: 1 }, { unique: true, name: "categories_slug_unique" });
287
352
  categorySchema.index({ parent_id: 1 }, { name: "categories_parent" });
288
353
  categorySchema.index({ is_active: 1 }, { name: "categories_active" });
289
- var Category_default = mongoose16.models.Category || model16("Category", categorySchema, "categories");
354
+ var Category_default = mongoose17.models.Category || model17("Category", categorySchema, "categories");
290
355
 
291
356
  // src/inventory/models/Tag.ts
292
- import mongoose17, { Schema as Schema17, model as model17 } from "mongoose";
293
- var tagSchema = new Schema17({
357
+ import mongoose18, { Schema as Schema18, model as model18 } from "mongoose";
358
+ var tagSchema = new Schema18({
294
359
  name: { type: String, required: true, trim: true },
295
360
  slug: { type: String, required: true, trim: true, lowercase: true },
296
361
  type: { type: String, enum: ["filter", "sidebar"], default: "filter", index: true },
@@ -301,22 +366,22 @@ var tagSchema = new Schema17({
301
366
  tagSchema.index({ slug: 1 }, { unique: true, name: "tags_slug_unique" });
302
367
  tagSchema.index({ is_active: 1 }, { name: "tags_active" });
303
368
  tagSchema.index({ type: 1 }, { name: "tags_type" });
304
- var Tag_default = mongoose17.models.Tag || model17("Tag", tagSchema, "tags");
369
+ var Tag_default = mongoose18.models.Tag || model18("Tag", tagSchema, "tags");
305
370
 
306
371
  // src/inventory/models/ArticleViews.ts
307
- import mongoose18, { Schema as Schema18, model as model18 } from "mongoose";
308
- var articleViewSchema = new Schema18(
372
+ import mongoose19, { Schema as Schema19, model as model19 } from "mongoose";
373
+ var articleViewSchema = new Schema19(
309
374
  {
310
- article_id: { type: Schema18.Types.ObjectId, ref: "Article", required: true },
375
+ article_id: { type: Schema19.Types.ObjectId, ref: "Article", required: true },
311
376
  visited_at: { type: Date, default: Date.now }
312
377
  },
313
378
  { collection: "article_views" }
314
379
  );
315
- var ArticleView = mongoose18.models.ArticleView || model18("ArticleView", articleViewSchema);
380
+ var ArticleView = mongoose19.models.ArticleView || model19("ArticleView", articleViewSchema);
316
381
  var ArticleViews_default = ArticleView;
317
382
 
318
383
  // src/quotes/models/Quote.ts
319
- import mongoose19, { Schema as Schema19, model as model19 } from "mongoose";
384
+ import mongoose20, { Schema as Schema20, model as model20 } from "mongoose";
320
385
  var QuoteStatus = /* @__PURE__ */ ((QuoteStatus2) => {
321
386
  QuoteStatus2["OPPORTUNITY"] = "OPPORTUNITY";
322
387
  QuoteStatus2["QUOTE"] = "QUOTE";
@@ -336,21 +401,21 @@ var CreatedMethod = /* @__PURE__ */ ((CreatedMethod2) => {
336
401
  CreatedMethod2["CSV"] = "CSV";
337
402
  return CreatedMethod2;
338
403
  })(CreatedMethod || {});
339
- var quoteSchema = new Schema19(
404
+ var quoteSchema = new Schema20(
340
405
  {
341
406
  quote_number: { type: Number, required: true },
342
407
  quote_revision: { type: Number, default: 0 },
343
408
  quote_ref: { type: String },
344
409
  company: { type: String },
345
- company_id: { type: Schema19.Types.ObjectId, ref: "Client", required: true },
410
+ company_id: { type: Schema20.Types.ObjectId, ref: "Client", required: true },
346
411
  company_pipedrive_id: { type: String },
347
- contact_id: { type: Schema19.Types.ObjectId, ref: "ClientContact" },
412
+ contact_id: { type: Schema20.Types.ObjectId, ref: "ClientContact" },
348
413
  project_name: { type: String },
349
414
  project_lab: { type: String },
350
415
  payment_condition: { type: String },
351
416
  payment_exp: { type: String },
352
- terms_ids: [{ type: Schema19.Types.ObjectId, ref: "QuoteTerm" }],
353
- currency_id: { type: Schema19.Types.ObjectId, ref: "Currency" },
417
+ terms_ids: [{ type: Schema20.Types.ObjectId, ref: "QuoteTerm" }],
418
+ currency_id: { type: Schema20.Types.ObjectId, ref: "Currency" },
354
419
  iva: { type: String },
355
420
  date: { type: Date },
356
421
  status: { type: String, enum: Object.values(Status), default: "OPEN" /* OPEN */ },
@@ -371,21 +436,21 @@ var quoteSchema = new Schema19(
371
436
  enum: Object.values(CreatedMethod),
372
437
  default: "MANUAL" /* MANUAL */
373
438
  },
374
- created_by: { type: Schema19.Types.ObjectId, ref: "User" },
375
- updated_by: { type: Schema19.Types.ObjectId, ref: "User" },
376
- deleted_by: { type: Schema19.Types.ObjectId, ref: "User" },
439
+ created_by: { type: Schema20.Types.ObjectId, ref: "User" },
440
+ updated_by: { type: Schema20.Types.ObjectId, ref: "User" },
441
+ deleted_by: { type: Schema20.Types.ObjectId, ref: "User" },
377
442
  deleted_at: { type: Date }
378
443
  },
379
444
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
380
445
  );
381
- var Quote_default = mongoose19.models.Quote || model19("Quote", quoteSchema, "quotes");
446
+ var Quote_default = mongoose20.models.Quote || model20("Quote", quoteSchema, "quotes");
382
447
 
383
448
  // src/quotes/models/QuoteArticle.ts
384
- import mongoose20, { Schema as Schema20, model as model20 } from "mongoose";
385
- var quoteArticleSchema = new Schema20(
449
+ import mongoose21, { Schema as Schema21, model as model21 } from "mongoose";
450
+ var quoteArticleSchema = new Schema21(
386
451
  {
387
- quote_id: { type: Schema20.Types.ObjectId, ref: "Quote", required: true },
388
- article_id: { type: Schema20.Types.ObjectId, ref: "Article" },
452
+ quote_id: { type: Schema21.Types.ObjectId, ref: "Quote", required: true },
453
+ article_id: { type: Schema21.Types.ObjectId, ref: "Article" },
389
454
  article_number: { type: String },
390
455
  description: { type: String },
391
456
  delivery: { type: String },
@@ -396,18 +461,18 @@ var quoteArticleSchema = new Schema20(
396
461
  total: { type: Number },
397
462
  utility: { type: Number },
398
463
  type: { type: String },
399
- extra_id: { type: Schema20.Types.ObjectId, ref: "QuoteArticleExtra" }
464
+ extra_id: { type: Schema21.Types.ObjectId, ref: "QuoteArticleExtra" }
400
465
  },
401
466
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
402
467
  );
403
- var QuoteArticle_default = mongoose20.models.QuoteArticle || model20("QuoteArticle", quoteArticleSchema, "quote_articles");
468
+ var QuoteArticle_default = mongoose21.models.QuoteArticle || model21("QuoteArticle", quoteArticleSchema, "quote_articles");
404
469
 
405
470
  // src/quotes/models/QuoteArticleExtra.ts
406
- import mongoose21, { Schema as Schema21, model as model21 } from "mongoose";
407
- var quoteArticleExtraSchema = new Schema21(
471
+ import mongoose22, { Schema as Schema22, model as model22 } from "mongoose";
472
+ var quoteArticleExtraSchema = new Schema22(
408
473
  {
409
474
  quote_article_id: {
410
- type: Schema21.Types.ObjectId,
475
+ type: Schema22.Types.ObjectId,
411
476
  ref: "QuoteArticle",
412
477
  required: true
413
478
  },
@@ -419,23 +484,23 @@ var quoteArticleExtraSchema = new Schema21(
419
484
  },
420
485
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
421
486
  );
422
- var QuoteArticleExtra_default = mongoose21.models.QuoteArticleExtra || model21("QuoteArticleExtra", quoteArticleExtraSchema, "quote_article_extras");
487
+ var QuoteArticleExtra_default = mongoose22.models.QuoteArticleExtra || model22("QuoteArticleExtra", quoteArticleExtraSchema, "quote_article_extras");
423
488
 
424
489
  // src/quotes/models/QuoteContact.ts
425
- import mongoose22, { Schema as Schema22, model as model22 } from "mongoose";
426
- var quoteContactSchema = new Schema22({
427
- quote_id: { type: Schema22.Types.ObjectId, ref: "Quote", required: true },
490
+ import mongoose23, { Schema as Schema23, model as model23 } from "mongoose";
491
+ var quoteContactSchema = new Schema23({
492
+ quote_id: { type: Schema23.Types.ObjectId, ref: "Quote", required: true },
428
493
  name: String,
429
494
  email: String,
430
495
  mobile: String,
431
496
  pipedrive_id: String,
432
497
  created_at: { type: Date, default: Date.now }
433
498
  });
434
- var QuoteContact_default = mongoose22.models.QuoteContact || model22("QuoteContact", quoteContactSchema, "quote_contacts");
499
+ var QuoteContact_default = mongoose23.models.QuoteContact || model23("QuoteContact", quoteContactSchema, "quote_contacts");
435
500
 
436
501
  // src/quotes/models/QuoteTerm.ts
437
- import mongoose23, { Schema as Schema23, model as model23 } from "mongoose";
438
- var quoteTermSchema = new Schema23(
502
+ import mongoose24, { Schema as Schema24, model as model24 } from "mongoose";
503
+ var quoteTermSchema = new Schema24(
439
504
  {
440
505
  title: String,
441
506
  content: { type: String, required: true },
@@ -446,12 +511,12 @@ var quoteTermSchema = new Schema23(
446
511
  },
447
512
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
448
513
  );
449
- var QuoteTerm_default = mongoose23.models.QuoteTerm || model23("QuoteTerm", quoteTermSchema, "quote_terms");
514
+ var QuoteTerm_default = mongoose24.models.QuoteTerm || model24("QuoteTerm", quoteTermSchema, "quote_terms");
450
515
 
451
516
  // src/customers/models/Customers.ts
452
- import mongoose24, {
453
- Schema as Schema24,
454
- model as model24
517
+ import mongoose25, {
518
+ Schema as Schema25,
519
+ model as model25
455
520
  } from "mongoose";
456
521
  import bcrypt from "bcryptjs";
457
522
  var CustomerStatus = /* @__PURE__ */ ((CustomerStatus2) => {
@@ -460,7 +525,7 @@ var CustomerStatus = /* @__PURE__ */ ((CustomerStatus2) => {
460
525
  CustomerStatus2["BANNED"] = "banned";
461
526
  return CustomerStatus2;
462
527
  })(CustomerStatus || {});
463
- var customerSchema = new Schema24({
528
+ var customerSchema = new Schema25({
464
529
  first_name: { type: String, required: true },
465
530
  last_name: { type: String, required: true },
466
531
  email: { type: String, required: true, unique: true },
@@ -471,7 +536,7 @@ var customerSchema = new Schema24({
471
536
  enum: Object.values(CustomerStatus),
472
537
  default: "inactive" /* INACTIVE */
473
538
  },
474
- fiscal_profile_id: { type: Schema24.Types.ObjectId, ref: "FiscalProfile" },
539
+ fiscal_profile_id: { type: Schema25.Types.ObjectId, ref: "FiscalProfile" },
475
540
  created_at: { type: Date, default: Date.now },
476
541
  updated_at: { type: Date },
477
542
  deleted_at: { type: Date }
@@ -481,13 +546,13 @@ customerSchema.pre("save", async function() {
481
546
  this.password = await bcrypt.hash(this.password, 12);
482
547
  }
483
548
  });
484
- var Customer = mongoose24.models.Customer || model24("Customer", customerSchema, "customers");
549
+ var Customer = mongoose25.models.Customer || model25("Customer", customerSchema, "customers");
485
550
  var Customers_default = Customer;
486
551
 
487
552
  // src/customers/models/FiscalProfileType.ts
488
- import mongoose25, { Schema as Schema25, model as model25 } from "mongoose";
489
- var fiscalProfileSchema = new Schema25({
490
- customer_id: { type: Schema25.Types.ObjectId, ref: "Customer", required: true },
553
+ import mongoose26, { Schema as Schema26, model as model26 } from "mongoose";
554
+ var fiscalProfileSchema = new Schema26({
555
+ customer_id: { type: Schema26.Types.ObjectId, ref: "Customer", required: true },
491
556
  rfc: { type: String, required: true },
492
557
  razon_social: { type: String, required: true },
493
558
  uso_cfdi: { type: String, required: true },
@@ -496,11 +561,11 @@ var fiscalProfileSchema = new Schema25({
496
561
  created_at: { type: Date, default: Date.now },
497
562
  updated_at: { type: Date }
498
563
  });
499
- var FiscalProfile = mongoose25.models.FiscalProfile || model25("FiscalProfile", fiscalProfileSchema, "fiscal_profiles");
564
+ var FiscalProfile = mongoose26.models.FiscalProfile || model26("FiscalProfile", fiscalProfileSchema, "fiscal_profiles");
500
565
  var FiscalProfileType_default = FiscalProfile;
501
566
 
502
567
  // src/orders/models/Orders.ts
503
- import mongoose26, { Schema as Schema26, model as model26 } from "mongoose";
568
+ import mongoose27, { Schema as Schema27, model as model27 } from "mongoose";
504
569
  var OrderStatus = /* @__PURE__ */ ((OrderStatus2) => {
505
570
  OrderStatus2["PENDING"] = "pending";
506
571
  OrderStatus2["CONFIRMED"] = "confirmed";
@@ -528,7 +593,7 @@ var PaymentStatus = /* @__PURE__ */ ((PaymentStatus2) => {
528
593
  PaymentStatus2["REFUNDED"] = "REFUNDED";
529
594
  return PaymentStatus2;
530
595
  })(PaymentStatus || {});
531
- var shippingAddressSchema = new Schema26(
596
+ var shippingAddressSchema = new Schema27(
532
597
  {
533
598
  full_name: { type: String, required: true, trim: true },
534
599
  phone: { type: String, required: true, trim: true },
@@ -541,18 +606,18 @@ var shippingAddressSchema = new Schema26(
541
606
  },
542
607
  { _id: false }
543
608
  );
544
- var orderItemSchema = new Schema26(
609
+ var orderItemSchema = new Schema27(
545
610
  {
546
- article_id: { type: Schema26.Types.ObjectId, ref: "Article", required: true },
611
+ article_id: { type: Schema27.Types.ObjectId, ref: "Article", required: true },
547
612
  quantity: { type: Number, required: true, min: 1 },
548
613
  unit_price: { type: Number, required: true, min: 0 },
549
614
  total: { type: Number, required: true, min: 0 }
550
615
  },
551
616
  { _id: false }
552
617
  );
553
- var orderSchema = new Schema26(
618
+ var orderSchema = new Schema27(
554
619
  {
555
- customer_id: { type: Schema26.Types.ObjectId, ref: "Customer", required: true },
620
+ customer_id: { type: Schema27.Types.ObjectId, ref: "Customer", required: true },
556
621
  items: {
557
622
  type: [orderItemSchema],
558
623
  required: true,
@@ -585,7 +650,7 @@ var orderSchema = new Schema26(
585
650
  delivery_type: { type: String, enum: ["shipping", "pickup"], required: true },
586
651
  subtotal: { type: Number, required: true, min: 0 },
587
652
  shipping_fee: { type: Number, min: 0, default: null },
588
- shipping_state_id: { type: Schema26.Types.ObjectId, ref: "State", default: null },
653
+ shipping_state_id: { type: Schema27.Types.ObjectId, ref: "State", default: null },
589
654
  total: { type: Number, required: true, min: 0 },
590
655
  notes: { type: String, trim: true },
591
656
  should_sync: { type: Boolean, default: true },
@@ -622,14 +687,14 @@ orderSchema.index(
622
687
  { should_sync: 1, sap_sync_status: 1 },
623
688
  { name: "orders_should_sync_sap_status" }
624
689
  );
625
- var Orders_default = mongoose26.models.Order || model26("Order", orderSchema, "orders");
690
+ var Orders_default = mongoose27.models.Order || model27("Order", orderSchema, "orders");
626
691
 
627
692
  // src/orders/models/OrderStatusLogs.ts
628
- import mongoose27, { Schema as Schema27, model as model27 } from "mongoose";
629
- var orderStatusLogSchema = new Schema27(
693
+ import mongoose28, { Schema as Schema28, model as model28 } from "mongoose";
694
+ var orderStatusLogSchema = new Schema28(
630
695
  {
631
696
  order_id: {
632
- type: Schema27.Types.ObjectId,
697
+ type: Schema28.Types.ObjectId,
633
698
  ref: "Order",
634
699
  required: true
635
700
  },
@@ -639,7 +704,7 @@ var orderStatusLogSchema = new Schema27(
639
704
  required: true
640
705
  },
641
706
  changed_by: {
642
- type: Schema27.Types.ObjectId,
707
+ type: Schema28.Types.ObjectId,
643
708
  ref: "User",
644
709
  required: true
645
710
  },
@@ -662,11 +727,11 @@ orderStatusLogSchema.index(
662
727
  { changed_by: 1, changed_at: -1 },
663
728
  { name: "order_status_logs_changed_by_changed_at" }
664
729
  );
665
- var OrderStatusLogs_default = mongoose27.models.OrderStatusLog || model27("OrderStatusLog", orderStatusLogSchema);
730
+ var OrderStatusLogs_default = mongoose28.models.OrderStatusLog || model28("OrderStatusLog", orderStatusLogSchema);
666
731
 
667
732
  // src/orders/models/State.ts
668
- import mongoose28, { Schema as Schema28, model as model28 } from "mongoose";
669
- var stateSchema = new Schema28(
733
+ import mongoose29, { Schema as Schema29, model as model29 } from "mongoose";
734
+ var stateSchema = new Schema29(
670
735
  {
671
736
  name: {
672
737
  type: String,
@@ -699,10 +764,10 @@ var stateSchema = new Schema28(
699
764
  }
700
765
  );
701
766
  stateSchema.index({ name: 1, is_active: 1 }, { name: "states_name_active" });
702
- var State_default = mongoose28.models.State || model28("State", stateSchema, "states");
767
+ var State_default = mongoose29.models.State || model29("State", stateSchema, "states");
703
768
 
704
769
  // src/sap/models/SyncLog.ts
705
- import mongoose29, { Schema as Schema29, model as model29 } from "mongoose";
770
+ import mongoose30, { Schema as Schema30, model as model30 } from "mongoose";
706
771
  var SyncLogType = /* @__PURE__ */ ((SyncLogType2) => {
707
772
  SyncLogType2["SAP_QUOTATION"] = "SAP_QUOTATION";
708
773
  SyncLogType2["SAP_SALES_ORDER"] = "SAP_SALES_ORDER";
@@ -722,7 +787,7 @@ var SyncLogAction = /* @__PURE__ */ ((SyncLogAction2) => {
722
787
  SyncLogAction2["DELETE"] = "DELETE";
723
788
  return SyncLogAction2;
724
789
  })(SyncLogAction || {});
725
- var syncLogSchema = new Schema29(
790
+ var syncLogSchema = new Schema30(
726
791
  {
727
792
  entity_type: {
728
793
  type: String,
@@ -730,7 +795,7 @@ var syncLogSchema = new Schema29(
730
795
  index: true
731
796
  },
732
797
  entity_id: {
733
- type: Schema29.Types.ObjectId,
798
+ type: Schema30.Types.ObjectId,
734
799
  required: true,
735
800
  index: true
736
801
  },
@@ -753,14 +818,14 @@ var syncLogSchema = new Schema29(
753
818
  },
754
819
  error_message: { type: String },
755
820
  error_code: { type: String },
756
- error_details: { type: Schema29.Types.Mixed },
757
- request_payload: { type: Schema29.Types.Mixed },
758
- response_payload: { type: Schema29.Types.Mixed },
821
+ error_details: { type: Schema30.Types.Mixed },
822
+ request_payload: { type: Schema30.Types.Mixed },
823
+ response_payload: { type: Schema30.Types.Mixed },
759
824
  retry_count: { type: Number, default: 0 },
760
825
  max_retries: { type: Number, default: 3 },
761
826
  next_retry_at: { type: Date },
762
827
  resolved_at: { type: Date },
763
- resolved_by: { type: Schema29.Types.ObjectId, ref: "User" }
828
+ resolved_by: { type: Schema30.Types.ObjectId, ref: "User" }
764
829
  },
765
830
  {
766
831
  timestamps: { createdAt: "created_at", updatedAt: "updated_at" }
@@ -768,13 +833,79 @@ var syncLogSchema = new Schema29(
768
833
  );
769
834
  syncLogSchema.index({ entity_type: 1, entity_id: 1, status: 1 });
770
835
  syncLogSchema.index({ status: 1, next_retry_at: 1 });
771
- var SyncLog = mongoose29.models.SyncLog || model29("SyncLog", syncLogSchema, "sync_logs");
836
+ var SyncLog = mongoose30.models.SyncLog || model30("SyncLog", syncLogSchema, "sync_logs");
772
837
 
773
- // src/announcements/models/Announcements.ts
838
+ // src/sap/models/SapOrders.ts
774
839
  import mongoose31, { Schema as Schema31, model as model31 } from "mongoose";
840
+ var sapOrderSchema = new Schema31(
841
+ {
842
+ doc_entry: { type: Number, required: true, unique: true },
843
+ doc_num: { type: Number, index: true },
844
+ doc_date: { type: Date, index: true },
845
+ doc_due_date: { type: Date },
846
+ tax_date: { type: Date },
847
+ doc_time: { type: Number },
848
+ update_date: { type: Date, index: true },
849
+ update_time: { type: Number },
850
+ card_code: { type: String, index: true },
851
+ card_name: { type: String },
852
+ doc_total: { type: Number },
853
+ doc_total_fc: { type: Number },
854
+ doc_total_sys: { type: Number },
855
+ doc_currency: { type: String },
856
+ doc_rate: { type: Number },
857
+ sales_person_code: { type: Number, index: true },
858
+ vat_sum: { type: Number },
859
+ cancelled: { type: String },
860
+ document_status: { type: String }
861
+ },
862
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
863
+ );
864
+ sapOrderSchema.index(
865
+ { document_status: 1, cancelled: 1 },
866
+ { name: "sap_orders_document_status_cancelled" }
867
+ );
868
+ var SapOrders_default = mongoose31.models.SapOrder || model31("SapOrder", sapOrderSchema, "sap_orders");
869
+
870
+ // src/sap/models/SapOrderLines.ts
871
+ import mongoose32, { Schema as Schema32, model as model32 } from "mongoose";
872
+ var sapOrderLineSchema = new Schema32(
873
+ {
874
+ doc_entry: { type: Number, required: true },
875
+ line_num: { type: Number, required: true },
876
+ item_code: { type: String, index: true },
877
+ item_description: { type: String },
878
+ quantity: { type: Number },
879
+ remaining_open_quantity: { type: Number },
880
+ ship_date: { type: Date, index: true },
881
+ price: { type: Number },
882
+ discount_percent: { type: Number },
883
+ line_total: { type: Number },
884
+ row_total_fc: { type: Number },
885
+ currency: { type: String },
886
+ rate: { type: Number },
887
+ gross_profit: { type: Number },
888
+ sales_person_code: { type: Number, index: true },
889
+ warehouse_code: { type: String, index: true },
890
+ line_status: { type: String }
891
+ },
892
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
893
+ );
894
+ sapOrderLineSchema.index(
895
+ { doc_entry: 1, line_num: 1 },
896
+ { name: "sap_order_lines_doc_entry_line_num_unique", unique: true }
897
+ );
898
+ sapOrderLineSchema.index(
899
+ { line_status: 1, remaining_open_quantity: 1 },
900
+ { name: "sap_order_lines_line_status_remaining_open" }
901
+ );
902
+ var SapOrderLines_default = mongoose32.models.SapOrderLine || model32("SapOrderLine", sapOrderLineSchema, "sap_order_lines");
903
+
904
+ // src/announcements/models/Announcements.ts
905
+ import mongoose34, { Schema as Schema34, model as model34 } from "mongoose";
775
906
 
776
907
  // src/users/models/Users.ts
777
- import mongoose30, { Schema as Schema30, model as model30 } from "mongoose";
908
+ import mongoose33, { Schema as Schema33, model as model33 } from "mongoose";
778
909
  import bcrypt2 from "bcryptjs";
779
910
  var UserRole = /* @__PURE__ */ ((UserRole2) => {
780
911
  UserRole2["ADMIN"] = "admin";
@@ -790,7 +921,7 @@ var UserStatus = /* @__PURE__ */ ((UserStatus2) => {
790
921
  UserStatus2["SUSPENDED"] = "suspended";
791
922
  return UserStatus2;
792
923
  })(UserStatus || {});
793
- var usersSchema = new Schema30({
924
+ var usersSchema = new Schema33({
794
925
  first_name: { type: String, required: true },
795
926
  middle_name: { type: String },
796
927
  last_name: { type: String, required: true },
@@ -812,32 +943,32 @@ var usersSchema = new Schema30({
812
943
  sap_id: { type: String },
813
944
  sap_employee_id: { type: String },
814
945
  created_at: { type: Date, default: Date.now },
815
- created_by: { type: Schema30.Types.Mixed, ref: "User" },
946
+ created_by: { type: Schema33.Types.Mixed, ref: "User" },
816
947
  updated_at: { type: Date },
817
- updated_by: { type: Schema30.Types.ObjectId, ref: "User" },
948
+ updated_by: { type: Schema33.Types.ObjectId, ref: "User" },
818
949
  deleted_at: { type: Date },
819
- deleted_by: { type: Schema30.Types.ObjectId, ref: "User" }
950
+ deleted_by: { type: Schema33.Types.ObjectId, ref: "User" }
820
951
  });
821
952
  usersSchema.pre("save", async function() {
822
953
  if (this.isModified("password")) {
823
954
  this.password = await bcrypt2.hash(this.password, 12);
824
955
  }
825
956
  });
826
- var Users_default = mongoose30.models.User || model30("User", usersSchema, "users");
957
+ var Users_default = mongoose33.models.User || model33("User", usersSchema, "users");
827
958
 
828
959
  // src/announcements/models/Announcements.ts
829
- var announcementSchema = new Schema31({
960
+ var announcementSchema = new Schema34({
830
961
  created_by: {
831
- type: Schema31.Types.ObjectId,
962
+ type: Schema34.Types.ObjectId,
832
963
  ref: "User",
833
964
  required: true
834
965
  },
835
966
  updated_by: {
836
- type: Schema31.Types.ObjectId,
967
+ type: Schema34.Types.ObjectId,
837
968
  ref: "User"
838
969
  },
839
970
  deleted_by: {
840
- type: Schema31.Types.ObjectId,
971
+ type: Schema34.Types.ObjectId,
841
972
  ref: "User"
842
973
  },
843
974
  created_at: {
@@ -866,13 +997,13 @@ var announcementSchema = new Schema31({
866
997
  }
867
998
  }
868
999
  });
869
- var Announcements_default = mongoose31.models.Announcement || model31("Announcement", announcementSchema, "announcements");
1000
+ var Announcements_default = mongoose34.models.Announcement || model34("Announcement", announcementSchema, "announcements");
870
1001
 
871
1002
  // src/carts/models/Carts.ts
872
- import mongoose32, { Schema as Schema32, model as model32, Types as Types14 } from "mongoose";
873
- var cartItemSchema = new Schema32(
1003
+ import mongoose35, { Schema as Schema35, model as model35, Types as Types15 } from "mongoose";
1004
+ var cartItemSchema = new Schema35(
874
1005
  {
875
- article_id: { type: Types14.ObjectId, ref: "Article", required: true },
1006
+ article_id: { type: Types15.ObjectId, ref: "Article", required: true },
876
1007
  quantity: { type: Number, required: true, min: 1 },
877
1008
  unit_price: { type: Number },
878
1009
  line_subtotal: { type: Number },
@@ -880,10 +1011,10 @@ var cartItemSchema = new Schema32(
880
1011
  },
881
1012
  { _id: false }
882
1013
  );
883
- var cartSchema = new Schema32(
1014
+ var cartSchema = new Schema35(
884
1015
  {
885
1016
  customer_id: {
886
- type: Types14.ObjectId,
1017
+ type: Types15.ObjectId,
887
1018
  ref: "Customer",
888
1019
  required: true
889
1020
  },
@@ -893,7 +1024,7 @@ var cartSchema = new Schema32(
893
1024
  default: "ACTIVE"
894
1025
  },
895
1026
  currency: { type: String, default: "MXN" },
896
- price_list_id: { type: Types14.ObjectId, ref: "PriceList" },
1027
+ price_list_id: { type: Types15.ObjectId, ref: "PriceList" },
897
1028
  expires_at: { type: Date },
898
1029
  subtotal: { type: Number, default: 0 },
899
1030
  items: { type: [cartItemSchema], default: [] }
@@ -904,15 +1035,15 @@ var cartSchema = new Schema32(
904
1035
  );
905
1036
  cartSchema.index({ customer_id: 1 }, { unique: true, name: "carts_customer_unique" });
906
1037
  cartSchema.index({ updated_at: -1 }, { name: "carts_updated_at" });
907
- var Carts_default = mongoose32.models.Cart || model32("Cart", cartSchema, "carts");
1038
+ var Carts_default = mongoose35.models.Cart || model35("Cart", cartSchema, "carts");
908
1039
 
909
1040
  // src/auth/models/RefreshTokens.ts
910
- import mongoose33, {
911
- Schema as Schema33,
912
- model as model33
1041
+ import mongoose36, {
1042
+ Schema as Schema36,
1043
+ model as model36
913
1044
  } from "mongoose";
914
- var refreshTokenSchema = new Schema33({
915
- customer_id: { type: Schema33.Types.ObjectId, ref: "Customer", required: true },
1045
+ var refreshTokenSchema = new Schema36({
1046
+ customer_id: { type: Schema36.Types.ObjectId, ref: "Customer", required: true },
916
1047
  // Store only SHA-256 hash of the opaque refresh token (base64url). Never store the raw token.
917
1048
  token_hash: { type: String, required: true },
918
1049
  expires_at: { type: Date, required: true },
@@ -927,16 +1058,16 @@ refreshTokenSchema.index({ customer_id: 1, expires_at: 1 });
927
1058
  refreshTokenSchema.pre("save", function() {
928
1059
  this.updated_at = /* @__PURE__ */ new Date();
929
1060
  });
930
- var RefreshToken = mongoose33.models.RefreshToken || model33("RefreshToken", refreshTokenSchema, "refresh_tokens");
1061
+ var RefreshToken = mongoose36.models.RefreshToken || model36("RefreshToken", refreshTokenSchema, "refresh_tokens");
931
1062
  var RefreshTokens_default = RefreshToken;
932
1063
 
933
1064
  // src/auth/models/PasswordResetTokens.ts
934
- import mongoose34, {
935
- Schema as Schema34,
936
- model as model34
1065
+ import mongoose37, {
1066
+ Schema as Schema37,
1067
+ model as model37
937
1068
  } from "mongoose";
938
- var passwordResetTokenSchema = new Schema34({
939
- customer_id: { type: Schema34.Types.ObjectId, ref: "Customer", required: true },
1069
+ var passwordResetTokenSchema = new Schema37({
1070
+ customer_id: { type: Schema37.Types.ObjectId, ref: "Customer", required: true },
940
1071
  // Store only SHA-256 hash of the opaque reset token (base64url). Never store the raw token.
941
1072
  token_hash: { type: String, required: true },
942
1073
  expires_at: { type: Date, required: true },
@@ -950,16 +1081,16 @@ passwordResetTokenSchema.index({ customer_id: 1, expires_at: 1 });
950
1081
  passwordResetTokenSchema.pre("save", function(next) {
951
1082
  this.updated_at = /* @__PURE__ */ new Date();
952
1083
  });
953
- var PasswordResetToken = mongoose34.models.PasswordResetToken || model34("PasswordResetToken", passwordResetTokenSchema, "password_reset_tokens");
1084
+ var PasswordResetToken = mongoose37.models.PasswordResetToken || model37("PasswordResetToken", passwordResetTokenSchema, "password_reset_tokens");
954
1085
  var PasswordResetTokens_default = PasswordResetToken;
955
1086
 
956
1087
  // src/auth/models/EmailVerificationTokens.ts
957
- import mongoose35, {
958
- Schema as Schema35,
959
- model as model35
1088
+ import mongoose38, {
1089
+ Schema as Schema38,
1090
+ model as model38
960
1091
  } from "mongoose";
961
- var emailVerificationTokenSchema = new Schema35({
962
- customer_id: { type: Schema35.Types.ObjectId, ref: "Customer", required: true },
1092
+ var emailVerificationTokenSchema = new Schema38({
1093
+ customer_id: { type: Schema38.Types.ObjectId, ref: "Customer", required: true },
963
1094
  // Store only SHA-256 hash of the opaque email verification token. Never store the raw token.
964
1095
  token_hash: { type: String, required: true },
965
1096
  expires_at: { type: Date, required: true },
@@ -970,7 +1101,7 @@ var emailVerificationTokenSchema = new Schema35({
970
1101
  emailVerificationTokenSchema.index({ token_hash: 1 }, { unique: true });
971
1102
  emailVerificationTokenSchema.index({ expires_at: 1 }, { expireAfterSeconds: 0 });
972
1103
  emailVerificationTokenSchema.index({ customer_id: 1, expires_at: 1 });
973
- var EmailVerificationToken = mongoose35.models.EmailVerificationToken || model35(
1104
+ var EmailVerificationToken = mongoose38.models.EmailVerificationToken || model38(
974
1105
  "EmailVerificationToken",
975
1106
  emailVerificationTokenSchema,
976
1107
  "email_verification_tokens"
@@ -978,7 +1109,7 @@ var EmailVerificationToken = mongoose35.models.EmailVerificationToken || model35
978
1109
  var EmailVerificationTokens_default = EmailVerificationToken;
979
1110
 
980
1111
  // src/payments/models/PaymentMethods.ts
981
- import mongoose36, { Schema as Schema36, model as model36 } from "mongoose";
1112
+ import mongoose39, { Schema as Schema39, model as model39 } from "mongoose";
982
1113
  var PaymentProvider = /* @__PURE__ */ ((PaymentProvider3) => {
983
1114
  PaymentProvider3["STRIPE"] = "stripe";
984
1115
  return PaymentProvider3;
@@ -990,9 +1121,9 @@ var PaymentMethodType = /* @__PURE__ */ ((PaymentMethodType2) => {
990
1121
  PaymentMethodType2["BANK_TRANSFER"] = "bank_transfer";
991
1122
  return PaymentMethodType2;
992
1123
  })(PaymentMethodType || {});
993
- var paymentMethodSchema = new Schema36(
1124
+ var paymentMethodSchema = new Schema39(
994
1125
  {
995
- customer_id: { type: Schema36.Types.ObjectId, ref: "Customer", required: true },
1126
+ customer_id: { type: Schema39.Types.ObjectId, ref: "Customer", required: true },
996
1127
  provider: {
997
1128
  type: String,
998
1129
  enum: Object.values(PaymentProvider),
@@ -1018,7 +1149,7 @@ var paymentMethodSchema = new Schema36(
1018
1149
  },
1019
1150
  is_default: { type: Boolean, default: false },
1020
1151
  deleted_at: { type: Date },
1021
- deleted_by: { type: Schema36.Types.ObjectId, ref: "User" }
1152
+ deleted_by: { type: Schema39.Types.ObjectId, ref: "User" }
1022
1153
  },
1023
1154
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
1024
1155
  );
@@ -1034,10 +1165,10 @@ paymentMethodSchema.index(
1034
1165
  { customer_id: 1, is_default: 1 },
1035
1166
  { name: "payment_methods_default_lookup" }
1036
1167
  );
1037
- var PaymentMethods_default = mongoose36.models.CustomerPaymentMethod || model36("CustomerPaymentMethod", paymentMethodSchema, "customer_payment_methods");
1168
+ var PaymentMethods_default = mongoose39.models.CustomerPaymentMethod || model39("CustomerPaymentMethod", paymentMethodSchema, "customer_payment_methods");
1038
1169
 
1039
1170
  // src/payments/models/Payments.ts
1040
- import mongoose37, { Schema as Schema37, model as model37 } from "mongoose";
1171
+ import mongoose40, { Schema as Schema40, model as model40 } from "mongoose";
1041
1172
  var PaymentProvider2 = /* @__PURE__ */ ((PaymentProvider3) => {
1042
1173
  PaymentProvider3["STRIPE"] = "stripe";
1043
1174
  return PaymentProvider3;
@@ -1057,11 +1188,11 @@ var TransactionMethod = /* @__PURE__ */ ((TransactionMethod2) => {
1057
1188
  TransactionMethod2["BANK_TRANSFER"] = "bank_transfer";
1058
1189
  return TransactionMethod2;
1059
1190
  })(TransactionMethod || {});
1060
- var orderPaymentSchema = new Schema37(
1191
+ var orderPaymentSchema = new Schema40(
1061
1192
  {
1062
- order_id: { type: Schema37.Types.ObjectId, ref: "Order", required: true },
1063
- customer_id: { type: Schema37.Types.ObjectId, ref: "Customer", required: true },
1064
- payment_method_id: { type: Schema37.Types.ObjectId, ref: "ClientPaymentMethod" },
1193
+ order_id: { type: Schema40.Types.ObjectId, ref: "Order", required: true },
1194
+ customer_id: { type: Schema40.Types.ObjectId, ref: "Customer", required: true },
1195
+ payment_method_id: { type: Schema40.Types.ObjectId, ref: "ClientPaymentMethod" },
1065
1196
  provider: {
1066
1197
  type: String,
1067
1198
  enum: Object.values(PaymentProvider2),
@@ -1084,7 +1215,7 @@ var orderPaymentSchema = new Schema37(
1084
1215
  amount: { type: Number, required: true, min: 0 },
1085
1216
  currency: { type: String, required: true, default: "MXN" },
1086
1217
  deleted_at: { type: Date },
1087
- deleted_by: { type: Schema37.Types.ObjectId, ref: "User" }
1218
+ deleted_by: { type: Schema40.Types.ObjectId, ref: "User" }
1088
1219
  },
1089
1220
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
1090
1221
  );
@@ -1108,7 +1239,7 @@ orderPaymentSchema.index(
1108
1239
  { provider_payment_id: 1 },
1109
1240
  { name: "order_payments_provider_payment_id" }
1110
1241
  );
1111
- var Payments_default = mongoose37.models.OrderPayment || model37("OrderPayment", orderPaymentSchema, "order_payments");
1242
+ var Payments_default = mongoose40.models.OrderPayment || model40("OrderPayment", orderPaymentSchema, "order_payments");
1112
1243
  export {
1113
1244
  Announcements_default as Announcement,
1114
1245
  Article_default as Article,
@@ -1150,8 +1281,12 @@ export {
1150
1281
  QuoteStatus,
1151
1282
  QuoteTerm_default as QuoteTerm,
1152
1283
  RefreshTokens_default as RefreshToken,
1284
+ SapOrders_default as SapOrder,
1285
+ SapOrderLines_default as SapOrderLine,
1153
1286
  State_default as State,
1154
1287
  Status,
1288
+ StockReservations_default as StockReservation,
1289
+ StockReservationStatus,
1155
1290
  SyncLog,
1156
1291
  SyncLogAction,
1157
1292
  SyncLogStatus,