@fesmex/models 0.1.53 → 0.1.55

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
@@ -34,6 +34,7 @@ __export(index_exports, {
34
34
  ArticleClass: () => ArticleClasses_default,
35
35
  ArticleGroup: () => ArticleGroups_default,
36
36
  ArticlePrice: () => ArticlePrices_default,
37
+ ArticleView: () => ArticleViews_default,
37
38
  Cart: () => Carts_default,
38
39
  Category: () => Category_default,
39
40
  Client: () => Clients_default,
@@ -46,14 +47,18 @@ __export(index_exports, {
46
47
  CreatedMethod: () => CreatedMethod,
47
48
  Currency: () => Currencies_default,
48
49
  Customer: () => Customers_default,
50
+ CustomerPaymentMethod: () => PaymentMethods_default,
49
51
  EmailVerificationToken: () => EmailVerificationTokens_default,
50
52
  FiscalProfile: () => FiscalProfileType_default,
51
53
  InventoryStock: () => InventoryStocks_default,
52
54
  Order: () => Orders_default,
55
+ OrderPayment: () => Payments_default,
53
56
  OrderStatus: () => OrderStatus,
54
57
  OrderStatusLog: () => OrderStatusLogs_default,
55
58
  PasswordResetToken: () => PasswordResetTokens_default,
56
59
  PaymentMethod: () => PaymentMethod,
60
+ PaymentMethodType: () => PaymentMethodType,
61
+ PaymentProvider: () => PaymentProvider,
57
62
  PaymentStatus: () => PaymentStatus,
58
63
  PriceList: () => PriceLists_default,
59
64
  Quote: () => Quote_default,
@@ -69,6 +74,8 @@ __export(index_exports, {
69
74
  SyncLogStatus: () => SyncLogStatus,
70
75
  SyncLogType: () => SyncLogType,
71
76
  Tag: () => Tag_default,
77
+ TransactionMethod: () => TransactionMethod,
78
+ TransactionStatus: () => TransactionStatus,
72
79
  UserRole: () => UserRole,
73
80
  UserStatus: () => UserStatus,
74
81
  Users: () => Users_default,
@@ -381,8 +388,20 @@ tagSchema.index({ is_active: 1 }, { name: "tags_active" });
381
388
  tagSchema.index({ type: 1 }, { name: "tags_type" });
382
389
  var Tag_default = import_mongoose17.default.models.Tag || (0, import_mongoose17.model)("Tag", tagSchema, "tags");
383
390
 
384
- // src/quotes/models/Quote.ts
391
+ // src/inventory/models/ArticleViews.ts
385
392
  var import_mongoose18 = __toESM(require("mongoose"), 1);
393
+ var articleViewSchema = new import_mongoose18.Schema(
394
+ {
395
+ article_id: { type: import_mongoose18.Schema.Types.ObjectId, ref: "Article", required: true },
396
+ visited_at: { type: Date, default: Date.now }
397
+ },
398
+ { collection: "article_views" }
399
+ );
400
+ var ArticleView = import_mongoose18.default.models.ArticleView || (0, import_mongoose18.model)("ArticleView", articleViewSchema);
401
+ var ArticleViews_default = ArticleView;
402
+
403
+ // src/quotes/models/Quote.ts
404
+ var import_mongoose19 = __toESM(require("mongoose"), 1);
386
405
  var QuoteStatus = /* @__PURE__ */ ((QuoteStatus2) => {
387
406
  QuoteStatus2["OPPORTUNITY"] = "OPPORTUNITY";
388
407
  QuoteStatus2["QUOTE"] = "QUOTE";
@@ -402,21 +421,21 @@ var CreatedMethod = /* @__PURE__ */ ((CreatedMethod2) => {
402
421
  CreatedMethod2["CSV"] = "CSV";
403
422
  return CreatedMethod2;
404
423
  })(CreatedMethod || {});
405
- var quoteSchema = new import_mongoose18.Schema(
424
+ var quoteSchema = new import_mongoose19.Schema(
406
425
  {
407
426
  quote_number: { type: Number, required: true },
408
427
  quote_revision: { type: Number, default: 0 },
409
428
  quote_ref: { type: String },
410
429
  company: { type: String },
411
- company_id: { type: import_mongoose18.Schema.Types.ObjectId, ref: "Client", required: true },
430
+ company_id: { type: import_mongoose19.Schema.Types.ObjectId, ref: "Client", required: true },
412
431
  company_pipedrive_id: { type: String },
413
- contact_id: { type: import_mongoose18.Schema.Types.ObjectId, ref: "ClientContact" },
432
+ contact_id: { type: import_mongoose19.Schema.Types.ObjectId, ref: "ClientContact" },
414
433
  project_name: { type: String },
415
434
  project_lab: { type: String },
416
435
  payment_condition: { type: String },
417
436
  payment_exp: { type: String },
418
- terms_ids: [{ type: import_mongoose18.Schema.Types.ObjectId, ref: "QuoteTerm" }],
419
- currency_id: { type: import_mongoose18.Schema.Types.ObjectId, ref: "Currency" },
437
+ terms_ids: [{ type: import_mongoose19.Schema.Types.ObjectId, ref: "QuoteTerm" }],
438
+ currency_id: { type: import_mongoose19.Schema.Types.ObjectId, ref: "Currency" },
420
439
  iva: { type: String },
421
440
  date: { type: Date },
422
441
  status: { type: String, enum: Object.values(Status), default: "OPEN" /* OPEN */ },
@@ -437,21 +456,21 @@ var quoteSchema = new import_mongoose18.Schema(
437
456
  enum: Object.values(CreatedMethod),
438
457
  default: "MANUAL" /* MANUAL */
439
458
  },
440
- created_by: { type: import_mongoose18.Schema.Types.ObjectId, ref: "User" },
441
- updated_by: { type: import_mongoose18.Schema.Types.ObjectId, ref: "User" },
442
- deleted_by: { type: import_mongoose18.Schema.Types.ObjectId, ref: "User" },
459
+ created_by: { type: import_mongoose19.Schema.Types.ObjectId, ref: "User" },
460
+ updated_by: { type: import_mongoose19.Schema.Types.ObjectId, ref: "User" },
461
+ deleted_by: { type: import_mongoose19.Schema.Types.ObjectId, ref: "User" },
443
462
  deleted_at: { type: Date }
444
463
  },
445
464
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
446
465
  );
447
- var Quote_default = import_mongoose18.default.models.Quote || (0, import_mongoose18.model)("Quote", quoteSchema, "quotes");
466
+ var Quote_default = import_mongoose19.default.models.Quote || (0, import_mongoose19.model)("Quote", quoteSchema, "quotes");
448
467
 
449
468
  // src/quotes/models/QuoteArticle.ts
450
- var import_mongoose19 = __toESM(require("mongoose"), 1);
451
- var quoteArticleSchema = new import_mongoose19.Schema(
469
+ var import_mongoose20 = __toESM(require("mongoose"), 1);
470
+ var quoteArticleSchema = new import_mongoose20.Schema(
452
471
  {
453
- quote_id: { type: import_mongoose19.Schema.Types.ObjectId, ref: "Quote", required: true },
454
- article_id: { type: import_mongoose19.Schema.Types.ObjectId, ref: "Article" },
472
+ quote_id: { type: import_mongoose20.Schema.Types.ObjectId, ref: "Quote", required: true },
473
+ article_id: { type: import_mongoose20.Schema.Types.ObjectId, ref: "Article" },
455
474
  article_number: { type: String },
456
475
  description: { type: String },
457
476
  delivery: { type: String },
@@ -462,18 +481,18 @@ var quoteArticleSchema = new import_mongoose19.Schema(
462
481
  total: { type: Number },
463
482
  utility: { type: Number },
464
483
  type: { type: String },
465
- extra_id: { type: import_mongoose19.Schema.Types.ObjectId, ref: "QuoteArticleExtra" }
484
+ extra_id: { type: import_mongoose20.Schema.Types.ObjectId, ref: "QuoteArticleExtra" }
466
485
  },
467
486
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
468
487
  );
469
- var QuoteArticle_default = import_mongoose19.default.models.QuoteArticle || (0, import_mongoose19.model)("QuoteArticle", quoteArticleSchema, "quote_articles");
488
+ var QuoteArticle_default = import_mongoose20.default.models.QuoteArticle || (0, import_mongoose20.model)("QuoteArticle", quoteArticleSchema, "quote_articles");
470
489
 
471
490
  // src/quotes/models/QuoteArticleExtra.ts
472
- var import_mongoose20 = __toESM(require("mongoose"), 1);
473
- var quoteArticleExtraSchema = new import_mongoose20.Schema(
491
+ var import_mongoose21 = __toESM(require("mongoose"), 1);
492
+ var quoteArticleExtraSchema = new import_mongoose21.Schema(
474
493
  {
475
494
  quote_article_id: {
476
- type: import_mongoose20.Schema.Types.ObjectId,
495
+ type: import_mongoose21.Schema.Types.ObjectId,
477
496
  ref: "QuoteArticle",
478
497
  required: true
479
498
  },
@@ -485,23 +504,23 @@ var quoteArticleExtraSchema = new import_mongoose20.Schema(
485
504
  },
486
505
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
487
506
  );
488
- var QuoteArticleExtra_default = import_mongoose20.default.models.QuoteArticleExtra || (0, import_mongoose20.model)("QuoteArticleExtra", quoteArticleExtraSchema, "quote_article_extras");
507
+ var QuoteArticleExtra_default = import_mongoose21.default.models.QuoteArticleExtra || (0, import_mongoose21.model)("QuoteArticleExtra", quoteArticleExtraSchema, "quote_article_extras");
489
508
 
490
509
  // src/quotes/models/QuoteContact.ts
491
- var import_mongoose21 = __toESM(require("mongoose"), 1);
492
- var quoteContactSchema = new import_mongoose21.Schema({
493
- quote_id: { type: import_mongoose21.Schema.Types.ObjectId, ref: "Quote", required: true },
510
+ var import_mongoose22 = __toESM(require("mongoose"), 1);
511
+ var quoteContactSchema = new import_mongoose22.Schema({
512
+ quote_id: { type: import_mongoose22.Schema.Types.ObjectId, ref: "Quote", required: true },
494
513
  name: String,
495
514
  email: String,
496
515
  mobile: String,
497
516
  pipedrive_id: String,
498
517
  created_at: { type: Date, default: Date.now }
499
518
  });
500
- var QuoteContact_default = import_mongoose21.default.models.QuoteContact || (0, import_mongoose21.model)("QuoteContact", quoteContactSchema, "quote_contacts");
519
+ var QuoteContact_default = import_mongoose22.default.models.QuoteContact || (0, import_mongoose22.model)("QuoteContact", quoteContactSchema, "quote_contacts");
501
520
 
502
521
  // src/quotes/models/QuoteTerm.ts
503
- var import_mongoose22 = __toESM(require("mongoose"), 1);
504
- var quoteTermSchema = new import_mongoose22.Schema(
522
+ var import_mongoose23 = __toESM(require("mongoose"), 1);
523
+ var quoteTermSchema = new import_mongoose23.Schema(
505
524
  {
506
525
  title: String,
507
526
  content: { type: String, required: true },
@@ -512,10 +531,10 @@ var quoteTermSchema = new import_mongoose22.Schema(
512
531
  },
513
532
  { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
514
533
  );
515
- var QuoteTerm_default = import_mongoose22.default.models.QuoteTerm || (0, import_mongoose22.model)("QuoteTerm", quoteTermSchema, "quote_terms");
534
+ var QuoteTerm_default = import_mongoose23.default.models.QuoteTerm || (0, import_mongoose23.model)("QuoteTerm", quoteTermSchema, "quote_terms");
516
535
 
517
536
  // src/customers/models/Customers.ts
518
- var import_mongoose23 = __toESM(require("mongoose"), 1);
537
+ var import_mongoose24 = __toESM(require("mongoose"), 1);
519
538
  var import_bcryptjs = __toESM(require("bcryptjs"), 1);
520
539
  var CustomerStatus = /* @__PURE__ */ ((CustomerStatus2) => {
521
540
  CustomerStatus2["ACTIVE"] = "active";
@@ -523,7 +542,7 @@ var CustomerStatus = /* @__PURE__ */ ((CustomerStatus2) => {
523
542
  CustomerStatus2["BANNED"] = "banned";
524
543
  return CustomerStatus2;
525
544
  })(CustomerStatus || {});
526
- var customerSchema = new import_mongoose23.Schema({
545
+ var customerSchema = new import_mongoose24.Schema({
527
546
  first_name: { type: String, required: true },
528
547
  last_name: { type: String, required: true },
529
548
  email: { type: String, required: true, unique: true },
@@ -534,7 +553,7 @@ var customerSchema = new import_mongoose23.Schema({
534
553
  enum: Object.values(CustomerStatus),
535
554
  default: "inactive" /* INACTIVE */
536
555
  },
537
- fiscal_profile_id: { type: import_mongoose23.Schema.Types.ObjectId, ref: "FiscalProfile" },
556
+ fiscal_profile_id: { type: import_mongoose24.Schema.Types.ObjectId, ref: "FiscalProfile" },
538
557
  created_at: { type: Date, default: Date.now },
539
558
  updated_at: { type: Date },
540
559
  deleted_at: { type: Date }
@@ -544,13 +563,13 @@ customerSchema.pre("save", async function() {
544
563
  this.password = await import_bcryptjs.default.hash(this.password, 12);
545
564
  }
546
565
  });
547
- var Customer = import_mongoose23.default.models.Customer || (0, import_mongoose23.model)("Customer", customerSchema, "customers");
566
+ var Customer = import_mongoose24.default.models.Customer || (0, import_mongoose24.model)("Customer", customerSchema, "customers");
548
567
  var Customers_default = Customer;
549
568
 
550
569
  // src/customers/models/FiscalProfileType.ts
551
- var import_mongoose24 = __toESM(require("mongoose"), 1);
552
- var fiscalProfileSchema = new import_mongoose24.Schema({
553
- customer_id: { type: import_mongoose24.Schema.Types.ObjectId, ref: "Customer", required: true },
570
+ var import_mongoose25 = __toESM(require("mongoose"), 1);
571
+ var fiscalProfileSchema = new import_mongoose25.Schema({
572
+ customer_id: { type: import_mongoose25.Schema.Types.ObjectId, ref: "Customer", required: true },
554
573
  rfc: { type: String, required: true },
555
574
  razon_social: { type: String, required: true },
556
575
  uso_cfdi: { type: String, required: true },
@@ -559,11 +578,11 @@ var fiscalProfileSchema = new import_mongoose24.Schema({
559
578
  created_at: { type: Date, default: Date.now },
560
579
  updated_at: { type: Date }
561
580
  });
562
- var FiscalProfile = import_mongoose24.default.models.FiscalProfile || (0, import_mongoose24.model)("FiscalProfile", fiscalProfileSchema, "fiscal_profiles");
581
+ var FiscalProfile = import_mongoose25.default.models.FiscalProfile || (0, import_mongoose25.model)("FiscalProfile", fiscalProfileSchema, "fiscal_profiles");
563
582
  var FiscalProfileType_default = FiscalProfile;
564
583
 
565
584
  // src/orders/models/Orders.ts
566
- var import_mongoose25 = __toESM(require("mongoose"), 1);
585
+ var import_mongoose26 = __toESM(require("mongoose"), 1);
567
586
  var OrderStatus = /* @__PURE__ */ ((OrderStatus2) => {
568
587
  OrderStatus2["PENDING"] = "pending";
569
588
  OrderStatus2["CONFIRMED"] = "confirmed";
@@ -584,7 +603,7 @@ var PaymentStatus = /* @__PURE__ */ ((PaymentStatus2) => {
584
603
  PaymentStatus2["REFUNDED"] = "REFUNDED";
585
604
  return PaymentStatus2;
586
605
  })(PaymentStatus || {});
587
- var shippingAddressSchema = new import_mongoose25.Schema(
606
+ var shippingAddressSchema = new import_mongoose26.Schema(
588
607
  {
589
608
  full_name: { type: String, required: true, trim: true },
590
609
  phone: { type: String, required: true, trim: true },
@@ -597,18 +616,18 @@ var shippingAddressSchema = new import_mongoose25.Schema(
597
616
  },
598
617
  { _id: false }
599
618
  );
600
- var orderItemSchema = new import_mongoose25.Schema(
619
+ var orderItemSchema = new import_mongoose26.Schema(
601
620
  {
602
- article_id: { type: import_mongoose25.Schema.Types.ObjectId, ref: "Article", required: true },
621
+ article_id: { type: import_mongoose26.Schema.Types.ObjectId, ref: "Article", required: true },
603
622
  quantity: { type: Number, required: true, min: 1 },
604
623
  unit_price: { type: Number, required: true, min: 0 },
605
624
  total: { type: Number, required: true, min: 0 }
606
625
  },
607
626
  { _id: false }
608
627
  );
609
- var orderSchema = new import_mongoose25.Schema(
628
+ var orderSchema = new import_mongoose26.Schema(
610
629
  {
611
- customer_id: { type: import_mongoose25.Schema.Types.ObjectId, ref: "Customer", required: true },
630
+ customer_id: { type: import_mongoose26.Schema.Types.ObjectId, ref: "Customer", required: true },
612
631
  items: { type: [orderItemSchema], required: true, default: [] },
613
632
  status: {
614
633
  type: String,
@@ -652,14 +671,14 @@ orderSchema.index(
652
671
  { "shipping_address.postal_code": 1, created_at: -1 },
653
672
  { name: "orders_postal_created" }
654
673
  );
655
- var Orders_default = import_mongoose25.default.models.Order || (0, import_mongoose25.model)("Order", orderSchema, "orders");
674
+ var Orders_default = import_mongoose26.default.models.Order || (0, import_mongoose26.model)("Order", orderSchema, "orders");
656
675
 
657
676
  // src/orders/models/OrderStatusLogs.ts
658
- var import_mongoose26 = __toESM(require("mongoose"), 1);
659
- var orderStatusLogSchema = new import_mongoose26.Schema(
677
+ var import_mongoose27 = __toESM(require("mongoose"), 1);
678
+ var orderStatusLogSchema = new import_mongoose27.Schema(
660
679
  {
661
680
  order_id: {
662
- type: import_mongoose26.Schema.Types.ObjectId,
681
+ type: import_mongoose27.Schema.Types.ObjectId,
663
682
  ref: "Order",
664
683
  required: true
665
684
  },
@@ -669,7 +688,7 @@ var orderStatusLogSchema = new import_mongoose26.Schema(
669
688
  required: true
670
689
  },
671
690
  changed_by: {
672
- type: import_mongoose26.Schema.Types.ObjectId,
691
+ type: import_mongoose27.Schema.Types.ObjectId,
673
692
  ref: "User",
674
693
  required: true
675
694
  },
@@ -692,10 +711,10 @@ orderStatusLogSchema.index(
692
711
  { changed_by: 1, changed_at: -1 },
693
712
  { name: "order_status_logs_changed_by_changed_at" }
694
713
  );
695
- var OrderStatusLogs_default = import_mongoose26.default.models.OrderStatusLog || (0, import_mongoose26.model)("OrderStatusLog", orderStatusLogSchema);
714
+ var OrderStatusLogs_default = import_mongoose27.default.models.OrderStatusLog || (0, import_mongoose27.model)("OrderStatusLog", orderStatusLogSchema);
696
715
 
697
716
  // src/sap/models/SyncLog.ts
698
- var import_mongoose27 = __toESM(require("mongoose"), 1);
717
+ var import_mongoose28 = __toESM(require("mongoose"), 1);
699
718
  var SyncLogType = /* @__PURE__ */ ((SyncLogType2) => {
700
719
  SyncLogType2["SAP_QUOTATION"] = "SAP_QUOTATION";
701
720
  SyncLogType2["SAP_SALES_ORDER"] = "SAP_SALES_ORDER";
@@ -715,7 +734,7 @@ var SyncLogAction = /* @__PURE__ */ ((SyncLogAction2) => {
715
734
  SyncLogAction2["DELETE"] = "DELETE";
716
735
  return SyncLogAction2;
717
736
  })(SyncLogAction || {});
718
- var syncLogSchema = new import_mongoose27.Schema(
737
+ var syncLogSchema = new import_mongoose28.Schema(
719
738
  {
720
739
  entity_type: {
721
740
  type: String,
@@ -723,7 +742,7 @@ var syncLogSchema = new import_mongoose27.Schema(
723
742
  index: true
724
743
  },
725
744
  entity_id: {
726
- type: import_mongoose27.Schema.Types.ObjectId,
745
+ type: import_mongoose28.Schema.Types.ObjectId,
727
746
  required: true,
728
747
  index: true
729
748
  },
@@ -746,14 +765,14 @@ var syncLogSchema = new import_mongoose27.Schema(
746
765
  },
747
766
  error_message: { type: String },
748
767
  error_code: { type: String },
749
- error_details: { type: import_mongoose27.Schema.Types.Mixed },
750
- request_payload: { type: import_mongoose27.Schema.Types.Mixed },
751
- response_payload: { type: import_mongoose27.Schema.Types.Mixed },
768
+ error_details: { type: import_mongoose28.Schema.Types.Mixed },
769
+ request_payload: { type: import_mongoose28.Schema.Types.Mixed },
770
+ response_payload: { type: import_mongoose28.Schema.Types.Mixed },
752
771
  retry_count: { type: Number, default: 0 },
753
772
  max_retries: { type: Number, default: 3 },
754
773
  next_retry_at: { type: Date },
755
774
  resolved_at: { type: Date },
756
- resolved_by: { type: import_mongoose27.Schema.Types.ObjectId, ref: "User" }
775
+ resolved_by: { type: import_mongoose28.Schema.Types.ObjectId, ref: "User" }
757
776
  },
758
777
  {
759
778
  timestamps: { createdAt: "created_at", updatedAt: "updated_at" }
@@ -761,13 +780,13 @@ var syncLogSchema = new import_mongoose27.Schema(
761
780
  );
762
781
  syncLogSchema.index({ entity_type: 1, entity_id: 1, status: 1 });
763
782
  syncLogSchema.index({ status: 1, next_retry_at: 1 });
764
- var SyncLog = import_mongoose27.default.models.SyncLog || (0, import_mongoose27.model)("SyncLog", syncLogSchema, "sync_logs");
783
+ var SyncLog = import_mongoose28.default.models.SyncLog || (0, import_mongoose28.model)("SyncLog", syncLogSchema, "sync_logs");
765
784
 
766
785
  // src/announcements/models/Announcements.ts
767
- var import_mongoose29 = __toESM(require("mongoose"), 1);
786
+ var import_mongoose30 = __toESM(require("mongoose"), 1);
768
787
 
769
788
  // src/users/models/Users.ts
770
- var import_mongoose28 = __toESM(require("mongoose"), 1);
789
+ var import_mongoose29 = __toESM(require("mongoose"), 1);
771
790
  var import_bcryptjs2 = __toESM(require("bcryptjs"), 1);
772
791
  var UserRole = /* @__PURE__ */ ((UserRole2) => {
773
792
  UserRole2["ADMIN"] = "admin";
@@ -782,7 +801,7 @@ var UserStatus = /* @__PURE__ */ ((UserStatus2) => {
782
801
  UserStatus2["SUSPENDED"] = "suspended";
783
802
  return UserStatus2;
784
803
  })(UserStatus || {});
785
- var usersSchema = new import_mongoose28.Schema({
804
+ var usersSchema = new import_mongoose29.Schema({
786
805
  first_name: { type: String, required: true },
787
806
  middle_name: { type: String },
788
807
  last_name: { type: String, required: true },
@@ -804,32 +823,32 @@ var usersSchema = new import_mongoose28.Schema({
804
823
  sap_id: { type: String },
805
824
  sap_employee_id: { type: String },
806
825
  created_at: { type: Date, default: Date.now },
807
- created_by: { type: import_mongoose28.Schema.Types.Mixed, ref: "User" },
826
+ created_by: { type: import_mongoose29.Schema.Types.Mixed, ref: "User" },
808
827
  updated_at: { type: Date },
809
- updated_by: { type: import_mongoose28.Schema.Types.ObjectId, ref: "User" },
828
+ updated_by: { type: import_mongoose29.Schema.Types.ObjectId, ref: "User" },
810
829
  deleted_at: { type: Date },
811
- deleted_by: { type: import_mongoose28.Schema.Types.ObjectId, ref: "User" }
830
+ deleted_by: { type: import_mongoose29.Schema.Types.ObjectId, ref: "User" }
812
831
  });
813
832
  usersSchema.pre("save", async function() {
814
833
  if (this.isModified("password")) {
815
834
  this.password = await import_bcryptjs2.default.hash(this.password, 12);
816
835
  }
817
836
  });
818
- var Users_default = import_mongoose28.default.models.User || (0, import_mongoose28.model)("User", usersSchema, "users");
837
+ var Users_default = import_mongoose29.default.models.User || (0, import_mongoose29.model)("User", usersSchema, "users");
819
838
 
820
839
  // src/announcements/models/Announcements.ts
821
- var announcementSchema = new import_mongoose29.Schema({
840
+ var announcementSchema = new import_mongoose30.Schema({
822
841
  created_by: {
823
- type: import_mongoose29.Schema.Types.ObjectId,
842
+ type: import_mongoose30.Schema.Types.ObjectId,
824
843
  ref: "User",
825
844
  required: true
826
845
  },
827
846
  updated_by: {
828
- type: import_mongoose29.Schema.Types.ObjectId,
847
+ type: import_mongoose30.Schema.Types.ObjectId,
829
848
  ref: "User"
830
849
  },
831
850
  deleted_by: {
832
- type: import_mongoose29.Schema.Types.ObjectId,
851
+ type: import_mongoose30.Schema.Types.ObjectId,
833
852
  ref: "User"
834
853
  },
835
854
  created_at: {
@@ -858,13 +877,13 @@ var announcementSchema = new import_mongoose29.Schema({
858
877
  }
859
878
  }
860
879
  });
861
- var Announcements_default = import_mongoose29.default.models.Announcement || (0, import_mongoose29.model)("Announcement", announcementSchema, "announcements");
880
+ var Announcements_default = import_mongoose30.default.models.Announcement || (0, import_mongoose30.model)("Announcement", announcementSchema, "announcements");
862
881
 
863
882
  // src/carts/models/Carts.ts
864
- var import_mongoose30 = __toESM(require("mongoose"), 1);
865
- var cartItemSchema = new import_mongoose30.Schema(
883
+ var import_mongoose31 = __toESM(require("mongoose"), 1);
884
+ var cartItemSchema = new import_mongoose31.Schema(
866
885
  {
867
- article_id: { type: import_mongoose30.Types.ObjectId, ref: "Article", required: true },
886
+ article_id: { type: import_mongoose31.Types.ObjectId, ref: "Article", required: true },
868
887
  quantity: { type: Number, required: true, min: 1 },
869
888
  unit_price: { type: Number },
870
889
  line_subtotal: { type: Number },
@@ -872,10 +891,10 @@ var cartItemSchema = new import_mongoose30.Schema(
872
891
  },
873
892
  { _id: false }
874
893
  );
875
- var cartSchema = new import_mongoose30.Schema(
894
+ var cartSchema = new import_mongoose31.Schema(
876
895
  {
877
896
  customer_id: {
878
- type: import_mongoose30.Types.ObjectId,
897
+ type: import_mongoose31.Types.ObjectId,
879
898
  ref: "Customer",
880
899
  required: true
881
900
  },
@@ -885,7 +904,7 @@ var cartSchema = new import_mongoose30.Schema(
885
904
  default: "ACTIVE"
886
905
  },
887
906
  currency: { type: String, default: "MXN" },
888
- price_list_id: { type: import_mongoose30.Types.ObjectId, ref: "PriceList" },
907
+ price_list_id: { type: import_mongoose31.Types.ObjectId, ref: "PriceList" },
889
908
  expires_at: { type: Date },
890
909
  subtotal: { type: Number, default: 0 },
891
910
  items: { type: [cartItemSchema], default: [] }
@@ -896,12 +915,12 @@ var cartSchema = new import_mongoose30.Schema(
896
915
  );
897
916
  cartSchema.index({ customer_id: 1 }, { unique: true, name: "carts_customer_unique" });
898
917
  cartSchema.index({ updated_at: -1 }, { name: "carts_updated_at" });
899
- var Carts_default = import_mongoose30.default.models.Cart || (0, import_mongoose30.model)("Cart", cartSchema, "carts");
918
+ var Carts_default = import_mongoose31.default.models.Cart || (0, import_mongoose31.model)("Cart", cartSchema, "carts");
900
919
 
901
920
  // src/auth/models/RefreshTokens.ts
902
- var import_mongoose31 = __toESM(require("mongoose"), 1);
903
- var refreshTokenSchema = new import_mongoose31.Schema({
904
- customer_id: { type: import_mongoose31.Schema.Types.ObjectId, ref: "Customer", required: true },
921
+ var import_mongoose32 = __toESM(require("mongoose"), 1);
922
+ var refreshTokenSchema = new import_mongoose32.Schema({
923
+ customer_id: { type: import_mongoose32.Schema.Types.ObjectId, ref: "Customer", required: true },
905
924
  // Store only SHA-256 hash of the opaque refresh token (base64url). Never store the raw token.
906
925
  token_hash: { type: String, required: true },
907
926
  expires_at: { type: Date, required: true },
@@ -916,13 +935,13 @@ refreshTokenSchema.index({ customer_id: 1, expires_at: 1 });
916
935
  refreshTokenSchema.pre("save", function() {
917
936
  this.updated_at = /* @__PURE__ */ new Date();
918
937
  });
919
- var RefreshToken = import_mongoose31.default.models.RefreshToken || (0, import_mongoose31.model)("RefreshToken", refreshTokenSchema, "refresh_tokens");
938
+ var RefreshToken = import_mongoose32.default.models.RefreshToken || (0, import_mongoose32.model)("RefreshToken", refreshTokenSchema, "refresh_tokens");
920
939
  var RefreshTokens_default = RefreshToken;
921
940
 
922
941
  // src/auth/models/PasswordResetTokens.ts
923
- var import_mongoose32 = __toESM(require("mongoose"), 1);
924
- var passwordResetTokenSchema = new import_mongoose32.Schema({
925
- customer_id: { type: import_mongoose32.Schema.Types.ObjectId, ref: "Customer", required: true },
942
+ var import_mongoose33 = __toESM(require("mongoose"), 1);
943
+ var passwordResetTokenSchema = new import_mongoose33.Schema({
944
+ customer_id: { type: import_mongoose33.Schema.Types.ObjectId, ref: "Customer", required: true },
926
945
  // Store only SHA-256 hash of the opaque reset token (base64url). Never store the raw token.
927
946
  token_hash: { type: String, required: true },
928
947
  expires_at: { type: Date, required: true },
@@ -936,13 +955,13 @@ passwordResetTokenSchema.index({ customer_id: 1, expires_at: 1 });
936
955
  passwordResetTokenSchema.pre("save", function(next) {
937
956
  this.updated_at = /* @__PURE__ */ new Date();
938
957
  });
939
- var PasswordResetToken = import_mongoose32.default.models.PasswordResetToken || (0, import_mongoose32.model)("PasswordResetToken", passwordResetTokenSchema, "password_reset_tokens");
958
+ var PasswordResetToken = import_mongoose33.default.models.PasswordResetToken || (0, import_mongoose33.model)("PasswordResetToken", passwordResetTokenSchema, "password_reset_tokens");
940
959
  var PasswordResetTokens_default = PasswordResetToken;
941
960
 
942
961
  // src/auth/models/EmailVerificationTokens.ts
943
- var import_mongoose33 = __toESM(require("mongoose"), 1);
944
- var emailVerificationTokenSchema = new import_mongoose33.Schema({
945
- customer_id: { type: import_mongoose33.Schema.Types.ObjectId, ref: "Customer", required: true },
962
+ var import_mongoose34 = __toESM(require("mongoose"), 1);
963
+ var emailVerificationTokenSchema = new import_mongoose34.Schema({
964
+ customer_id: { type: import_mongoose34.Schema.Types.ObjectId, ref: "Customer", required: true },
946
965
  // Store only SHA-256 hash of the opaque email verification token. Never store the raw token.
947
966
  token_hash: { type: String, required: true },
948
967
  expires_at: { type: Date, required: true },
@@ -953,12 +972,145 @@ var emailVerificationTokenSchema = new import_mongoose33.Schema({
953
972
  emailVerificationTokenSchema.index({ token_hash: 1 }, { unique: true });
954
973
  emailVerificationTokenSchema.index({ expires_at: 1 }, { expireAfterSeconds: 0 });
955
974
  emailVerificationTokenSchema.index({ customer_id: 1, expires_at: 1 });
956
- var EmailVerificationToken = import_mongoose33.default.models.EmailVerificationToken || (0, import_mongoose33.model)(
975
+ var EmailVerificationToken = import_mongoose34.default.models.EmailVerificationToken || (0, import_mongoose34.model)(
957
976
  "EmailVerificationToken",
958
977
  emailVerificationTokenSchema,
959
978
  "email_verification_tokens"
960
979
  );
961
980
  var EmailVerificationTokens_default = EmailVerificationToken;
981
+
982
+ // src/payments/models/PaymentMethods.ts
983
+ var import_mongoose35 = __toESM(require("mongoose"), 1);
984
+ var PaymentProvider = /* @__PURE__ */ ((PaymentProvider3) => {
985
+ PaymentProvider3["STRIPE"] = "stripe";
986
+ return PaymentProvider3;
987
+ })(PaymentProvider || {});
988
+ var PaymentMethodType = /* @__PURE__ */ ((PaymentMethodType2) => {
989
+ PaymentMethodType2["CARD"] = "card";
990
+ PaymentMethodType2["APPLE_PAY"] = "apple_pay";
991
+ PaymentMethodType2["GOOGLE_PAY"] = "google_pay";
992
+ PaymentMethodType2["BANK_TRANSFER"] = "bank_transfer";
993
+ return PaymentMethodType2;
994
+ })(PaymentMethodType || {});
995
+ var paymentMethodSchema = new import_mongoose35.Schema(
996
+ {
997
+ customer_id: { type: import_mongoose35.Schema.Types.ObjectId, ref: "Customer", required: true },
998
+ provider: {
999
+ type: String,
1000
+ enum: Object.values(PaymentProvider),
1001
+ default: "stripe" /* STRIPE */,
1002
+ required: true
1003
+ },
1004
+ provider_customer_id: { type: String, required: true, trim: true },
1005
+ provider_payment_method_id: { type: String, required: true, trim: true },
1006
+ type: {
1007
+ type: String,
1008
+ enum: Object.values(PaymentMethodType),
1009
+ default: "card" /* CARD */,
1010
+ required: true
1011
+ },
1012
+ brand: { type: String, required: true },
1013
+ last4: { type: String, required: true },
1014
+ exp_month: { type: Number, required: true, min: 1, max: 12 },
1015
+ exp_year: { type: Number, required: true },
1016
+ wallet: {
1017
+ type: String,
1018
+ enum: ["apple_pay", "google_pay"],
1019
+ default: null
1020
+ },
1021
+ is_default: { type: Boolean, default: false },
1022
+ deleted_at: { type: Date },
1023
+ deleted_by: { type: import_mongoose35.Schema.Types.ObjectId, ref: "User" }
1024
+ },
1025
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
1026
+ );
1027
+ paymentMethodSchema.index(
1028
+ { customer_id: 1 },
1029
+ { name: "payment_methods_customer" }
1030
+ );
1031
+ paymentMethodSchema.index(
1032
+ { customer_id: 1, provider_payment_method_id: 1 },
1033
+ { name: "payment_methods_customer_provider_unique", unique: true }
1034
+ );
1035
+ paymentMethodSchema.index(
1036
+ { customer_id: 1, is_default: 1 },
1037
+ { name: "payment_methods_default_lookup" }
1038
+ );
1039
+ var PaymentMethods_default = import_mongoose35.default.models.CustomerPaymentMethod || (0, import_mongoose35.model)("CustomerPaymentMethod", paymentMethodSchema, "customer_payment_methods");
1040
+
1041
+ // src/payments/models/Payments.ts
1042
+ var import_mongoose36 = __toESM(require("mongoose"), 1);
1043
+ var PaymentProvider2 = /* @__PURE__ */ ((PaymentProvider3) => {
1044
+ PaymentProvider3["STRIPE"] = "stripe";
1045
+ return PaymentProvider3;
1046
+ })(PaymentProvider2 || {});
1047
+ var TransactionStatus = /* @__PURE__ */ ((TransactionStatus2) => {
1048
+ TransactionStatus2["PENDING"] = "pending";
1049
+ TransactionStatus2["PROCESSING"] = "processing";
1050
+ TransactionStatus2["SUCCEEDED"] = "succeeded";
1051
+ TransactionStatus2["FAILED"] = "failed";
1052
+ TransactionStatus2["REFUNDED"] = "refunded";
1053
+ return TransactionStatus2;
1054
+ })(TransactionStatus || {});
1055
+ var TransactionMethod = /* @__PURE__ */ ((TransactionMethod2) => {
1056
+ TransactionMethod2["CARD"] = "card";
1057
+ TransactionMethod2["APPLE_PAY"] = "apple_pay";
1058
+ TransactionMethod2["GOOGLE_PAY"] = "google_pay";
1059
+ TransactionMethod2["BANK_TRANSFER"] = "bank_transfer";
1060
+ return TransactionMethod2;
1061
+ })(TransactionMethod || {});
1062
+ var orderPaymentSchema = new import_mongoose36.Schema(
1063
+ {
1064
+ order_id: { type: import_mongoose36.Schema.Types.ObjectId, ref: "Order", required: true },
1065
+ customer_id: { type: import_mongoose36.Schema.Types.ObjectId, ref: "Customer", required: true },
1066
+ payment_method_id: { type: import_mongoose36.Schema.Types.ObjectId, ref: "ClientPaymentMethod" },
1067
+ provider: {
1068
+ type: String,
1069
+ enum: Object.values(PaymentProvider2),
1070
+ default: "stripe" /* STRIPE */,
1071
+ required: true
1072
+ },
1073
+ provider_payment_id: { type: String },
1074
+ provider_payment_intent_id: { type: String, required: true },
1075
+ method: {
1076
+ type: String,
1077
+ enum: Object.values(TransactionMethod),
1078
+ required: true
1079
+ },
1080
+ status: {
1081
+ type: String,
1082
+ enum: Object.values(TransactionStatus),
1083
+ default: "pending" /* PENDING */,
1084
+ required: true
1085
+ },
1086
+ amount: { type: Number, required: true, min: 0 },
1087
+ currency: { type: String, required: true, default: "MXN" },
1088
+ deleted_at: { type: Date },
1089
+ deleted_by: { type: import_mongoose36.Schema.Types.ObjectId, ref: "User" }
1090
+ },
1091
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
1092
+ );
1093
+ orderPaymentSchema.index(
1094
+ { order_id: 1 },
1095
+ { name: "order_payments_order" }
1096
+ );
1097
+ orderPaymentSchema.index(
1098
+ { customer_id: 1, created_at: -1 },
1099
+ { name: "order_payments_customer_created" }
1100
+ );
1101
+ orderPaymentSchema.index(
1102
+ { provider_payment_intent_id: 1 },
1103
+ {
1104
+ name: "order_payments_provider_intent_unique",
1105
+ unique: true,
1106
+ sparse: true
1107
+ }
1108
+ );
1109
+ orderPaymentSchema.index(
1110
+ { provider_payment_id: 1 },
1111
+ { name: "order_payments_provider_payment_id" }
1112
+ );
1113
+ var Payments_default = import_mongoose36.default.models.OrderPayment || (0, import_mongoose36.model)("OrderPayment", orderPaymentSchema, "order_payments");
962
1114
  // Annotate the CommonJS export names for ESM import in node:
963
1115
  0 && (module.exports = {
964
1116
  Announcement,
@@ -966,6 +1118,7 @@ var EmailVerificationTokens_default = EmailVerificationToken;
966
1118
  ArticleClass,
967
1119
  ArticleGroup,
968
1120
  ArticlePrice,
1121
+ ArticleView,
969
1122
  Cart,
970
1123
  Category,
971
1124
  Client,
@@ -978,14 +1131,18 @@ var EmailVerificationTokens_default = EmailVerificationToken;
978
1131
  CreatedMethod,
979
1132
  Currency,
980
1133
  Customer,
1134
+ CustomerPaymentMethod,
981
1135
  EmailVerificationToken,
982
1136
  FiscalProfile,
983
1137
  InventoryStock,
984
1138
  Order,
1139
+ OrderPayment,
985
1140
  OrderStatus,
986
1141
  OrderStatusLog,
987
1142
  PasswordResetToken,
988
1143
  PaymentMethod,
1144
+ PaymentMethodType,
1145
+ PaymentProvider,
989
1146
  PaymentStatus,
990
1147
  PriceList,
991
1148
  Quote,
@@ -1001,6 +1158,8 @@ var EmailVerificationTokens_default = EmailVerificationToken;
1001
1158
  SyncLogStatus,
1002
1159
  SyncLogType,
1003
1160
  Tag,
1161
+ TransactionMethod,
1162
+ TransactionStatus,
1004
1163
  UserRole,
1005
1164
  UserStatus,
1006
1165
  Users,