@fesmex/models 0.1.60 → 0.1.62

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.cjs CHANGED
@@ -71,6 +71,8 @@ __export(index_exports, {
71
71
  RefreshToken: () => RefreshTokens_default,
72
72
  State: () => State_default,
73
73
  Status: () => Status,
74
+ StockReservation: () => StockReservations_default,
75
+ StockReservationStatus: () => StockReservationStatus,
74
76
  SyncLog: () => SyncLog,
75
77
  SyncLogAction: () => SyncLogAction,
76
78
  SyncLogStatus: () => SyncLogStatus,
@@ -250,6 +252,30 @@ var articleFileSchema = new import_mongoose8.Schema(
250
252
  },
251
253
  { _id: false }
252
254
  );
255
+ var articleContentSchema = new import_mongoose8.Schema(
256
+ {
257
+ details: { type: String, required: false, trim: true },
258
+ applications: { type: String, required: false, trim: true },
259
+ technical_sheet_url: {
260
+ type: String,
261
+ required: false,
262
+ trim: true,
263
+ validate: {
264
+ validator: (value) => {
265
+ if (!value) return true;
266
+ try {
267
+ new URL(value);
268
+ return true;
269
+ } catch {
270
+ return false;
271
+ }
272
+ },
273
+ message: "technical_sheet_url must be a valid URL"
274
+ }
275
+ }
276
+ },
277
+ { _id: false }
278
+ );
253
279
  var articleSchema = new import_mongoose8.Schema({
254
280
  article_number: { type: String, required: true, unique: true },
255
281
  // SAP ItemCode
@@ -262,6 +288,7 @@ var articleSchema = new import_mongoose8.Schema({
262
288
  tags: { type: [import_mongoose8.Types.ObjectId], ref: "Tag", default: [], index: true },
263
289
  is_featured: { type: Boolean, default: false, index: true },
264
290
  featured_order: { type: Number, default: 0 },
291
+ content: { type: articleContentSchema, required: false },
265
292
  files: {
266
293
  images: { type: [articleFileSchema], required: false },
267
294
  datasheets: { type: [articleFileSchema], required: false }
@@ -349,22 +376,62 @@ var inventoryStockSchema = new import_mongoose14.Schema({
349
376
  inventoryStockSchema.index({ article_id: 1, warehouse_id: 1 }, { name: "inventory_stocks_article_warehouse_unique", unique: true });
350
377
  var InventoryStocks_default = import_mongoose14.default.models.InventoryStock || (0, import_mongoose14.model)("InventoryStock", inventoryStockSchema, "inventory_stocks");
351
378
 
352
- // src/inventory/models/PriceLists.ts
379
+ // src/inventory/models/StockReservations.ts
353
380
  var import_mongoose15 = __toESM(require("mongoose"), 1);
354
- var priceListSchema = new import_mongoose15.Schema({
381
+ var StockReservationStatus = /* @__PURE__ */ ((StockReservationStatus2) => {
382
+ StockReservationStatus2["ACTIVE"] = "active";
383
+ StockReservationStatus2["RELEASED"] = "released";
384
+ StockReservationStatus2["CONSUMED"] = "consumed";
385
+ return StockReservationStatus2;
386
+ })(StockReservationStatus || {});
387
+ var stockReservationSchema = new import_mongoose15.Schema(
388
+ {
389
+ order_id: { type: import_mongoose15.Schema.Types.ObjectId, ref: "Order", required: true },
390
+ article_id: { type: import_mongoose15.Schema.Types.ObjectId, ref: "Article", required: true },
391
+ warehouse_id: { type: import_mongoose15.Schema.Types.ObjectId, ref: "Warehouse", required: true },
392
+ quantity: { type: Number, required: true, min: 1 },
393
+ expires_at: { type: Date, required: true },
394
+ status: {
395
+ type: String,
396
+ enum: Object.values(StockReservationStatus),
397
+ default: "active" /* ACTIVE */,
398
+ required: true
399
+ }
400
+ },
401
+ {
402
+ timestamps: { createdAt: "created_at", updatedAt: "updated_at" }
403
+ }
404
+ );
405
+ stockReservationSchema.index(
406
+ { order_id: 1, article_id: 1, warehouse_id: 1 },
407
+ { name: "stock_reservations_order_article_warehouse" }
408
+ );
409
+ stockReservationSchema.index(
410
+ { status: 1, expires_at: 1 },
411
+ { name: "stock_reservations_status_expires" }
412
+ );
413
+ stockReservationSchema.index(
414
+ { article_id: 1, warehouse_id: 1, status: 1 },
415
+ { name: "stock_reservations_article_warehouse_status" }
416
+ );
417
+ var StockReservations_default = import_mongoose15.default.models.StockReservation || (0, import_mongoose15.model)("StockReservation", stockReservationSchema, "stock_reservations");
418
+
419
+ // src/inventory/models/PriceLists.ts
420
+ var import_mongoose16 = __toESM(require("mongoose"), 1);
421
+ var priceListSchema = new import_mongoose16.Schema({
355
422
  number: { type: String, required: true, unique: true },
356
423
  name: { type: String, required: true },
357
424
  created_at: { type: Date, default: Date.now },
358
425
  updated_at: { type: Date }
359
426
  });
360
- var PriceLists_default = import_mongoose15.default.models.PriceList || (0, import_mongoose15.model)("PriceList", priceListSchema, "price_lists");
427
+ var PriceLists_default = import_mongoose16.default.models.PriceList || (0, import_mongoose16.model)("PriceList", priceListSchema, "price_lists");
361
428
 
362
429
  // src/inventory/models/Category.ts
363
- var import_mongoose16 = __toESM(require("mongoose"), 1);
364
- var categorySchema = new import_mongoose16.Schema({
430
+ var import_mongoose17 = __toESM(require("mongoose"), 1);
431
+ var categorySchema = new import_mongoose17.Schema({
365
432
  name: { type: String, required: true, trim: true },
366
433
  slug: { type: String, required: true, trim: true, lowercase: true },
367
- parent_id: { type: import_mongoose16.Types.ObjectId, ref: "Category", default: null, index: true },
434
+ parent_id: { type: import_mongoose17.Types.ObjectId, ref: "Category", default: null, index: true },
368
435
  order: { type: Number, default: 0 },
369
436
  is_active: { type: Boolean, default: true, index: true },
370
437
  created_at: { type: Date, default: Date.now },
@@ -373,11 +440,11 @@ var categorySchema = new import_mongoose16.Schema({
373
440
  categorySchema.index({ slug: 1 }, { unique: true, name: "categories_slug_unique" });
374
441
  categorySchema.index({ parent_id: 1 }, { name: "categories_parent" });
375
442
  categorySchema.index({ is_active: 1 }, { name: "categories_active" });
376
- var Category_default = import_mongoose16.default.models.Category || (0, import_mongoose16.model)("Category", categorySchema, "categories");
443
+ var Category_default = import_mongoose17.default.models.Category || (0, import_mongoose17.model)("Category", categorySchema, "categories");
377
444
 
378
445
  // src/inventory/models/Tag.ts
379
- var import_mongoose17 = __toESM(require("mongoose"), 1);
380
- var tagSchema = new import_mongoose17.Schema({
446
+ var import_mongoose18 = __toESM(require("mongoose"), 1);
447
+ var tagSchema = new import_mongoose18.Schema({
381
448
  name: { type: String, required: true, trim: true },
382
449
  slug: { type: String, required: true, trim: true, lowercase: true },
383
450
  type: { type: String, enum: ["filter", "sidebar"], default: "filter", index: true },
@@ -388,22 +455,22 @@ var tagSchema = new import_mongoose17.Schema({
388
455
  tagSchema.index({ slug: 1 }, { unique: true, name: "tags_slug_unique" });
389
456
  tagSchema.index({ is_active: 1 }, { name: "tags_active" });
390
457
  tagSchema.index({ type: 1 }, { name: "tags_type" });
391
- var Tag_default = import_mongoose17.default.models.Tag || (0, import_mongoose17.model)("Tag", tagSchema, "tags");
458
+ var Tag_default = import_mongoose18.default.models.Tag || (0, import_mongoose18.model)("Tag", tagSchema, "tags");
392
459
 
393
460
  // src/inventory/models/ArticleViews.ts
394
- var import_mongoose18 = __toESM(require("mongoose"), 1);
395
- var articleViewSchema = new import_mongoose18.Schema(
461
+ var import_mongoose19 = __toESM(require("mongoose"), 1);
462
+ var articleViewSchema = new import_mongoose19.Schema(
396
463
  {
397
- article_id: { type: import_mongoose18.Schema.Types.ObjectId, ref: "Article", required: true },
464
+ article_id: { type: import_mongoose19.Schema.Types.ObjectId, ref: "Article", required: true },
398
465
  visited_at: { type: Date, default: Date.now }
399
466
  },
400
467
  { collection: "article_views" }
401
468
  );
402
- var ArticleView = import_mongoose18.default.models.ArticleView || (0, import_mongoose18.model)("ArticleView", articleViewSchema);
469
+ var ArticleView = import_mongoose19.default.models.ArticleView || (0, import_mongoose19.model)("ArticleView", articleViewSchema);
403
470
  var ArticleViews_default = ArticleView;
404
471
 
405
472
  // src/quotes/models/Quote.ts
406
- var import_mongoose19 = __toESM(require("mongoose"), 1);
473
+ var import_mongoose20 = __toESM(require("mongoose"), 1);
407
474
  var QuoteStatus = /* @__PURE__ */ ((QuoteStatus2) => {
408
475
  QuoteStatus2["OPPORTUNITY"] = "OPPORTUNITY";
409
476
  QuoteStatus2["QUOTE"] = "QUOTE";
@@ -423,21 +490,21 @@ var CreatedMethod = /* @__PURE__ */ ((CreatedMethod2) => {
423
490
  CreatedMethod2["CSV"] = "CSV";
424
491
  return CreatedMethod2;
425
492
  })(CreatedMethod || {});
426
- var quoteSchema = new import_mongoose19.Schema(
493
+ var quoteSchema = new import_mongoose20.Schema(
427
494
  {
428
495
  quote_number: { type: Number, required: true },
429
496
  quote_revision: { type: Number, default: 0 },
430
497
  quote_ref: { type: String },
431
498
  company: { type: String },
432
- company_id: { type: import_mongoose19.Schema.Types.ObjectId, ref: "Client", required: true },
499
+ company_id: { type: import_mongoose20.Schema.Types.ObjectId, ref: "Client", required: true },
433
500
  company_pipedrive_id: { type: String },
434
- contact_id: { type: import_mongoose19.Schema.Types.ObjectId, ref: "ClientContact" },
501
+ contact_id: { type: import_mongoose20.Schema.Types.ObjectId, ref: "ClientContact" },
435
502
  project_name: { type: String },
436
503
  project_lab: { type: String },
437
504
  payment_condition: { type: String },
438
505
  payment_exp: { type: String },
439
- terms_ids: [{ type: import_mongoose19.Schema.Types.ObjectId, ref: "QuoteTerm" }],
440
- currency_id: { type: import_mongoose19.Schema.Types.ObjectId, ref: "Currency" },
506
+ terms_ids: [{ type: import_mongoose20.Schema.Types.ObjectId, ref: "QuoteTerm" }],
507
+ currency_id: { type: import_mongoose20.Schema.Types.ObjectId, ref: "Currency" },
441
508
  iva: { type: String },
442
509
  date: { type: Date },
443
510
  status: { type: String, enum: Object.values(Status), default: "OPEN" /* OPEN */ },
@@ -458,21 +525,21 @@ var quoteSchema = new import_mongoose19.Schema(
458
525
  enum: Object.values(CreatedMethod),
459
526
  default: "MANUAL" /* MANUAL */
460
527
  },
461
- created_by: { type: import_mongoose19.Schema.Types.ObjectId, ref: "User" },
462
- updated_by: { type: import_mongoose19.Schema.Types.ObjectId, ref: "User" },
463
- deleted_by: { type: import_mongoose19.Schema.Types.ObjectId, ref: "User" },
528
+ created_by: { type: import_mongoose20.Schema.Types.ObjectId, ref: "User" },
529
+ updated_by: { type: import_mongoose20.Schema.Types.ObjectId, ref: "User" },
530
+ deleted_by: { type: import_mongoose20.Schema.Types.ObjectId, ref: "User" },
464
531
  deleted_at: { type: Date }
465
532
  },
466
533
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
467
534
  );
468
- var Quote_default = import_mongoose19.default.models.Quote || (0, import_mongoose19.model)("Quote", quoteSchema, "quotes");
535
+ var Quote_default = import_mongoose20.default.models.Quote || (0, import_mongoose20.model)("Quote", quoteSchema, "quotes");
469
536
 
470
537
  // src/quotes/models/QuoteArticle.ts
471
- var import_mongoose20 = __toESM(require("mongoose"), 1);
472
- var quoteArticleSchema = new import_mongoose20.Schema(
538
+ var import_mongoose21 = __toESM(require("mongoose"), 1);
539
+ var quoteArticleSchema = new import_mongoose21.Schema(
473
540
  {
474
- quote_id: { type: import_mongoose20.Schema.Types.ObjectId, ref: "Quote", required: true },
475
- article_id: { type: import_mongoose20.Schema.Types.ObjectId, ref: "Article" },
541
+ quote_id: { type: import_mongoose21.Schema.Types.ObjectId, ref: "Quote", required: true },
542
+ article_id: { type: import_mongoose21.Schema.Types.ObjectId, ref: "Article" },
476
543
  article_number: { type: String },
477
544
  description: { type: String },
478
545
  delivery: { type: String },
@@ -483,18 +550,18 @@ var quoteArticleSchema = new import_mongoose20.Schema(
483
550
  total: { type: Number },
484
551
  utility: { type: Number },
485
552
  type: { type: String },
486
- extra_id: { type: import_mongoose20.Schema.Types.ObjectId, ref: "QuoteArticleExtra" }
553
+ extra_id: { type: import_mongoose21.Schema.Types.ObjectId, ref: "QuoteArticleExtra" }
487
554
  },
488
555
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
489
556
  );
490
- var QuoteArticle_default = import_mongoose20.default.models.QuoteArticle || (0, import_mongoose20.model)("QuoteArticle", quoteArticleSchema, "quote_articles");
557
+ var QuoteArticle_default = import_mongoose21.default.models.QuoteArticle || (0, import_mongoose21.model)("QuoteArticle", quoteArticleSchema, "quote_articles");
491
558
 
492
559
  // src/quotes/models/QuoteArticleExtra.ts
493
- var import_mongoose21 = __toESM(require("mongoose"), 1);
494
- var quoteArticleExtraSchema = new import_mongoose21.Schema(
560
+ var import_mongoose22 = __toESM(require("mongoose"), 1);
561
+ var quoteArticleExtraSchema = new import_mongoose22.Schema(
495
562
  {
496
563
  quote_article_id: {
497
- type: import_mongoose21.Schema.Types.ObjectId,
564
+ type: import_mongoose22.Schema.Types.ObjectId,
498
565
  ref: "QuoteArticle",
499
566
  required: true
500
567
  },
@@ -506,23 +573,23 @@ var quoteArticleExtraSchema = new import_mongoose21.Schema(
506
573
  },
507
574
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
508
575
  );
509
- var QuoteArticleExtra_default = import_mongoose21.default.models.QuoteArticleExtra || (0, import_mongoose21.model)("QuoteArticleExtra", quoteArticleExtraSchema, "quote_article_extras");
576
+ var QuoteArticleExtra_default = import_mongoose22.default.models.QuoteArticleExtra || (0, import_mongoose22.model)("QuoteArticleExtra", quoteArticleExtraSchema, "quote_article_extras");
510
577
 
511
578
  // src/quotes/models/QuoteContact.ts
512
- var import_mongoose22 = __toESM(require("mongoose"), 1);
513
- var quoteContactSchema = new import_mongoose22.Schema({
514
- quote_id: { type: import_mongoose22.Schema.Types.ObjectId, ref: "Quote", required: true },
579
+ var import_mongoose23 = __toESM(require("mongoose"), 1);
580
+ var quoteContactSchema = new import_mongoose23.Schema({
581
+ quote_id: { type: import_mongoose23.Schema.Types.ObjectId, ref: "Quote", required: true },
515
582
  name: String,
516
583
  email: String,
517
584
  mobile: String,
518
585
  pipedrive_id: String,
519
586
  created_at: { type: Date, default: Date.now }
520
587
  });
521
- var QuoteContact_default = import_mongoose22.default.models.QuoteContact || (0, import_mongoose22.model)("QuoteContact", quoteContactSchema, "quote_contacts");
588
+ var QuoteContact_default = import_mongoose23.default.models.QuoteContact || (0, import_mongoose23.model)("QuoteContact", quoteContactSchema, "quote_contacts");
522
589
 
523
590
  // src/quotes/models/QuoteTerm.ts
524
- var import_mongoose23 = __toESM(require("mongoose"), 1);
525
- var quoteTermSchema = new import_mongoose23.Schema(
591
+ var import_mongoose24 = __toESM(require("mongoose"), 1);
592
+ var quoteTermSchema = new import_mongoose24.Schema(
526
593
  {
527
594
  title: String,
528
595
  content: { type: String, required: true },
@@ -533,10 +600,10 @@ var quoteTermSchema = new import_mongoose23.Schema(
533
600
  },
534
601
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
535
602
  );
536
- var QuoteTerm_default = import_mongoose23.default.models.QuoteTerm || (0, import_mongoose23.model)("QuoteTerm", quoteTermSchema, "quote_terms");
603
+ var QuoteTerm_default = import_mongoose24.default.models.QuoteTerm || (0, import_mongoose24.model)("QuoteTerm", quoteTermSchema, "quote_terms");
537
604
 
538
605
  // src/customers/models/Customers.ts
539
- var import_mongoose24 = __toESM(require("mongoose"), 1);
606
+ var import_mongoose25 = __toESM(require("mongoose"), 1);
540
607
  var import_bcryptjs = __toESM(require("bcryptjs"), 1);
541
608
  var CustomerStatus = /* @__PURE__ */ ((CustomerStatus2) => {
542
609
  CustomerStatus2["ACTIVE"] = "active";
@@ -544,7 +611,7 @@ var CustomerStatus = /* @__PURE__ */ ((CustomerStatus2) => {
544
611
  CustomerStatus2["BANNED"] = "banned";
545
612
  return CustomerStatus2;
546
613
  })(CustomerStatus || {});
547
- var customerSchema = new import_mongoose24.Schema({
614
+ var customerSchema = new import_mongoose25.Schema({
548
615
  first_name: { type: String, required: true },
549
616
  last_name: { type: String, required: true },
550
617
  email: { type: String, required: true, unique: true },
@@ -555,7 +622,7 @@ var customerSchema = new import_mongoose24.Schema({
555
622
  enum: Object.values(CustomerStatus),
556
623
  default: "inactive" /* INACTIVE */
557
624
  },
558
- fiscal_profile_id: { type: import_mongoose24.Schema.Types.ObjectId, ref: "FiscalProfile" },
625
+ fiscal_profile_id: { type: import_mongoose25.Schema.Types.ObjectId, ref: "FiscalProfile" },
559
626
  created_at: { type: Date, default: Date.now },
560
627
  updated_at: { type: Date },
561
628
  deleted_at: { type: Date }
@@ -565,13 +632,13 @@ customerSchema.pre("save", async function() {
565
632
  this.password = await import_bcryptjs.default.hash(this.password, 12);
566
633
  }
567
634
  });
568
- var Customer = import_mongoose24.default.models.Customer || (0, import_mongoose24.model)("Customer", customerSchema, "customers");
635
+ var Customer = import_mongoose25.default.models.Customer || (0, import_mongoose25.model)("Customer", customerSchema, "customers");
569
636
  var Customers_default = Customer;
570
637
 
571
638
  // src/customers/models/FiscalProfileType.ts
572
- var import_mongoose25 = __toESM(require("mongoose"), 1);
573
- var fiscalProfileSchema = new import_mongoose25.Schema({
574
- customer_id: { type: import_mongoose25.Schema.Types.ObjectId, ref: "Customer", required: true },
639
+ var import_mongoose26 = __toESM(require("mongoose"), 1);
640
+ var fiscalProfileSchema = new import_mongoose26.Schema({
641
+ customer_id: { type: import_mongoose26.Schema.Types.ObjectId, ref: "Customer", required: true },
575
642
  rfc: { type: String, required: true },
576
643
  razon_social: { type: String, required: true },
577
644
  uso_cfdi: { type: String, required: true },
@@ -580,11 +647,11 @@ var fiscalProfileSchema = new import_mongoose25.Schema({
580
647
  created_at: { type: Date, default: Date.now },
581
648
  updated_at: { type: Date }
582
649
  });
583
- var FiscalProfile = import_mongoose25.default.models.FiscalProfile || (0, import_mongoose25.model)("FiscalProfile", fiscalProfileSchema, "fiscal_profiles");
650
+ var FiscalProfile = import_mongoose26.default.models.FiscalProfile || (0, import_mongoose26.model)("FiscalProfile", fiscalProfileSchema, "fiscal_profiles");
584
651
  var FiscalProfileType_default = FiscalProfile;
585
652
 
586
653
  // src/orders/models/Orders.ts
587
- var import_mongoose26 = __toESM(require("mongoose"), 1);
654
+ var import_mongoose27 = __toESM(require("mongoose"), 1);
588
655
  var OrderStatus = /* @__PURE__ */ ((OrderStatus2) => {
589
656
  OrderStatus2["PENDING"] = "pending";
590
657
  OrderStatus2["CONFIRMED"] = "confirmed";
@@ -612,7 +679,7 @@ var PaymentStatus = /* @__PURE__ */ ((PaymentStatus2) => {
612
679
  PaymentStatus2["REFUNDED"] = "REFUNDED";
613
680
  return PaymentStatus2;
614
681
  })(PaymentStatus || {});
615
- var shippingAddressSchema = new import_mongoose26.Schema(
682
+ var shippingAddressSchema = new import_mongoose27.Schema(
616
683
  {
617
684
  full_name: { type: String, required: true, trim: true },
618
685
  phone: { type: String, required: true, trim: true },
@@ -625,18 +692,18 @@ var shippingAddressSchema = new import_mongoose26.Schema(
625
692
  },
626
693
  { _id: false }
627
694
  );
628
- var orderItemSchema = new import_mongoose26.Schema(
695
+ var orderItemSchema = new import_mongoose27.Schema(
629
696
  {
630
- article_id: { type: import_mongoose26.Schema.Types.ObjectId, ref: "Article", required: true },
697
+ article_id: { type: import_mongoose27.Schema.Types.ObjectId, ref: "Article", required: true },
631
698
  quantity: { type: Number, required: true, min: 1 },
632
699
  unit_price: { type: Number, required: true, min: 0 },
633
700
  total: { type: Number, required: true, min: 0 }
634
701
  },
635
702
  { _id: false }
636
703
  );
637
- var orderSchema = new import_mongoose26.Schema(
704
+ var orderSchema = new import_mongoose27.Schema(
638
705
  {
639
- customer_id: { type: import_mongoose26.Schema.Types.ObjectId, ref: "Customer", required: true },
706
+ customer_id: { type: import_mongoose27.Schema.Types.ObjectId, ref: "Customer", required: true },
640
707
  items: {
641
708
  type: [orderItemSchema],
642
709
  required: true,
@@ -669,7 +736,7 @@ var orderSchema = new import_mongoose26.Schema(
669
736
  delivery_type: { type: String, enum: ["shipping", "pickup"], required: true },
670
737
  subtotal: { type: Number, required: true, min: 0 },
671
738
  shipping_fee: { type: Number, min: 0, default: null },
672
- shipping_state_id: { type: import_mongoose26.Schema.Types.ObjectId, ref: "State", default: null },
739
+ shipping_state_id: { type: import_mongoose27.Schema.Types.ObjectId, ref: "State", default: null },
673
740
  total: { type: Number, required: true, min: 0 },
674
741
  notes: { type: String, trim: true },
675
742
  should_sync: { type: Boolean, default: true },
@@ -706,14 +773,14 @@ orderSchema.index(
706
773
  { should_sync: 1, sap_sync_status: 1 },
707
774
  { name: "orders_should_sync_sap_status" }
708
775
  );
709
- var Orders_default = import_mongoose26.default.models.Order || (0, import_mongoose26.model)("Order", orderSchema, "orders");
776
+ var Orders_default = import_mongoose27.default.models.Order || (0, import_mongoose27.model)("Order", orderSchema, "orders");
710
777
 
711
778
  // src/orders/models/OrderStatusLogs.ts
712
- var import_mongoose27 = __toESM(require("mongoose"), 1);
713
- var orderStatusLogSchema = new import_mongoose27.Schema(
779
+ var import_mongoose28 = __toESM(require("mongoose"), 1);
780
+ var orderStatusLogSchema = new import_mongoose28.Schema(
714
781
  {
715
782
  order_id: {
716
- type: import_mongoose27.Schema.Types.ObjectId,
783
+ type: import_mongoose28.Schema.Types.ObjectId,
717
784
  ref: "Order",
718
785
  required: true
719
786
  },
@@ -723,7 +790,7 @@ var orderStatusLogSchema = new import_mongoose27.Schema(
723
790
  required: true
724
791
  },
725
792
  changed_by: {
726
- type: import_mongoose27.Schema.Types.ObjectId,
793
+ type: import_mongoose28.Schema.Types.ObjectId,
727
794
  ref: "User",
728
795
  required: true
729
796
  },
@@ -746,11 +813,11 @@ orderStatusLogSchema.index(
746
813
  { changed_by: 1, changed_at: -1 },
747
814
  { name: "order_status_logs_changed_by_changed_at" }
748
815
  );
749
- var OrderStatusLogs_default = import_mongoose27.default.models.OrderStatusLog || (0, import_mongoose27.model)("OrderStatusLog", orderStatusLogSchema);
816
+ var OrderStatusLogs_default = import_mongoose28.default.models.OrderStatusLog || (0, import_mongoose28.model)("OrderStatusLog", orderStatusLogSchema);
750
817
 
751
818
  // src/orders/models/State.ts
752
- var import_mongoose28 = __toESM(require("mongoose"), 1);
753
- var stateSchema = new import_mongoose28.Schema(
819
+ var import_mongoose29 = __toESM(require("mongoose"), 1);
820
+ var stateSchema = new import_mongoose29.Schema(
754
821
  {
755
822
  name: {
756
823
  type: String,
@@ -783,10 +850,10 @@ var stateSchema = new import_mongoose28.Schema(
783
850
  }
784
851
  );
785
852
  stateSchema.index({ name: 1, is_active: 1 }, { name: "states_name_active" });
786
- var State_default = import_mongoose28.default.models.State || (0, import_mongoose28.model)("State", stateSchema, "states");
853
+ var State_default = import_mongoose29.default.models.State || (0, import_mongoose29.model)("State", stateSchema, "states");
787
854
 
788
855
  // src/sap/models/SyncLog.ts
789
- var import_mongoose29 = __toESM(require("mongoose"), 1);
856
+ var import_mongoose30 = __toESM(require("mongoose"), 1);
790
857
  var SyncLogType = /* @__PURE__ */ ((SyncLogType2) => {
791
858
  SyncLogType2["SAP_QUOTATION"] = "SAP_QUOTATION";
792
859
  SyncLogType2["SAP_SALES_ORDER"] = "SAP_SALES_ORDER";
@@ -806,7 +873,7 @@ var SyncLogAction = /* @__PURE__ */ ((SyncLogAction2) => {
806
873
  SyncLogAction2["DELETE"] = "DELETE";
807
874
  return SyncLogAction2;
808
875
  })(SyncLogAction || {});
809
- var syncLogSchema = new import_mongoose29.Schema(
876
+ var syncLogSchema = new import_mongoose30.Schema(
810
877
  {
811
878
  entity_type: {
812
879
  type: String,
@@ -814,7 +881,7 @@ var syncLogSchema = new import_mongoose29.Schema(
814
881
  index: true
815
882
  },
816
883
  entity_id: {
817
- type: import_mongoose29.Schema.Types.ObjectId,
884
+ type: import_mongoose30.Schema.Types.ObjectId,
818
885
  required: true,
819
886
  index: true
820
887
  },
@@ -837,14 +904,14 @@ var syncLogSchema = new import_mongoose29.Schema(
837
904
  },
838
905
  error_message: { type: String },
839
906
  error_code: { type: String },
840
- error_details: { type: import_mongoose29.Schema.Types.Mixed },
841
- request_payload: { type: import_mongoose29.Schema.Types.Mixed },
842
- response_payload: { type: import_mongoose29.Schema.Types.Mixed },
907
+ error_details: { type: import_mongoose30.Schema.Types.Mixed },
908
+ request_payload: { type: import_mongoose30.Schema.Types.Mixed },
909
+ response_payload: { type: import_mongoose30.Schema.Types.Mixed },
843
910
  retry_count: { type: Number, default: 0 },
844
911
  max_retries: { type: Number, default: 3 },
845
912
  next_retry_at: { type: Date },
846
913
  resolved_at: { type: Date },
847
- resolved_by: { type: import_mongoose29.Schema.Types.ObjectId, ref: "User" }
914
+ resolved_by: { type: import_mongoose30.Schema.Types.ObjectId, ref: "User" }
848
915
  },
849
916
  {
850
917
  timestamps: { createdAt: "created_at", updatedAt: "updated_at" }
@@ -852,13 +919,13 @@ var syncLogSchema = new import_mongoose29.Schema(
852
919
  );
853
920
  syncLogSchema.index({ entity_type: 1, entity_id: 1, status: 1 });
854
921
  syncLogSchema.index({ status: 1, next_retry_at: 1 });
855
- var SyncLog = import_mongoose29.default.models.SyncLog || (0, import_mongoose29.model)("SyncLog", syncLogSchema, "sync_logs");
922
+ var SyncLog = import_mongoose30.default.models.SyncLog || (0, import_mongoose30.model)("SyncLog", syncLogSchema, "sync_logs");
856
923
 
857
924
  // src/announcements/models/Announcements.ts
858
- var import_mongoose31 = __toESM(require("mongoose"), 1);
925
+ var import_mongoose32 = __toESM(require("mongoose"), 1);
859
926
 
860
927
  // src/users/models/Users.ts
861
- var import_mongoose30 = __toESM(require("mongoose"), 1);
928
+ var import_mongoose31 = __toESM(require("mongoose"), 1);
862
929
  var import_bcryptjs2 = __toESM(require("bcryptjs"), 1);
863
930
  var UserRole = /* @__PURE__ */ ((UserRole2) => {
864
931
  UserRole2["ADMIN"] = "admin";
@@ -874,7 +941,7 @@ var UserStatus = /* @__PURE__ */ ((UserStatus2) => {
874
941
  UserStatus2["SUSPENDED"] = "suspended";
875
942
  return UserStatus2;
876
943
  })(UserStatus || {});
877
- var usersSchema = new import_mongoose30.Schema({
944
+ var usersSchema = new import_mongoose31.Schema({
878
945
  first_name: { type: String, required: true },
879
946
  middle_name: { type: String },
880
947
  last_name: { type: String, required: true },
@@ -896,32 +963,32 @@ var usersSchema = new import_mongoose30.Schema({
896
963
  sap_id: { type: String },
897
964
  sap_employee_id: { type: String },
898
965
  created_at: { type: Date, default: Date.now },
899
- created_by: { type: import_mongoose30.Schema.Types.Mixed, ref: "User" },
966
+ created_by: { type: import_mongoose31.Schema.Types.Mixed, ref: "User" },
900
967
  updated_at: { type: Date },
901
- updated_by: { type: import_mongoose30.Schema.Types.ObjectId, ref: "User" },
968
+ updated_by: { type: import_mongoose31.Schema.Types.ObjectId, ref: "User" },
902
969
  deleted_at: { type: Date },
903
- deleted_by: { type: import_mongoose30.Schema.Types.ObjectId, ref: "User" }
970
+ deleted_by: { type: import_mongoose31.Schema.Types.ObjectId, ref: "User" }
904
971
  });
905
972
  usersSchema.pre("save", async function() {
906
973
  if (this.isModified("password")) {
907
974
  this.password = await import_bcryptjs2.default.hash(this.password, 12);
908
975
  }
909
976
  });
910
- var Users_default = import_mongoose30.default.models.User || (0, import_mongoose30.model)("User", usersSchema, "users");
977
+ var Users_default = import_mongoose31.default.models.User || (0, import_mongoose31.model)("User", usersSchema, "users");
911
978
 
912
979
  // src/announcements/models/Announcements.ts
913
- var announcementSchema = new import_mongoose31.Schema({
980
+ var announcementSchema = new import_mongoose32.Schema({
914
981
  created_by: {
915
- type: import_mongoose31.Schema.Types.ObjectId,
982
+ type: import_mongoose32.Schema.Types.ObjectId,
916
983
  ref: "User",
917
984
  required: true
918
985
  },
919
986
  updated_by: {
920
- type: import_mongoose31.Schema.Types.ObjectId,
987
+ type: import_mongoose32.Schema.Types.ObjectId,
921
988
  ref: "User"
922
989
  },
923
990
  deleted_by: {
924
- type: import_mongoose31.Schema.Types.ObjectId,
991
+ type: import_mongoose32.Schema.Types.ObjectId,
925
992
  ref: "User"
926
993
  },
927
994
  created_at: {
@@ -950,13 +1017,13 @@ var announcementSchema = new import_mongoose31.Schema({
950
1017
  }
951
1018
  }
952
1019
  });
953
- var Announcements_default = import_mongoose31.default.models.Announcement || (0, import_mongoose31.model)("Announcement", announcementSchema, "announcements");
1020
+ var Announcements_default = import_mongoose32.default.models.Announcement || (0, import_mongoose32.model)("Announcement", announcementSchema, "announcements");
954
1021
 
955
1022
  // src/carts/models/Carts.ts
956
- var import_mongoose32 = __toESM(require("mongoose"), 1);
957
- var cartItemSchema = new import_mongoose32.Schema(
1023
+ var import_mongoose33 = __toESM(require("mongoose"), 1);
1024
+ var cartItemSchema = new import_mongoose33.Schema(
958
1025
  {
959
- article_id: { type: import_mongoose32.Types.ObjectId, ref: "Article", required: true },
1026
+ article_id: { type: import_mongoose33.Types.ObjectId, ref: "Article", required: true },
960
1027
  quantity: { type: Number, required: true, min: 1 },
961
1028
  unit_price: { type: Number },
962
1029
  line_subtotal: { type: Number },
@@ -964,10 +1031,10 @@ var cartItemSchema = new import_mongoose32.Schema(
964
1031
  },
965
1032
  { _id: false }
966
1033
  );
967
- var cartSchema = new import_mongoose32.Schema(
1034
+ var cartSchema = new import_mongoose33.Schema(
968
1035
  {
969
1036
  customer_id: {
970
- type: import_mongoose32.Types.ObjectId,
1037
+ type: import_mongoose33.Types.ObjectId,
971
1038
  ref: "Customer",
972
1039
  required: true
973
1040
  },
@@ -977,7 +1044,7 @@ var cartSchema = new import_mongoose32.Schema(
977
1044
  default: "ACTIVE"
978
1045
  },
979
1046
  currency: { type: String, default: "MXN" },
980
- price_list_id: { type: import_mongoose32.Types.ObjectId, ref: "PriceList" },
1047
+ price_list_id: { type: import_mongoose33.Types.ObjectId, ref: "PriceList" },
981
1048
  expires_at: { type: Date },
982
1049
  subtotal: { type: Number, default: 0 },
983
1050
  items: { type: [cartItemSchema], default: [] }
@@ -988,12 +1055,12 @@ var cartSchema = new import_mongoose32.Schema(
988
1055
  );
989
1056
  cartSchema.index({ customer_id: 1 }, { unique: true, name: "carts_customer_unique" });
990
1057
  cartSchema.index({ updated_at: -1 }, { name: "carts_updated_at" });
991
- var Carts_default = import_mongoose32.default.models.Cart || (0, import_mongoose32.model)("Cart", cartSchema, "carts");
1058
+ var Carts_default = import_mongoose33.default.models.Cart || (0, import_mongoose33.model)("Cart", cartSchema, "carts");
992
1059
 
993
1060
  // src/auth/models/RefreshTokens.ts
994
- var import_mongoose33 = __toESM(require("mongoose"), 1);
995
- var refreshTokenSchema = new import_mongoose33.Schema({
996
- customer_id: { type: import_mongoose33.Schema.Types.ObjectId, ref: "Customer", required: true },
1061
+ var import_mongoose34 = __toESM(require("mongoose"), 1);
1062
+ var refreshTokenSchema = new import_mongoose34.Schema({
1063
+ customer_id: { type: import_mongoose34.Schema.Types.ObjectId, ref: "Customer", required: true },
997
1064
  // Store only SHA-256 hash of the opaque refresh token (base64url). Never store the raw token.
998
1065
  token_hash: { type: String, required: true },
999
1066
  expires_at: { type: Date, required: true },
@@ -1008,13 +1075,13 @@ refreshTokenSchema.index({ customer_id: 1, expires_at: 1 });
1008
1075
  refreshTokenSchema.pre("save", function() {
1009
1076
  this.updated_at = /* @__PURE__ */ new Date();
1010
1077
  });
1011
- var RefreshToken = import_mongoose33.default.models.RefreshToken || (0, import_mongoose33.model)("RefreshToken", refreshTokenSchema, "refresh_tokens");
1078
+ var RefreshToken = import_mongoose34.default.models.RefreshToken || (0, import_mongoose34.model)("RefreshToken", refreshTokenSchema, "refresh_tokens");
1012
1079
  var RefreshTokens_default = RefreshToken;
1013
1080
 
1014
1081
  // src/auth/models/PasswordResetTokens.ts
1015
- var import_mongoose34 = __toESM(require("mongoose"), 1);
1016
- var passwordResetTokenSchema = new import_mongoose34.Schema({
1017
- customer_id: { type: import_mongoose34.Schema.Types.ObjectId, ref: "Customer", required: true },
1082
+ var import_mongoose35 = __toESM(require("mongoose"), 1);
1083
+ var passwordResetTokenSchema = new import_mongoose35.Schema({
1084
+ customer_id: { type: import_mongoose35.Schema.Types.ObjectId, ref: "Customer", required: true },
1018
1085
  // Store only SHA-256 hash of the opaque reset token (base64url). Never store the raw token.
1019
1086
  token_hash: { type: String, required: true },
1020
1087
  expires_at: { type: Date, required: true },
@@ -1028,13 +1095,13 @@ passwordResetTokenSchema.index({ customer_id: 1, expires_at: 1 });
1028
1095
  passwordResetTokenSchema.pre("save", function(next) {
1029
1096
  this.updated_at = /* @__PURE__ */ new Date();
1030
1097
  });
1031
- var PasswordResetToken = import_mongoose34.default.models.PasswordResetToken || (0, import_mongoose34.model)("PasswordResetToken", passwordResetTokenSchema, "password_reset_tokens");
1098
+ var PasswordResetToken = import_mongoose35.default.models.PasswordResetToken || (0, import_mongoose35.model)("PasswordResetToken", passwordResetTokenSchema, "password_reset_tokens");
1032
1099
  var PasswordResetTokens_default = PasswordResetToken;
1033
1100
 
1034
1101
  // src/auth/models/EmailVerificationTokens.ts
1035
- var import_mongoose35 = __toESM(require("mongoose"), 1);
1036
- var emailVerificationTokenSchema = new import_mongoose35.Schema({
1037
- customer_id: { type: import_mongoose35.Schema.Types.ObjectId, ref: "Customer", required: true },
1102
+ var import_mongoose36 = __toESM(require("mongoose"), 1);
1103
+ var emailVerificationTokenSchema = new import_mongoose36.Schema({
1104
+ customer_id: { type: import_mongoose36.Schema.Types.ObjectId, ref: "Customer", required: true },
1038
1105
  // Store only SHA-256 hash of the opaque email verification token. Never store the raw token.
1039
1106
  token_hash: { type: String, required: true },
1040
1107
  expires_at: { type: Date, required: true },
@@ -1045,7 +1112,7 @@ var emailVerificationTokenSchema = new import_mongoose35.Schema({
1045
1112
  emailVerificationTokenSchema.index({ token_hash: 1 }, { unique: true });
1046
1113
  emailVerificationTokenSchema.index({ expires_at: 1 }, { expireAfterSeconds: 0 });
1047
1114
  emailVerificationTokenSchema.index({ customer_id: 1, expires_at: 1 });
1048
- var EmailVerificationToken = import_mongoose35.default.models.EmailVerificationToken || (0, import_mongoose35.model)(
1115
+ var EmailVerificationToken = import_mongoose36.default.models.EmailVerificationToken || (0, import_mongoose36.model)(
1049
1116
  "EmailVerificationToken",
1050
1117
  emailVerificationTokenSchema,
1051
1118
  "email_verification_tokens"
@@ -1053,7 +1120,7 @@ var EmailVerificationToken = import_mongoose35.default.models.EmailVerificationT
1053
1120
  var EmailVerificationTokens_default = EmailVerificationToken;
1054
1121
 
1055
1122
  // src/payments/models/PaymentMethods.ts
1056
- var import_mongoose36 = __toESM(require("mongoose"), 1);
1123
+ var import_mongoose37 = __toESM(require("mongoose"), 1);
1057
1124
  var PaymentProvider = /* @__PURE__ */ ((PaymentProvider3) => {
1058
1125
  PaymentProvider3["STRIPE"] = "stripe";
1059
1126
  return PaymentProvider3;
@@ -1065,9 +1132,9 @@ var PaymentMethodType = /* @__PURE__ */ ((PaymentMethodType2) => {
1065
1132
  PaymentMethodType2["BANK_TRANSFER"] = "bank_transfer";
1066
1133
  return PaymentMethodType2;
1067
1134
  })(PaymentMethodType || {});
1068
- var paymentMethodSchema = new import_mongoose36.Schema(
1135
+ var paymentMethodSchema = new import_mongoose37.Schema(
1069
1136
  {
1070
- customer_id: { type: import_mongoose36.Schema.Types.ObjectId, ref: "Customer", required: true },
1137
+ customer_id: { type: import_mongoose37.Schema.Types.ObjectId, ref: "Customer", required: true },
1071
1138
  provider: {
1072
1139
  type: String,
1073
1140
  enum: Object.values(PaymentProvider),
@@ -1093,7 +1160,7 @@ var paymentMethodSchema = new import_mongoose36.Schema(
1093
1160
  },
1094
1161
  is_default: { type: Boolean, default: false },
1095
1162
  deleted_at: { type: Date },
1096
- deleted_by: { type: import_mongoose36.Schema.Types.ObjectId, ref: "User" }
1163
+ deleted_by: { type: import_mongoose37.Schema.Types.ObjectId, ref: "User" }
1097
1164
  },
1098
1165
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
1099
1166
  );
@@ -1109,10 +1176,10 @@ paymentMethodSchema.index(
1109
1176
  { customer_id: 1, is_default: 1 },
1110
1177
  { name: "payment_methods_default_lookup" }
1111
1178
  );
1112
- var PaymentMethods_default = import_mongoose36.default.models.CustomerPaymentMethod || (0, import_mongoose36.model)("CustomerPaymentMethod", paymentMethodSchema, "customer_payment_methods");
1179
+ var PaymentMethods_default = import_mongoose37.default.models.CustomerPaymentMethod || (0, import_mongoose37.model)("CustomerPaymentMethod", paymentMethodSchema, "customer_payment_methods");
1113
1180
 
1114
1181
  // src/payments/models/Payments.ts
1115
- var import_mongoose37 = __toESM(require("mongoose"), 1);
1182
+ var import_mongoose38 = __toESM(require("mongoose"), 1);
1116
1183
  var PaymentProvider2 = /* @__PURE__ */ ((PaymentProvider3) => {
1117
1184
  PaymentProvider3["STRIPE"] = "stripe";
1118
1185
  return PaymentProvider3;
@@ -1132,11 +1199,11 @@ var TransactionMethod = /* @__PURE__ */ ((TransactionMethod2) => {
1132
1199
  TransactionMethod2["BANK_TRANSFER"] = "bank_transfer";
1133
1200
  return TransactionMethod2;
1134
1201
  })(TransactionMethod || {});
1135
- var orderPaymentSchema = new import_mongoose37.Schema(
1202
+ var orderPaymentSchema = new import_mongoose38.Schema(
1136
1203
  {
1137
- order_id: { type: import_mongoose37.Schema.Types.ObjectId, ref: "Order", required: true },
1138
- customer_id: { type: import_mongoose37.Schema.Types.ObjectId, ref: "Customer", required: true },
1139
- payment_method_id: { type: import_mongoose37.Schema.Types.ObjectId, ref: "ClientPaymentMethod" },
1204
+ order_id: { type: import_mongoose38.Schema.Types.ObjectId, ref: "Order", required: true },
1205
+ customer_id: { type: import_mongoose38.Schema.Types.ObjectId, ref: "Customer", required: true },
1206
+ payment_method_id: { type: import_mongoose38.Schema.Types.ObjectId, ref: "ClientPaymentMethod" },
1140
1207
  provider: {
1141
1208
  type: String,
1142
1209
  enum: Object.values(PaymentProvider2),
@@ -1159,7 +1226,7 @@ var orderPaymentSchema = new import_mongoose37.Schema(
1159
1226
  amount: { type: Number, required: true, min: 0 },
1160
1227
  currency: { type: String, required: true, default: "MXN" },
1161
1228
  deleted_at: { type: Date },
1162
- deleted_by: { type: import_mongoose37.Schema.Types.ObjectId, ref: "User" }
1229
+ deleted_by: { type: import_mongoose38.Schema.Types.ObjectId, ref: "User" }
1163
1230
  },
1164
1231
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
1165
1232
  );
@@ -1183,7 +1250,7 @@ orderPaymentSchema.index(
1183
1250
  { provider_payment_id: 1 },
1184
1251
  { name: "order_payments_provider_payment_id" }
1185
1252
  );
1186
- var Payments_default = import_mongoose37.default.models.OrderPayment || (0, import_mongoose37.model)("OrderPayment", orderPaymentSchema, "order_payments");
1253
+ var Payments_default = import_mongoose38.default.models.OrderPayment || (0, import_mongoose38.model)("OrderPayment", orderPaymentSchema, "order_payments");
1187
1254
  // Annotate the CommonJS export names for ESM import in node:
1188
1255
  0 && (module.exports = {
1189
1256
  Announcement,
@@ -1228,6 +1295,8 @@ var Payments_default = import_mongoose37.default.models.OrderPayment || (0, impo
1228
1295
  RefreshToken,
1229
1296
  State,
1230
1297
  Status,
1298
+ StockReservation,
1299
+ StockReservationStatus,
1231
1300
  SyncLog,
1232
1301
  SyncLogAction,
1233
1302
  SyncLogStatus,