@fesmex/models 0.1.55 → 0.1.57

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/clients/models/Clients.ts","../src/clients/models/ClientsContact.ts","../src/clients/models/ClientsAddress.ts","../src/clients/models/ClientsPaymentMethod.ts","../src/clients/models/ClientsPaymentTerm.ts","../src/clients/models/ClientsPriceList.ts","../src/clients/models/ClientsSalesEmployee.ts","../src/inventory/models/Article.ts","../src/inventory/models/ArticleGroups.ts","../src/inventory/models/ArticleClasses.ts","../src/inventory/models/ArticlePrices.ts","../src/inventory/models/Currencies.ts","../src/inventory/models/Warehouses.ts","../src/inventory/models/InventoryStocks.ts","../src/inventory/models/PriceLists.ts","../src/inventory/models/Category.ts","../src/inventory/models/Tag.ts","../src/inventory/models/ArticleViews.ts","../src/quotes/models/Quote.ts","../src/quotes/models/QuoteArticle.ts","../src/quotes/models/QuoteArticleExtra.ts","../src/quotes/models/QuoteContact.ts","../src/quotes/models/QuoteTerm.ts","../src/customers/models/Customers.ts","../src/customers/models/FiscalProfileType.ts","../src/orders/models/Orders.ts","../src/orders/models/OrderStatusLogs.ts","../src/sap/models/SyncLog.ts","../src/announcements/models/Announcements.ts","../src/users/models/Users.ts","../src/carts/models/Carts.ts","../src/auth/models/RefreshTokens.ts","../src/auth/models/PasswordResetTokens.ts","../src/auth/models/EmailVerificationTokens.ts","../src/payments/models/PaymentMethods.ts","../src/payments/models/Payments.ts"],"sourcesContent":["export * from \"./clients\"\nexport * from \"./inventory\"\nexport * from \"./quotes\"\nexport * from \"./customers\"\nexport * from \"./orders\"\nexport * from \"./sap\"\nexport * from \"./announcements\"\nexport * from \"./users\"\nexport * from \"./carts\"\nexport * from \"./auth\"\nexport * from \"./payments\"\n","import mongoose, { Schema, model } from \"mongoose\"\n\nexport interface ClientType {\n\tsn_code?: string | null\n\tsn_name?: string | null\n\ttax_id?: string | null\n\tcurrency?: string | null\n\tphone_1?: string | null\n\temail?: string | null\n\tcomments?: string | null\n\tpipedrive_id?: string | null\n\tsap_id?: string | null\n\tdeleted_at?: Date | null\n\tdeleted_by?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientSchema = new Schema<ClientType>(\n\t{\n\t\tsn_code: { type: String, index: true },\n\t\tsn_name: { type: String, required: true },\n\t\ttax_id: { type: String },\n\t\tcurrency: { type: String },\n\t\tphone_1: { type: String },\n\t\temail: { type: String },\n\t\tcomments: { type: String },\n\t\tpipedrive_id: { type: String },\n\t\tsap_id: { type: String },\n\t\tdeleted_at: { type: Date, default: null },\n\t\tdeleted_by: { type: String, default: null },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.Client || model<ClientType>(\"Client\", clientSchema, \"clients\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface ClientContactType {\n\tclient_id: Types.ObjectId\n\tcontact_person_name?: string | null\n\tfirst_name?: string | null\n\tlast_name?: string | null\n\tcontact_phone?: string | null\n\tcontact_email?: string | null\n\tpipedrive_id?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientContactSchema = new Schema<ClientContactType>(\n\t{\n\t\tclient_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Client\",\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\tcontact_person_name: { type: String },\n\t\tfirst_name: { type: String },\n\t\tlast_name: { type: String },\n\t\tcontact_phone: { type: String },\n\t\tcontact_email: { type: String },\n\t\tpipedrive_id: { type: String },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.ClientContact || model<ClientContactType>(\"ClientContact\", clientContactSchema, \"client_contacts\")","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface ClientAddressType {\n\tclient_id: Types.ObjectId\n\taddress_name?: string | null\n\tstreet?: string | null\n\tneighborhood?: string | null\n\tpostal_code?: string | null\n\tcity?: string | null\n\tstate?: string | null\n\tcountry?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientAddressSchema = new Schema<ClientAddressType>(\n\t{\n\t\tclient_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Client\",\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\taddress_name: { type: String },\n\t\tstreet: { type: String },\n\t\tneighborhood: { type: String },\n\t\tpostal_code: { type: String },\n\t\tcity: { type: String },\n\t\tstate: { type: String },\n\t\tcountry: { type: String },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.ClientAddress || model<ClientAddressType>(\n\t\"ClientAddress\",\n\tclientAddressSchema,\n\t\"client_addresses\"\n)\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface ClientPaymentMethodType {\n\tclient_id: Types.ObjectId\n\tcode?: string | null\n\tdescription?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientPaymentMethodSchema = new Schema<ClientPaymentMethodType>(\n\t{\n\t\tclient_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Client\",\n\t\t\trequired: true,\n\t\t\tunique: true,\n\t\t},\n\t\tcode: { type: String },\n\t\tdescription: { type: String },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.ClientPaymentMethod || model<ClientPaymentMethodType>(\n\t\"ClientPaymentMethod\",\n\tclientPaymentMethodSchema,\n\t\"client_payment_methods\"\n)\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface ClientPaymentTermType {\n\tclient_id: Types.ObjectId\n\tcode?: string | null\n\tname?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientPaymentTermSchema = new Schema<ClientPaymentTermType>(\n\t{\n\t\tclient_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Client\",\n\t\t\trequired: true,\n\t\t\tunique: true,\n\t\t},\n\t\tcode: { type: String },\n\t\tname: { type: String },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.ClientPaymentTerm || model<ClientPaymentTermType>(\n\t\"ClientPaymentTerm\",\n\tclientPaymentTermSchema,\n\t\"client_payment_terms\"\n)\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface ClientPriceListType {\n\tclient_id: Types.ObjectId\n\tnumber?: string | null\n\tname?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientPriceListSchema = new Schema<ClientPriceListType>(\n\t{\n\t\tclient_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Client\",\n\t\t\trequired: true,\n\t\t\tunique: true,\n\t\t},\n\t\tnumber: { type: String },\n\t\tname: { type: String },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.ClientPriceList || model<ClientPriceListType>(\n\t\"ClientPriceList\",\n\tclientPriceListSchema,\n\t\"client_price_lists\"\n)\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface ClientSalesEmployeeType {\n\tclient_id: Types.ObjectId\n\temployee_code?: string | null\n\temployee_name?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientSalesEmployeeSchema = new Schema<ClientSalesEmployeeType>(\n\t{\n\t\tclient_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Client\",\n\t\t\trequired: true,\n\t\t\tunique: true,\n\t\t},\n\t\temployee_code: { type: String },\n\t\temployee_name: { type: String },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.ClientSalesEmployee || model<ClientSalesEmployeeType>(\n\t\"ClientSalesEmployee\",\n\tclientSalesEmployeeSchema,\n\t\"client_sales_employees\"\n)\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nconst articleFileSchema = new Schema(\n\t{\n\t\tkey: { type: String, required: true },\n\t\turl: { type: String, required: true },\n\t\tfilename: { type: String, required: true },\n\t\tmime_type: { type: String, required: true },\n\t\tsize: { type: Number, required: true },\n\t\tuploaded_at: { type: Date, default: Date.now },\n\t\tuploaded_by: { type: String, required: true },\n\t},\n\t{ _id: false }\n)\n\nconst articleSchema = new Schema({\n\tarticle_number: { type: String, required: true, unique: true }, // SAP ItemCode\n\tdescription: { type: String, required: true },\n\tunit: { type: String, required: true },\n\tbrand: { type: String },\n\tmodel: { type: String },\n\tgroup_id: { type: Types.ObjectId, ref: \"ArticleGroup\", required: true },\n\tcategory_id: { type: Types.ObjectId, ref: \"Category\", required: false, index: true },\n\ttags: { type: [Types.ObjectId], ref: \"Tag\", default: [], index: true },\n\tis_featured: { type: Boolean, default: false, index: true },\n\tfeatured_order: { type: Number, default: 0 },\n\tfiles: {\n\t\timages: { type: [articleFileSchema], required: false },\n\t\tdatasheets: { type: [articleFileSchema], required: false },\n\t},\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n\tdeleted_at: { type: Date },\n})\n\narticleSchema.index(\n\t{ description: \"text\", brand: \"text\", model: \"text\" },\n\t{ name: \"articles_text_search\" }\n)\narticleSchema.index({ group_id: 1, updated_at: -1 }, { name: \"articles_group_updated\" })\narticleSchema.index({ category_id: 1, updated_at: -1 }, { name: \"articles_category_updated\" })\narticleSchema.index({ updated_at: -1 }, { name: \"articles_updated\" })\narticleSchema.index(\n\t{ deleted_at: 1, updated_at: -1 },\n\t{ name: \"articles_not_deleted_sort\" }\n)\narticleSchema.index({ is_featured: 1, featured_order: 1 }, { name: \"articles_featured_order\" })\n\nexport default mongoose.models.Article || model(\"Article\", articleSchema, \"articles\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst articleGroupSchema = new Schema({\n\tname: { type: String, required: true },\n\tdescription: { type: String },\n})\n\nexport default mongoose.models.ArticleGroup || model(\"ArticleGroup\", articleGroupSchema, \"article_groups\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst articleClassSchema = new Schema({\n\tname: { type: String, required: true },\n\tdescription: { type: String },\n})\n\nexport default mongoose.models.ArticleClass || model(\"ArticleClass\", articleClassSchema, \"article_classes\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nconst articlePriceSchema = new Schema({\n\tarticle_id: { type: Types.ObjectId, ref: \"Article\", required: true },\n\tprice_list_id: { type: Types.ObjectId, ref: \"PriceList\", required: true },\n\tcurrency_id: { type: Types.ObjectId, ref: \"Currency\", required: true },\n\tprice: { type: Number, required: true },\n\tvalid_from: { type: Date },\n\tvalid_to: { type: Date },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n})\n\narticlePriceSchema.index({ article_id: 1, price_list_id: 1 }, { name: \"article_prices_article_pricelist\" })\n\nexport default mongoose.models.ArticlePrice || model(\"ArticlePrice\", articlePriceSchema, \"article_prices\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst currencySchema = new Schema({\n\tcode: { type: String, required: true, unique: true },\n\tsymbol: { type: String, required: true },\n\tname: { type: String, required: true },\n})\n\nexport default mongoose.models.Currency || model(\"Currency\", currencySchema, \"currencies\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst warehouseSchema = new Schema({\n\tcode: { type: String, required: true, unique: true },\n\tname: { type: String, required: true },\n\tlocation: { type: String },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n})\n\nexport default mongoose.models.Warehouse || model(\"Warehouse\", warehouseSchema, \"warehouses\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nconst inventoryStockSchema = new Schema({\n\tarticle_id: { type: Types.ObjectId, ref: \"Article\", required: true },\n\twarehouse_id: { type: Types.ObjectId, ref: \"Warehouse\", required: true },\n\tcount: { type: Number, required: true },\n\tmin_stock: { type: Number },\n\tmax_stock: { type: Number },\n\tupdated_at: { type: Date, default: Date.now },\n\tupdated_by: { type: Types.ObjectId, ref: \"User\" },\n})\n\ninventoryStockSchema.index({ article_id: 1, warehouse_id: 1 }, { name: \"inventory_stocks_article_warehouse_unique\", unique: true })\n\nexport default mongoose.models.InventoryStock || model(\"InventoryStock\", inventoryStockSchema, \"inventory_stocks\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst priceListSchema = new Schema({\n\tnumber: { type: String, required: true, unique: true },\n\tname: { type: String, required: true },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n})\n\nexport default mongoose.models.PriceList || model(\"PriceList\", priceListSchema, \"price_lists\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nconst categorySchema = new Schema({\n\tname: { type: String, required: true, trim: true },\n\tslug: { type: String, required: true, trim: true, lowercase: true },\n\tparent_id: { type: Types.ObjectId, ref: \"Category\", default: null, index: true },\n\torder: { type: Number, default: 0 },\n\tis_active: { type: Boolean, default: true, index: true },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date, default: Date.now },\n})\n\ncategorySchema.index({ slug: 1 }, { unique: true, name: \"categories_slug_unique\" })\ncategorySchema.index({ parent_id: 1 }, { name: \"categories_parent\" })\ncategorySchema.index({ is_active: 1 }, { name: \"categories_active\" })\n\nexport default mongoose.models.Category || model(\"Category\", categorySchema, \"categories\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst tagSchema = new Schema({\n\tname: { type: String, required: true, trim: true },\n\tslug: { type: String, required: true, trim: true, lowercase: true },\n\ttype: { type: String, enum: [\"filter\", \"sidebar\"], default: \"filter\", index: true },\n\tis_active: { type: Boolean, default: true, index: true },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date, default: Date.now },\n})\n\ntagSchema.index({ slug: 1 }, { unique: true, name: \"tags_slug_unique\" })\ntagSchema.index({ is_active: 1 }, { name: \"tags_active\" })\ntagSchema.index({ type: 1 }, { name: \"tags_type\" })\n\nexport default mongoose.models.Tag || model(\"Tag\", tagSchema, \"tags\")\n","import mongoose, { Schema, model, type Model, type HydratedDocument, type Types } from \"mongoose\"\n\nexport interface ArticleViewType {\n\tarticle_id: Types.ObjectId\n\tvisited_at: Date\n}\n\nexport type ArticleViewDoc = HydratedDocument<ArticleViewType>\nexport type ArticleViewModel = Model<ArticleViewType>\n\nconst articleViewSchema = new Schema<ArticleViewType>(\n\t{\n\t\tarticle_id: { type: Schema.Types.ObjectId, ref: \"Article\", required: true },\n\t\tvisited_at: { type: Date, default: Date.now },\n\t},\n\t{ collection: \"article_views\" }\n)\n\nconst ArticleView: ArticleViewModel =\n\t(mongoose.models.ArticleView as ArticleViewModel) ||\n\tmodel<ArticleViewType>(\"ArticleView\", articleViewSchema)\n\nexport default ArticleView\n","import mongoose, { Schema, model } from \"mongoose\"\n\nexport enum QuoteStatus {\n\tOPPORTUNITY = \"OPPORTUNITY\",\n\tQUOTE = \"QUOTE\",\n\tFOLLOWING = \"FOLLOWING\",\n\tNEGOTIATION = \"NEGOTIATION\",\n}\n\nexport enum Status {\n\tOPEN = \"OPEN\",\n\tWIN = \"WIN\",\n\tLOST = \"LOST\",\n\tDELETE = \"DELETE\",\n}\n\nexport enum CreatedMethod {\n\tMANUAL = \"MANUAL\",\n\tCSV = \"CSV\",\n}\n\nconst quoteSchema = new Schema(\n\t{\n\t\tquote_number: { type: Number, required: true },\n\t\tquote_revision: { type: Number, default: 0 },\n\t\tquote_ref: { type: String },\n\t\tcompany: { type: String },\n\t\tcompany_id: { type: Schema.Types.ObjectId, ref: \"Client\", required: true },\n\t\tcompany_pipedrive_id: { type: String },\n\t\tcontact_id: { type: Schema.Types.ObjectId, ref: \"ClientContact\" },\n\t\tproject_name: { type: String },\n\t\tproject_lab: { type: String },\n\t\tpayment_condition: { type: String },\n\t\tpayment_exp: { type: String },\n\t\tterms_ids: [{ type: Schema.Types.ObjectId, ref: \"QuoteTerm\" }],\n\t\tcurrency_id: { type: Schema.Types.ObjectId, ref: \"Currency\" },\n\t\tiva: { type: String },\n\t\tdate: { type: Date },\n\t\tstatus: { type: String, enum: Object.values(Status), default: Status.OPEN },\n\t\tquote_status: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(QuoteStatus),\n\t\t\tdefault: QuoteStatus.OPPORTUNITY,\n\t\t},\n\t\tsap_id: { type: String },\n\t\tsap_quotation_entry: { type: Number },\n\t\tsap_order_entry: { type: Number },\n\t\tpipedrive_id: { type: String },\n\t\tshould_sync: { type: Boolean, default: false },\n\t\tpdf_download_link: { type: String },\n\t\tnotes: { type: String },\n\t\tcreated_method: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(CreatedMethod),\n\t\t\tdefault: CreatedMethod.MANUAL,\n\t\t},\n\t\tcreated_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n\t\tupdated_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n\t\tdeleted_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n\t\tdeleted_at: { type: Date },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.Quote || model(\"Quote\", quoteSchema, \"quotes\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst quoteArticleSchema = new Schema(\n\t{\n\t\tquote_id: { type: Schema.Types.ObjectId, ref: \"Quote\", required: true },\n\t\tarticle_id: { type: Schema.Types.ObjectId, ref: \"Article\" },\n\t\tarticle_number: { type: String },\n\t\tdescription: { type: String },\n\t\tdelivery: { type: String },\n\t\tquantity: { type: Number },\n\t\tprice: { type: Number },\n\t\tunit_price: { type: Number },\n\t\toriginal_price: { type: Number },\n\t\ttotal: { type: Number },\n\t\tutility: { type: Number },\n\t\ttype: { type: String },\n\t\textra_id: { type: Schema.Types.ObjectId, ref: \"QuoteArticleExtra\" },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.QuoteArticle || model(\"QuoteArticle\", quoteArticleSchema, \"quote_articles\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst quoteArticleExtraSchema = new Schema(\n\t{\n\t\tquote_article_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"QuoteArticle\",\n\t\t\trequired: true,\n\t\t},\n\t\tmultiplier: Number,\n\t\tusa_freight: Number,\n\t\tusa_expenses: Number,\n\t\tduty: Number,\n\t\tmex_freight: Number,\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.QuoteArticleExtra || model(\"QuoteArticleExtra\", quoteArticleExtraSchema, \"quote_article_extras\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst quoteContactSchema = new Schema({\n\tquote_id: { type: Schema.Types.ObjectId, ref: \"Quote\", required: true },\n\tname: String,\n\temail: String,\n\tmobile: String,\n\tpipedrive_id: String,\n\tcreated_at: { type: Date, default: Date.now },\n})\n\nexport default mongoose.models.QuoteContact || model(\"QuoteContact\", quoteContactSchema, \"quote_contacts\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst quoteTermSchema = new Schema(\n\t{\n\t\ttitle: String,\n\t\tcontent: { type: String, required: true },\n\t\tcategory: String,\n\t\tis_active: { type: Boolean, default: true },\n\t\tcreated_by: String,\n\t\tupdated_by: String,\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.QuoteTerm || model(\"QuoteTerm\", quoteTermSchema, \"quote_terms\")\n","import mongoose, {\n\tSchema,\n\tmodel,\n\ttype Model,\n\ttype HydratedDocument,\n\ttype Types,\n} from \"mongoose\";\nimport bcrypt from \"bcryptjs\";\n\nexport enum CustomerStatus {\n\tACTIVE = \"active\",\n\tINACTIVE = \"inactive\",\n\tBANNED = \"banned\",\n}\n\nexport interface CustomerType {\n\tfirst_name: string;\n\tlast_name: string;\n\temail: string;\n\tmobile?: string;\n\tpassword: string;\n\tstatus: CustomerStatus;\n\tfiscal_profile_id?: Types.ObjectId;\n\tcreated_at: Date;\n\tupdated_at?: Date;\n\tdeleted_at?: Date;\n}\n\nexport type CustomerDoc = HydratedDocument<CustomerType>;\nexport type CustomerModel = Model<CustomerType>;\n\nconst customerSchema = new Schema<CustomerType>({\n\tfirst_name: { type: String, required: true },\n\tlast_name: { type: String, required: true },\n\temail: { type: String, required: true, unique: true },\n\tmobile: { type: String },\n\tpassword: { type: String, required: true, select: false },\n\tstatus: {\n\t\ttype: String,\n\t\tenum: Object.values(CustomerStatus),\n\t\tdefault: CustomerStatus.INACTIVE,\n\t},\n\tfiscal_profile_id: { type: Schema.Types.ObjectId, ref: \"FiscalProfile\" },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n\tdeleted_at: { type: Date },\n});\n\ncustomerSchema.pre(\"save\", async function() {\n\tif (this.isModified(\"password\")) {\n\t\tthis.password = await bcrypt.hash(this.password, 12);\n\t}\n});\n\nconst Customer: CustomerModel =\n\t(mongoose.models.Customer as CustomerModel) ||\n\tmodel<CustomerType>(\"Customer\", customerSchema, \"customers\");\n\nexport default Customer;\n","import mongoose, { Schema, model, type Model, type HydratedDocument, type Types } from \"mongoose\";\n\nexport interface FiscalProfileType {\n\tcustomer_id: Types.ObjectId;\n\trfc: string;\n\trazon_social: string;\n\tuso_cfdi: string;\n\tregimen_fiscal: string;\n\tcp: string;\n\tcreated_at: Date;\n\tupdated_at?: Date;\n}\n\nexport type FiscalProfileDoc = HydratedDocument<FiscalProfileType>;\nexport type FiscalProfileModel = Model<FiscalProfileType>;\n\nconst fiscalProfileSchema = new Schema<FiscalProfileType>({\n\tcustomer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n\trfc: { type: String, required: true },\n\trazon_social: { type: String, required: true },\n\tuso_cfdi: { type: String, required: true },\n\tregimen_fiscal: { type: String, required: true },\n\tcp: { type: String, required: true },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n});\n\nconst FiscalProfile: FiscalProfileModel =\n\t(mongoose.models.FiscalProfile as FiscalProfileModel) ||\n\tmodel<FiscalProfileType>(\"FiscalProfile\", fiscalProfileSchema, \"fiscal_profiles\");\n\nexport default FiscalProfile;\n","import mongoose, { Schema, model } from \"mongoose\"\n\nexport enum OrderStatus {\n\tPENDING = \"pending\",\n\tCONFIRMED = \"confirmed\",\n\tSHIPPED = \"shipped\",\n\tCANCELLED = \"cancelled\",\n\tCOMPLETED = \"completed\",\n}\n\nexport enum PaymentMethod {\n\tCARD = \"CARD\",\n\tTRANSFER = \"TRANSFER\",\n}\n\nexport enum PaymentStatus {\n\tUNPAID = \"UNPAID\",\n\tPENDING_TRANSFER = \"PENDING_TRANSFER\",\n\tPAID = \"PAID\",\n\tREFUNDED = \"REFUNDED\",\n}\n\nconst shippingAddressSchema = new Schema(\n\t{\n\t\tfull_name: { type: String, required: true, trim: true },\n\t\tphone: { type: String, required: true, trim: true },\n\t\tline1: { type: String, required: true, trim: true },\n\t\tline2: { type: String, trim: true },\n\t\tcity: { type: String, required: true, trim: true },\n\t\tstate: { type: String, required: true, trim: true },\n\t\tpostal_code: { type: String, required: true, trim: true },\n\t\tcountry: { type: String, required: true, trim: true, default: \"MX\" },\n\t},\n\t{ _id: false }\n)\n\nconst orderItemSchema = new Schema(\n\t{\n\t\tarticle_id: { type: Schema.Types.ObjectId, ref: \"Article\", required: true },\n\t\tquantity: { type: Number, required: true, min: 1 },\n\t\tunit_price: { type: Number, required: true, min: 0 },\n\t\ttotal: { type: Number, required: true, min: 0 },\n\t},\n\t{ _id: false }\n)\n\nconst orderSchema = new Schema(\n\t{\n\t\tcustomer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n\t\titems: { type: [orderItemSchema], required: true, default: [] },\n\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(OrderStatus),\n\t\t\tdefault: OrderStatus.PENDING,\n\t\t\trequired: true,\n\t\t},\n\n\t\ttracking_number: { type: String },\n\n\t\tpayment_method: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(PaymentMethod),\n\t\t\trequired: true,\n\t\t},\n\n\t\tpayment_status: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(PaymentStatus),\n\t\t\tdefault: PaymentStatus.UNPAID,\n\t\t\trequired: true,\n\t\t},\n\n\t\texpires_at: { type: Date },\n\n\t\tshipping_address: { type: shippingAddressSchema, required: false },\n\t\tdelivery_type: { type: String, enum: ['shipping', 'pickup'], required: true },\n\t\tsubtotal: { type: Number, required: true, min: 0 },\n\t\tshipping_fee: { type: Number, min: 0, default: null },\n\t\ttotal: { type: Number, required: true, min: 0 },\n\t\tnotes: { type: String, trim: true },\n\t},\n\t{\n\t\ttimestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" },\n\t}\n)\n\norderSchema.index(\n\t{ customer_id: 1, created_at: -1 },\n\t{ name: \"orders_customer_created\" }\n)\n\norderSchema.index(\n\t{ expires_at: 1 },\n\t{ name: \"orders_expires_at\" }\n)\n\norderSchema.index(\n\t{ \"shipping_address.postal_code\": 1, created_at: -1 },\n\t{ name: \"orders_postal_created\" }\n)\n\nexport default mongoose.models.Order || model(\"Order\", orderSchema, \"orders\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\nimport { OrderStatus } from \"./Orders\"\n\nexport interface OrderStatusLogType {\n\torder_id: Types.ObjectId\n\tstatus: OrderStatus\n\tchanged_by: Types.ObjectId\n\tchanged_at?: Date\n\tnote?: string\n}\n\nconst orderStatusLogSchema = new Schema<OrderStatusLogType>(\n\t{\n\t\torder_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Order\",\n\t\t\trequired: true,\n\t\t},\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(OrderStatus),\n\t\t\trequired: true,\n\t\t},\n\t\tchanged_by: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"User\",\n\t\t\trequired: true,\n\t\t},\n\t\tchanged_at: {\n\t\t\ttype: Date,\n\t\t\tdefault: Date.now,\n\t\t},\n\t\tnote: {\n\t\t\ttype: String,\n\t\t\ttrim: true,\n\t\t},\n\t},\n\t{ collection: \"order_status_logs\" }\n)\n\norderStatusLogSchema.index(\n\t{ order_id: 1, changed_at: -1 },\n\t{ name: \"order_status_logs_order_changed_at\" }\n)\norderStatusLogSchema.index(\n\t{ changed_by: 1, changed_at: -1 },\n\t{ name: \"order_status_logs_changed_by_changed_at\" }\n)\n\nexport default\nmongoose.models.OrderStatusLog ||\nmodel<OrderStatusLogType>(\"OrderStatusLog\", orderStatusLogSchema)\n","import mongoose, { Schema, model, Document, Types } from \"mongoose\"\n\n/**\n * Sync Log Types\n */\nexport enum SyncLogType {\n\tSAP_QUOTATION = \"SAP_QUOTATION\",\n\tSAP_SALES_ORDER = \"SAP_SALES_ORDER\",\n\tPIPEDRIVE = \"PIPEDRIVE\",\n}\n\nexport enum SyncLogStatus {\n\tPENDING = \"PENDING\",\n\tSUCCESS = \"SUCCESS\",\n\tFAILED = \"FAILED\",\n\tRETRYING = \"RETRYING\",\n}\n\nexport enum SyncLogAction {\n\tCREATE = \"CREATE\",\n\tUPDATE = \"UPDATE\",\n\tDELETE = \"DELETE\",\n}\n\nexport interface ISyncLog extends Document {\n\t_id: Types.ObjectId\n\tentity_type: string\n\tentity_id: Types.ObjectId\n\tsync_type: SyncLogType\n\taction: SyncLogAction\n\tstatus: SyncLogStatus\n\terror_message?: string\n\terror_code?: string\n\terror_details?: Record<string, any>\n\trequest_payload?: Record<string, any>\n\tresponse_payload?: Record<string, any>\n\tretry_count: number\n\tmax_retries: number\n\tnext_retry_at?: Date\n\tcreated_at: Date\n\tupdated_at: Date\n\tresolved_at?: Date\n\tresolved_by?: Types.ObjectId\n}\n\nconst syncLogSchema = new Schema(\n\t{\n\t\tentity_type: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\tentity_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\tsync_type: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(SyncLogType),\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\taction: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(SyncLogAction),\n\t\t\trequired: true,\n\t\t},\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(SyncLogStatus),\n\t\t\tdefault: SyncLogStatus.PENDING,\n\t\t\tindex: true,\n\t\t},\n\t\terror_message: { type: String },\n\t\terror_code: { type: String },\n\t\terror_details: { type: Schema.Types.Mixed },\n\t\trequest_payload: { type: Schema.Types.Mixed },\n\t\tresponse_payload: { type: Schema.Types.Mixed },\n\t\tretry_count: { type: Number, default: 0 },\n\t\tmax_retries: { type: Number, default: 3 },\n\t\tnext_retry_at: { type: Date },\n\t\tresolved_at: { type: Date },\n\t\tresolved_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n\t},\n\t{\n\t\ttimestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" },\n\t}\n)\n\nsyncLogSchema.index({ entity_type: 1, entity_id: 1, status: 1 })\nsyncLogSchema.index({ status: 1, next_retry_at: 1 })\n\nexport const SyncLog = mongoose.models.SyncLog || model<ISyncLog>(\"SyncLog\", syncLogSchema, \"sync_logs\")\n","import mongoose, { Schema, model } from \"mongoose\"\nimport { UserRole } from \"../../users/models/Users\"\n\nexport interface AnnouncementType {\n\tcreated_by: mongoose.Types.ObjectId\n\tupdated_by?: mongoose.Types.ObjectId\n\tdeleted_by?: mongoose.Types.ObjectId\n\n\tcreated_at: Date\n\tupdated_at?: Date\n\tdeleted_at?: Date\n\n\ttitle: string\n\ttext: string\n\troles: UserRole[]\n}\n\nconst announcementSchema = new Schema<AnnouncementType>({\n\tcreated_by: {\n\t\ttype: Schema.Types.ObjectId,\n\t\tref: \"User\",\n\t\trequired: true,\n\t},\n\tupdated_by: {\n\t\ttype: Schema.Types.ObjectId,\n\t\tref: \"User\",\n\t},\n\tdeleted_by: {\n\t\ttype: Schema.Types.ObjectId,\n\t\tref: \"User\",\n\t},\n\n\tcreated_at: {\n\t\ttype: Date,\n\t\tdefault: Date.now,\n\t},\n\tupdated_at: Date,\n\tdeleted_at: Date,\n\n\ttitle: {\n\t\ttype: String,\n\t\trequired: true,\n\t\ttrim: true,\n\t},\n\ttext: {\n\t\ttype: String,\n\t\trequired: true,\n\t\ttrim: true,\n\t},\n\troles: {\n\t\ttype: [String],\n\t\tenum: Object.values(UserRole),\n\t\trequired: true,\n\t\tvalidate: {\n\t\t\tvalidator: (roles: UserRole[]) => roles.length > 0,\n\t\t\tmessage: \"At least one user role must be assigned.\",\n\t\t},\n\t},\n})\n\nexport default mongoose.models.Announcement || model<AnnouncementType>(\"Announcement\", announcementSchema, \"announcements\")\n","import mongoose, { Schema, model } from \"mongoose\"\nimport bcrypt from \"bcryptjs\"\n\nexport enum UserRole {\n ADMIN = \"admin\",\n SALES = \"sales\",\n TECHNICIAN = \"technician\",\n WAREHOUSEMAN = \"warehouseman\",\n}\n\nexport enum UserStatus {\n ACTIVE = \"active\",\n INACTIVE = \"inactive\",\n SUSPENDED = \"suspended\",\n}\n\nexport interface UserType {\n first_name: string\n middle_name?: string\n last_name: string\n username: string\n password: string\n role: UserRole\n status: UserStatus\n email?: string\n mobile?: string\n pipedrive_id?: string\n sap_employee_id?: string\n sap_id?: string\n created_at: Date\n created_by?: mongoose.Types.ObjectId | string\n updated_at?: Date\n updated_by?: mongoose.Types.ObjectId\n deleted_at?: Date\n deleted_by?: mongoose.Types.ObjectId\n}\n\nconst usersSchema = new Schema<UserType>({\n first_name: { type: String, required: true },\n middle_name: { type: String },\n last_name: { type: String, required: true },\n username: { type: String, required: true, unique: true },\n password: { type: String, required: true, select: false },\n role: {\n type: String,\n enum: Object.values(UserRole),\n default: UserRole.SALES,\n },\n status: {\n type: String,\n enum: Object.values(UserStatus),\n default: UserStatus.ACTIVE,\n },\n email: { type: String },\n mobile: { type: String },\n pipedrive_id: { type: String },\n sap_id: { type: String },\n sap_employee_id: { type: String },\n created_at: { type: Date, default: Date.now },\n created_by: { type: Schema.Types.Mixed, ref: \"User\" },\n updated_at: { type: Date },\n updated_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n deleted_at: { type: Date },\n deleted_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n})\n\nusersSchema.pre(\"save\", async function () {\n if (this.isModified(\"password\")) {\n this.password = await bcrypt.hash(this.password, 12)\n }\n})\n\nexport default mongoose.models.User || model<UserType>(\"User\", usersSchema, \"users\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface CartItem {\n\tarticle_id: Schema.Types.ObjectId\n\tquantity: number\n\tunit_price?: number\n\tline_subtotal?: number\n\tadded_at?: Date\n}\n\nexport interface CartType {\n\tcustomer_id: Schema.Types.ObjectId\n\tstatus: \"ACTIVE\" | \"CHECKED_OUT\" | \"ABANDONED\"\n\tcurrency: string\n\tprice_list_id?: Schema.Types.ObjectId\n\texpires_at?: Date\n\tsubtotal: number\n\titems: CartItem[]\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\n// Items se identifican por article_id, por eso no generamos _id\nconst cartItemSchema = new Schema<CartItem>(\n\t{\n\t\tarticle_id: { type: Types.ObjectId, ref: \"Article\", required: true },\n\t\tquantity: { type: Number, required: true, min: 1 },\n\t\tunit_price: { type: Number },\n\t\tline_subtotal: { type: Number },\n\t\tadded_at: { type: Date, default: Date.now },\n\t},\n\t{ _id: false }\n)\n\nconst cartSchema = new Schema<CartType>(\n\t{\n\t\tcustomer_id: {\n\t\t\ttype: Types.ObjectId,\n\t\t\tref: \"Customer\",\n\t\t\trequired: true,\n\t\t},\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tenum: [\"ACTIVE\", \"CHECKED_OUT\", \"ABANDONED\"],\n\t\t\tdefault: \"ACTIVE\",\n\t\t},\n\t\tcurrency: { type: String, default: \"MXN\" },\n\t\tprice_list_id: { type: Types.ObjectId, ref: \"PriceList\" },\n\t\texpires_at: { type: Date },\n\t\tsubtotal: { type: Number, default: 0 },\n\t\titems: { type: [cartItemSchema], default: [] },\n\t},\n\t{\n\t\ttimestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" },\n\t}\n)\n\n// 1 carrito por customer\ncartSchema.index({ customer_id: 1 }, { unique: true, name: \"carts_customer_unique\" })\n// Orden/limpieza por actualización\ncartSchema.index({ updated_at: -1 }, { name: \"carts_updated_at\" })\n\nexport default mongoose.models.Cart || model<CartType>(\"Cart\", cartSchema, \"carts\")\n","import mongoose, {\n\tSchema,\n\tmodel,\n\ttype Model,\n\ttype HydratedDocument,\n\ttype Types,\n} from \"mongoose\";\n\nexport interface RefreshTokenType {\n\tcustomer_id: Types.ObjectId;\n\ttoken_hash: string;\n\texpires_at: Date;\n\trevoked_at?: Date;\n\treplaced_by_token_hash?: string;\n\tcreated_at: Date;\n\tupdated_at?: Date;\n}\n\nexport type RefreshTokenDoc = HydratedDocument<RefreshTokenType>;\nexport type RefreshTokenModel = Model<RefreshTokenType>;\n\nconst refreshTokenSchema = new Schema<RefreshTokenType>({\n\tcustomer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n\t// Store only SHA-256 hash of the opaque refresh token (base64url). Never store the raw token.\n\ttoken_hash: { type: String, required: true },\n\texpires_at: { type: Date, required: true },\n\trevoked_at: { type: Date },\n\treplaced_by_token_hash: { type: String },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n});\n\nrefreshTokenSchema.index({ token_hash: 1 }, { unique: true });\nrefreshTokenSchema.index({ expires_at: 1 }, { expireAfterSeconds: 0 });\nrefreshTokenSchema.index({ customer_id: 1, expires_at: 1 });\n\nrefreshTokenSchema.pre(\"save\", function () {\n\tthis.updated_at = new Date();\n});\n\nconst RefreshToken: RefreshTokenModel =\n\t(mongoose.models.RefreshToken as RefreshTokenModel) ||\n\tmodel<RefreshTokenType>(\"RefreshToken\", refreshTokenSchema, \"refresh_tokens\");\n\nexport default RefreshToken;\n","import mongoose, {\n\tSchema,\n\tmodel,\n\ttype Model,\n\ttype HydratedDocument,\n\ttype Types,\n} from \"mongoose\";\n\nexport interface PasswordResetTokenType {\n\tcustomer_id: Types.ObjectId;\n\ttoken_hash: string;\n\texpires_at: Date;\n\tused_at?: Date;\n\tcreated_at: Date;\n\tupdated_at?: Date;\n}\n\nexport type PasswordResetTokenDoc = HydratedDocument<PasswordResetTokenType>;\nexport type PasswordResetTokenModel = Model<PasswordResetTokenType>;\n\nconst passwordResetTokenSchema = new Schema<PasswordResetTokenType>({\n\tcustomer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n\t// Store only SHA-256 hash of the opaque reset token (base64url). Never store the raw token.\n\ttoken_hash: { type: String, required: true },\n\texpires_at: { type: Date, required: true },\n\tused_at: { type: Date },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n});\n\npasswordResetTokenSchema.index({ token_hash: 1 }, { unique: true });\npasswordResetTokenSchema.index({ expires_at: 1 }, { expireAfterSeconds: 0 });\npasswordResetTokenSchema.index({ customer_id: 1, expires_at: 1 });\n\npasswordResetTokenSchema.pre(\"save\", function (next) {\n\tthis.updated_at = new Date();\n});\n\nconst PasswordResetToken: PasswordResetTokenModel =\n\t(mongoose.models.PasswordResetToken as PasswordResetTokenModel) ||\n\tmodel<PasswordResetTokenType>(\"PasswordResetToken\", passwordResetTokenSchema, \"password_reset_tokens\");\n\nexport default PasswordResetToken;\n","import mongoose, {\n Schema,\n model,\n type Model,\n type HydratedDocument,\n type Types,\n} from \"mongoose\"\n\nexport interface EmailVerificationTokenType {\n customer_id: Types.ObjectId\n token_hash: string\n expires_at: Date\n used_at?: Date\n created_at: Date\n updated_at?: Date\n}\n\nexport type EmailVerificationTokenDoc =\n HydratedDocument<EmailVerificationTokenType>\nexport type EmailVerificationTokenModel = Model<EmailVerificationTokenType>\n\nconst emailVerificationTokenSchema = new Schema<EmailVerificationTokenType>({\n customer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n // Store only SHA-256 hash of the opaque email verification token. Never store the raw token.\n token_hash: { type: String, required: true },\n expires_at: { type: Date, required: true },\n used_at: { type: Date },\n created_at: { type: Date, default: Date.now },\n updated_at: { type: Date },\n})\n\nemailVerificationTokenSchema.index({ token_hash: 1 }, { unique: true })\nemailVerificationTokenSchema.index({ expires_at: 1 }, { expireAfterSeconds: 0 })\nemailVerificationTokenSchema.index({ customer_id: 1, expires_at: 1 })\n\nconst EmailVerificationToken: EmailVerificationTokenModel =\n (mongoose.models.EmailVerificationToken as EmailVerificationTokenModel) ||\n model<EmailVerificationTokenType>(\n \"EmailVerificationToken\",\n emailVerificationTokenSchema,\n \"email_verification_tokens\"\n )\n\nexport default EmailVerificationToken\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport enum PaymentProvider {\n\tSTRIPE = \"stripe\",\n}\n\nexport enum PaymentMethodType {\n\tCARD = \"card\",\n\tAPPLE_PAY = \"apple_pay\",\n\tGOOGLE_PAY = \"google_pay\",\n\tBANK_TRANSFER = \"bank_transfer\",\n}\n\nexport type PaymentMethodWallet = \"apple_pay\" | \"google_pay\"\n\nexport interface CustomerPaymentMethodDocument {\n\tcustomer_id: Types.ObjectId\n\tprovider: PaymentProvider\n\tprovider_customer_id: string\n\tprovider_payment_method_id: string\n\ttype: PaymentMethodType\n\tbrand: string\n\tlast4: string\n\texp_month: number\n\texp_year: number\n\twallet?: PaymentMethodWallet | null\n\tis_default: boolean\n\tcreated_at: Date\n\tupdated_at?: Date\n\tdeleted_at?: Date\n\tdeleted_by?: Types.ObjectId\n}\n\nconst paymentMethodSchema = new Schema<CustomerPaymentMethodDocument>(\n\t{\n\t\tcustomer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n\t\tprovider: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(PaymentProvider),\n\t\t\tdefault: PaymentProvider.STRIPE,\n\t\t\trequired: true,\n\t\t},\n\t\tprovider_customer_id: { type: String, required: true, trim: true },\n\t\tprovider_payment_method_id: { type: String, required: true, trim: true },\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(PaymentMethodType),\n\t\t\tdefault: PaymentMethodType.CARD,\n\t\t\trequired: true,\n\t\t},\n\t\tbrand: { type: String, required: true },\n\t\tlast4: { type: String, required: true },\n\t\texp_month: { type: Number, required: true, min: 1, max: 12 },\n\t\texp_year: { type: Number, required: true },\n\t\twallet: {\n\t\t\ttype: String,\n\t\t\tenum: [\"apple_pay\", \"google_pay\"],\n\t\t\tdefault: null,\n\t\t},\n\t\tis_default: { type: Boolean, default: false },\n\t\tdeleted_at: { type: Date },\n\t\tdeleted_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\npaymentMethodSchema.index(\n\t{ customer_id: 1 },\n\t{ name: \"payment_methods_customer\" }\n)\n\npaymentMethodSchema.index(\n\t{ customer_id: 1, provider_payment_method_id: 1 },\n\t{ name: \"payment_methods_customer_provider_unique\", unique: true }\n)\n\npaymentMethodSchema.index(\n\t{ customer_id: 1, is_default: 1 },\n\t{ name: \"payment_methods_default_lookup\" }\n)\n\nexport default mongoose.models.CustomerPaymentMethod ||\n\tmodel<CustomerPaymentMethodDocument>(\"CustomerPaymentMethod\", paymentMethodSchema, \"customer_payment_methods\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport enum PaymentProvider {\n\tSTRIPE = \"stripe\",\n}\n\nexport enum TransactionStatus {\n\tPENDING = \"pending\",\n\tPROCESSING = \"processing\",\n\tSUCCEEDED = \"succeeded\",\n\tFAILED = \"failed\",\n\tREFUNDED = \"refunded\",\n}\n\nexport enum TransactionMethod {\n\tCARD = \"card\",\n\tAPPLE_PAY = \"apple_pay\",\n\tGOOGLE_PAY = \"google_pay\",\n\tBANK_TRANSFER = \"bank_transfer\",\n}\n\nexport interface OrderPaymentDocument {\n\torder_id: Types.ObjectId\n\tcustomer_id: Types.ObjectId\n\tpayment_method_id?: Types.ObjectId\n\tprovider: PaymentProvider\n\tprovider_payment_id?: string\n\tprovider_payment_intent_id: string\n\tmethod: TransactionMethod\n\tstatus: TransactionStatus\n\tamount: number\n\tcurrency: string\n\tcreated_at: Date\n\tupdated_at?: Date\n\tdeleted_at?: Date\n\tdeleted_by?: Types.ObjectId\n}\n\nconst orderPaymentSchema = new Schema<OrderPaymentDocument>(\n\t{\n\t\torder_id: { type: Schema.Types.ObjectId, ref: \"Order\", required: true },\n\t\tcustomer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n\t\tpayment_method_id: { type: Schema.Types.ObjectId, ref: \"ClientPaymentMethod\" },\n\t\tprovider: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(PaymentProvider),\n\t\t\tdefault: PaymentProvider.STRIPE,\n\t\t\trequired: true,\n\t\t},\n\t\tprovider_payment_id: { type: String },\n\t\tprovider_payment_intent_id: { type: String, required: true },\n\t\tmethod: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(TransactionMethod),\n\t\t\trequired: true,\n\t\t},\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(TransactionStatus),\n\t\t\tdefault: TransactionStatus.PENDING,\n\t\t\trequired: true,\n\t\t},\n\t\tamount: { type: Number, required: true, min: 0 },\n\t\tcurrency: { type: String, required: true, default: \"MXN\" },\n\t\tdeleted_at: { type: Date },\n\t\tdeleted_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\norderPaymentSchema.index(\n\t{ order_id: 1 },\n\t{ name: \"order_payments_order\" }\n)\n\norderPaymentSchema.index(\n\t{ customer_id: 1, created_at: -1 },\n\t{ name: \"order_payments_customer_created\" }\n)\n\norderPaymentSchema.index(\n\t{ provider_payment_intent_id: 1 },\n\t{\n\t\tname: \"order_payments_provider_intent_unique\",\n\t\tunique: true,\n\t\tsparse: true\n\t}\n)\n\norderPaymentSchema.index(\n\t{ provider_payment_id: 1 },\n\t{ name: \"order_payments_provider_payment_id\" }\n)\n\nexport default mongoose.models.OrderPayment ||\n\tmodel<OrderPaymentDocument>(\"OrderPayment\", orderPaymentSchema, \"order_payments\")\n"],"mappings":"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","names":["mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","QuoteStatus","Status","CreatedMethod","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","CustomerStatus","bcrypt","mongoose","import_mongoose","mongoose","import_mongoose","OrderStatus","PaymentMethod","PaymentStatus","mongoose","import_mongoose","mongoose","import_mongoose","SyncLogType","SyncLogStatus","SyncLogAction","mongoose","import_mongoose","import_mongoose","import_bcryptjs","UserRole","UserStatus","bcrypt","mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","PaymentProvider","PaymentMethodType","mongoose","import_mongoose","PaymentProvider","TransactionStatus","TransactionMethod","mongoose"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/clients/models/Clients.ts","../src/clients/models/ClientsContact.ts","../src/clients/models/ClientsAddress.ts","../src/clients/models/ClientsPaymentMethod.ts","../src/clients/models/ClientsPaymentTerm.ts","../src/clients/models/ClientsPriceList.ts","../src/clients/models/ClientsSalesEmployee.ts","../src/inventory/models/Article.ts","../src/inventory/models/ArticleGroups.ts","../src/inventory/models/ArticleClasses.ts","../src/inventory/models/ArticlePrices.ts","../src/inventory/models/Currencies.ts","../src/inventory/models/Warehouses.ts","../src/inventory/models/InventoryStocks.ts","../src/inventory/models/PriceLists.ts","../src/inventory/models/Category.ts","../src/inventory/models/Tag.ts","../src/inventory/models/ArticleViews.ts","../src/quotes/models/Quote.ts","../src/quotes/models/QuoteArticle.ts","../src/quotes/models/QuoteArticleExtra.ts","../src/quotes/models/QuoteContact.ts","../src/quotes/models/QuoteTerm.ts","../src/customers/models/Customers.ts","../src/customers/models/FiscalProfileType.ts","../src/orders/models/Orders.ts","../src/orders/models/OrderStatusLogs.ts","../src/orders/models/State.ts","../src/sap/models/SyncLog.ts","../src/announcements/models/Announcements.ts","../src/users/models/Users.ts","../src/carts/models/Carts.ts","../src/auth/models/RefreshTokens.ts","../src/auth/models/PasswordResetTokens.ts","../src/auth/models/EmailVerificationTokens.ts","../src/payments/models/PaymentMethods.ts","../src/payments/models/Payments.ts"],"sourcesContent":["export * from \"./clients\"\nexport * from \"./inventory\"\nexport * from \"./quotes\"\nexport * from \"./customers\"\nexport * from \"./orders\"\nexport * from \"./sap\"\nexport * from \"./announcements\"\nexport * from \"./users\"\nexport * from \"./carts\"\nexport * from \"./auth\"\nexport * from \"./payments\"\n\nexport { default as State, type StateType } from \"./orders/models/State\"\n","import mongoose, { Schema, model } from \"mongoose\"\n\nexport interface ClientType {\n\tsn_code?: string | null\n\tsn_name?: string | null\n\ttax_id?: string | null\n\tcurrency?: string | null\n\tphone_1?: string | null\n\temail?: string | null\n\tcomments?: string | null\n\tpipedrive_id?: string | null\n\tsap_id?: string | null\n\tdeleted_at?: Date | null\n\tdeleted_by?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientSchema = new Schema<ClientType>(\n\t{\n\t\tsn_code: { type: String, index: true },\n\t\tsn_name: { type: String, required: true },\n\t\ttax_id: { type: String },\n\t\tcurrency: { type: String },\n\t\tphone_1: { type: String },\n\t\temail: { type: String },\n\t\tcomments: { type: String },\n\t\tpipedrive_id: { type: String },\n\t\tsap_id: { type: String },\n\t\tdeleted_at: { type: Date, default: null },\n\t\tdeleted_by: { type: String, default: null },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.Client || model<ClientType>(\"Client\", clientSchema, \"clients\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface ClientContactType {\n\tclient_id: Types.ObjectId\n\tcontact_person_name?: string | null\n\tfirst_name?: string | null\n\tlast_name?: string | null\n\tcontact_phone?: string | null\n\tcontact_email?: string | null\n\tpipedrive_id?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientContactSchema = new Schema<ClientContactType>(\n\t{\n\t\tclient_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Client\",\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\tcontact_person_name: { type: String },\n\t\tfirst_name: { type: String },\n\t\tlast_name: { type: String },\n\t\tcontact_phone: { type: String },\n\t\tcontact_email: { type: String },\n\t\tpipedrive_id: { type: String },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.ClientContact || model<ClientContactType>(\"ClientContact\", clientContactSchema, \"client_contacts\")","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface ClientAddressType {\n\tclient_id: Types.ObjectId\n\taddress_name?: string | null\n\tstreet?: string | null\n\tneighborhood?: string | null\n\tpostal_code?: string | null\n\tcity?: string | null\n\tstate?: string | null\n\tcountry?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientAddressSchema = new Schema<ClientAddressType>(\n\t{\n\t\tclient_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Client\",\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\taddress_name: { type: String },\n\t\tstreet: { type: String },\n\t\tneighborhood: { type: String },\n\t\tpostal_code: { type: String },\n\t\tcity: { type: String },\n\t\tstate: { type: String },\n\t\tcountry: { type: String },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.ClientAddress || model<ClientAddressType>(\n\t\"ClientAddress\",\n\tclientAddressSchema,\n\t\"client_addresses\"\n)\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface ClientPaymentMethodType {\n\tclient_id: Types.ObjectId\n\tcode?: string | null\n\tdescription?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientPaymentMethodSchema = new Schema<ClientPaymentMethodType>(\n\t{\n\t\tclient_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Client\",\n\t\t\trequired: true,\n\t\t\tunique: true,\n\t\t},\n\t\tcode: { type: String },\n\t\tdescription: { type: String },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.ClientPaymentMethod || model<ClientPaymentMethodType>(\n\t\"ClientPaymentMethod\",\n\tclientPaymentMethodSchema,\n\t\"client_payment_methods\"\n)\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface ClientPaymentTermType {\n\tclient_id: Types.ObjectId\n\tcode?: string | null\n\tname?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientPaymentTermSchema = new Schema<ClientPaymentTermType>(\n\t{\n\t\tclient_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Client\",\n\t\t\trequired: true,\n\t\t\tunique: true,\n\t\t},\n\t\tcode: { type: String },\n\t\tname: { type: String },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.ClientPaymentTerm || model<ClientPaymentTermType>(\n\t\"ClientPaymentTerm\",\n\tclientPaymentTermSchema,\n\t\"client_payment_terms\"\n)\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface ClientPriceListType {\n\tclient_id: Types.ObjectId\n\tnumber?: string | null\n\tname?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientPriceListSchema = new Schema<ClientPriceListType>(\n\t{\n\t\tclient_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Client\",\n\t\t\trequired: true,\n\t\t\tunique: true,\n\t\t},\n\t\tnumber: { type: String },\n\t\tname: { type: String },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.ClientPriceList || model<ClientPriceListType>(\n\t\"ClientPriceList\",\n\tclientPriceListSchema,\n\t\"client_price_lists\"\n)\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface ClientSalesEmployeeType {\n\tclient_id: Types.ObjectId\n\temployee_code?: string | null\n\temployee_name?: string | null\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst clientSalesEmployeeSchema = new Schema<ClientSalesEmployeeType>(\n\t{\n\t\tclient_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Client\",\n\t\t\trequired: true,\n\t\t\tunique: true,\n\t\t},\n\t\temployee_code: { type: String },\n\t\temployee_name: { type: String },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.ClientSalesEmployee || model<ClientSalesEmployeeType>(\n\t\"ClientSalesEmployee\",\n\tclientSalesEmployeeSchema,\n\t\"client_sales_employees\"\n)\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nconst articleFileSchema = new Schema(\n\t{\n\t\tkey: { type: String, required: true },\n\t\turl: { type: String, required: true },\n\t\tfilename: { type: String, required: true },\n\t\tmime_type: { type: String, required: true },\n\t\tsize: { type: Number, required: true },\n\t\tuploaded_at: { type: Date, default: Date.now },\n\t\tuploaded_by: { type: String, required: true },\n\t},\n\t{ _id: false }\n)\n\nconst articleSchema = new Schema({\n\tarticle_number: { type: String, required: true, unique: true }, // SAP ItemCode\n\tdescription: { type: String, required: true },\n\tunit: { type: String, required: true },\n\tbrand: { type: String },\n\tmodel: { type: String },\n\tgroup_id: { type: Types.ObjectId, ref: \"ArticleGroup\", required: true },\n\tcategory_id: { type: Types.ObjectId, ref: \"Category\", required: false, index: true },\n\ttags: { type: [Types.ObjectId], ref: \"Tag\", default: [], index: true },\n\tis_featured: { type: Boolean, default: false, index: true },\n\tfeatured_order: { type: Number, default: 0 },\n\tfiles: {\n\t\timages: { type: [articleFileSchema], required: false },\n\t\tdatasheets: { type: [articleFileSchema], required: false },\n\t},\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n\tdeleted_at: { type: Date },\n})\n\narticleSchema.index(\n\t{ description: \"text\", brand: \"text\", model: \"text\" },\n\t{ name: \"articles_text_search\" }\n)\narticleSchema.index({ group_id: 1, updated_at: -1 }, { name: \"articles_group_updated\" })\narticleSchema.index({ category_id: 1, updated_at: -1 }, { name: \"articles_category_updated\" })\narticleSchema.index({ updated_at: -1 }, { name: \"articles_updated\" })\narticleSchema.index(\n\t{ deleted_at: 1, updated_at: -1 },\n\t{ name: \"articles_not_deleted_sort\" }\n)\narticleSchema.index({ is_featured: 1, featured_order: 1 }, { name: \"articles_featured_order\" })\n\nexport default mongoose.models.Article || model(\"Article\", articleSchema, \"articles\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst articleGroupSchema = new Schema({\n\tname: { type: String, required: true },\n\tdescription: { type: String },\n})\n\nexport default mongoose.models.ArticleGroup || model(\"ArticleGroup\", articleGroupSchema, \"article_groups\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst articleClassSchema = new Schema({\n\tname: { type: String, required: true },\n\tdescription: { type: String },\n})\n\nexport default mongoose.models.ArticleClass || model(\"ArticleClass\", articleClassSchema, \"article_classes\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nconst articlePriceSchema = new Schema({\n\tarticle_id: { type: Types.ObjectId, ref: \"Article\", required: true },\n\tprice_list_id: { type: Types.ObjectId, ref: \"PriceList\", required: true },\n\tcurrency_id: { type: Types.ObjectId, ref: \"Currency\", required: true },\n\tprice: { type: Number, required: true },\n\tvalid_from: { type: Date },\n\tvalid_to: { type: Date },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n})\n\narticlePriceSchema.index({ article_id: 1, price_list_id: 1 }, { name: \"article_prices_article_pricelist\" })\n\nexport default mongoose.models.ArticlePrice || model(\"ArticlePrice\", articlePriceSchema, \"article_prices\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst currencySchema = new Schema({\n\tcode: { type: String, required: true, unique: true },\n\tsymbol: { type: String, required: true },\n\tname: { type: String, required: true },\n})\n\nexport default mongoose.models.Currency || model(\"Currency\", currencySchema, \"currencies\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst warehouseSchema = new Schema({\n\tcode: { type: String, required: true, unique: true },\n\tname: { type: String, required: true },\n\tlocation: { type: String },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n})\n\nexport default mongoose.models.Warehouse || model(\"Warehouse\", warehouseSchema, \"warehouses\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nconst inventoryStockSchema = new Schema({\n\tarticle_id: { type: Types.ObjectId, ref: \"Article\", required: true },\n\twarehouse_id: { type: Types.ObjectId, ref: \"Warehouse\", required: true },\n\tcount: { type: Number, required: true },\n\tmin_stock: { type: Number },\n\tmax_stock: { type: Number },\n\tupdated_at: { type: Date, default: Date.now },\n\tupdated_by: { type: Types.ObjectId, ref: \"User\" },\n})\n\ninventoryStockSchema.index({ article_id: 1, warehouse_id: 1 }, { name: \"inventory_stocks_article_warehouse_unique\", unique: true })\n\nexport default mongoose.models.InventoryStock || model(\"InventoryStock\", inventoryStockSchema, \"inventory_stocks\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst priceListSchema = new Schema({\n\tnumber: { type: String, required: true, unique: true },\n\tname: { type: String, required: true },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n})\n\nexport default mongoose.models.PriceList || model(\"PriceList\", priceListSchema, \"price_lists\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nconst categorySchema = new Schema({\n\tname: { type: String, required: true, trim: true },\n\tslug: { type: String, required: true, trim: true, lowercase: true },\n\tparent_id: { type: Types.ObjectId, ref: \"Category\", default: null, index: true },\n\torder: { type: Number, default: 0 },\n\tis_active: { type: Boolean, default: true, index: true },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date, default: Date.now },\n})\n\ncategorySchema.index({ slug: 1 }, { unique: true, name: \"categories_slug_unique\" })\ncategorySchema.index({ parent_id: 1 }, { name: \"categories_parent\" })\ncategorySchema.index({ is_active: 1 }, { name: \"categories_active\" })\n\nexport default mongoose.models.Category || model(\"Category\", categorySchema, \"categories\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst tagSchema = new Schema({\n\tname: { type: String, required: true, trim: true },\n\tslug: { type: String, required: true, trim: true, lowercase: true },\n\ttype: { type: String, enum: [\"filter\", \"sidebar\"], default: \"filter\", index: true },\n\tis_active: { type: Boolean, default: true, index: true },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date, default: Date.now },\n})\n\ntagSchema.index({ slug: 1 }, { unique: true, name: \"tags_slug_unique\" })\ntagSchema.index({ is_active: 1 }, { name: \"tags_active\" })\ntagSchema.index({ type: 1 }, { name: \"tags_type\" })\n\nexport default mongoose.models.Tag || model(\"Tag\", tagSchema, \"tags\")\n","import mongoose, { Schema, model, type Model, type HydratedDocument, type Types } from \"mongoose\"\n\nexport interface ArticleViewType {\n\tarticle_id: Types.ObjectId\n\tvisited_at: Date\n}\n\nexport type ArticleViewDoc = HydratedDocument<ArticleViewType>\nexport type ArticleViewModel = Model<ArticleViewType>\n\nconst articleViewSchema = new Schema<ArticleViewType>(\n\t{\n\t\tarticle_id: { type: Schema.Types.ObjectId, ref: \"Article\", required: true },\n\t\tvisited_at: { type: Date, default: Date.now },\n\t},\n\t{ collection: \"article_views\" }\n)\n\nconst ArticleView: ArticleViewModel =\n\t(mongoose.models.ArticleView as ArticleViewModel) ||\n\tmodel<ArticleViewType>(\"ArticleView\", articleViewSchema)\n\nexport default ArticleView\n","import mongoose, { Schema, model } from \"mongoose\"\n\nexport enum QuoteStatus {\n\tOPPORTUNITY = \"OPPORTUNITY\",\n\tQUOTE = \"QUOTE\",\n\tFOLLOWING = \"FOLLOWING\",\n\tNEGOTIATION = \"NEGOTIATION\",\n}\n\nexport enum Status {\n\tOPEN = \"OPEN\",\n\tWIN = \"WIN\",\n\tLOST = \"LOST\",\n\tDELETE = \"DELETE\",\n}\n\nexport enum CreatedMethod {\n\tMANUAL = \"MANUAL\",\n\tCSV = \"CSV\",\n}\n\nconst quoteSchema = new Schema(\n\t{\n\t\tquote_number: { type: Number, required: true },\n\t\tquote_revision: { type: Number, default: 0 },\n\t\tquote_ref: { type: String },\n\t\tcompany: { type: String },\n\t\tcompany_id: { type: Schema.Types.ObjectId, ref: \"Client\", required: true },\n\t\tcompany_pipedrive_id: { type: String },\n\t\tcontact_id: { type: Schema.Types.ObjectId, ref: \"ClientContact\" },\n\t\tproject_name: { type: String },\n\t\tproject_lab: { type: String },\n\t\tpayment_condition: { type: String },\n\t\tpayment_exp: { type: String },\n\t\tterms_ids: [{ type: Schema.Types.ObjectId, ref: \"QuoteTerm\" }],\n\t\tcurrency_id: { type: Schema.Types.ObjectId, ref: \"Currency\" },\n\t\tiva: { type: String },\n\t\tdate: { type: Date },\n\t\tstatus: { type: String, enum: Object.values(Status), default: Status.OPEN },\n\t\tquote_status: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(QuoteStatus),\n\t\t\tdefault: QuoteStatus.OPPORTUNITY,\n\t\t},\n\t\tsap_id: { type: String },\n\t\tsap_quotation_entry: { type: Number },\n\t\tsap_order_entry: { type: Number },\n\t\tpipedrive_id: { type: String },\n\t\tshould_sync: { type: Boolean, default: false },\n\t\tpdf_download_link: { type: String },\n\t\tnotes: { type: String },\n\t\tcreated_method: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(CreatedMethod),\n\t\t\tdefault: CreatedMethod.MANUAL,\n\t\t},\n\t\tcreated_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n\t\tupdated_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n\t\tdeleted_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n\t\tdeleted_at: { type: Date },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.Quote || model(\"Quote\", quoteSchema, \"quotes\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst quoteArticleSchema = new Schema(\n\t{\n\t\tquote_id: { type: Schema.Types.ObjectId, ref: \"Quote\", required: true },\n\t\tarticle_id: { type: Schema.Types.ObjectId, ref: \"Article\" },\n\t\tarticle_number: { type: String },\n\t\tdescription: { type: String },\n\t\tdelivery: { type: String },\n\t\tquantity: { type: Number },\n\t\tprice: { type: Number },\n\t\tunit_price: { type: Number },\n\t\toriginal_price: { type: Number },\n\t\ttotal: { type: Number },\n\t\tutility: { type: Number },\n\t\ttype: { type: String },\n\t\textra_id: { type: Schema.Types.ObjectId, ref: \"QuoteArticleExtra\" },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.QuoteArticle || model(\"QuoteArticle\", quoteArticleSchema, \"quote_articles\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst quoteArticleExtraSchema = new Schema(\n\t{\n\t\tquote_article_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"QuoteArticle\",\n\t\t\trequired: true,\n\t\t},\n\t\tmultiplier: Number,\n\t\tusa_freight: Number,\n\t\tusa_expenses: Number,\n\t\tduty: Number,\n\t\tmex_freight: Number,\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.QuoteArticleExtra || model(\"QuoteArticleExtra\", quoteArticleExtraSchema, \"quote_article_extras\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst quoteContactSchema = new Schema({\n\tquote_id: { type: Schema.Types.ObjectId, ref: \"Quote\", required: true },\n\tname: String,\n\temail: String,\n\tmobile: String,\n\tpipedrive_id: String,\n\tcreated_at: { type: Date, default: Date.now },\n})\n\nexport default mongoose.models.QuoteContact || model(\"QuoteContact\", quoteContactSchema, \"quote_contacts\")\n","import mongoose, { Schema, model } from \"mongoose\"\n\nconst quoteTermSchema = new Schema(\n\t{\n\t\ttitle: String,\n\t\tcontent: { type: String, required: true },\n\t\tcategory: String,\n\t\tis_active: { type: Boolean, default: true },\n\t\tcreated_by: String,\n\t\tupdated_by: String,\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\nexport default mongoose.models.QuoteTerm || model(\"QuoteTerm\", quoteTermSchema, \"quote_terms\")\n","import mongoose, {\n\tSchema,\n\tmodel,\n\ttype Model,\n\ttype HydratedDocument,\n\ttype Types,\n} from \"mongoose\";\nimport bcrypt from \"bcryptjs\";\n\nexport enum CustomerStatus {\n\tACTIVE = \"active\",\n\tINACTIVE = \"inactive\",\n\tBANNED = \"banned\",\n}\n\nexport interface CustomerType {\n\tfirst_name: string;\n\tlast_name: string;\n\temail: string;\n\tmobile?: string;\n\tpassword: string;\n\tstatus: CustomerStatus;\n\tfiscal_profile_id?: Types.ObjectId;\n\tcreated_at: Date;\n\tupdated_at?: Date;\n\tdeleted_at?: Date;\n}\n\nexport type CustomerDoc = HydratedDocument<CustomerType>;\nexport type CustomerModel = Model<CustomerType>;\n\nconst customerSchema = new Schema<CustomerType>({\n\tfirst_name: { type: String, required: true },\n\tlast_name: { type: String, required: true },\n\temail: { type: String, required: true, unique: true },\n\tmobile: { type: String },\n\tpassword: { type: String, required: true, select: false },\n\tstatus: {\n\t\ttype: String,\n\t\tenum: Object.values(CustomerStatus),\n\t\tdefault: CustomerStatus.INACTIVE,\n\t},\n\tfiscal_profile_id: { type: Schema.Types.ObjectId, ref: \"FiscalProfile\" },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n\tdeleted_at: { type: Date },\n});\n\ncustomerSchema.pre(\"save\", async function() {\n\tif (this.isModified(\"password\")) {\n\t\tthis.password = await bcrypt.hash(this.password, 12);\n\t}\n});\n\nconst Customer: CustomerModel =\n\t(mongoose.models.Customer as CustomerModel) ||\n\tmodel<CustomerType>(\"Customer\", customerSchema, \"customers\");\n\nexport default Customer;\n","import mongoose, { Schema, model, type Model, type HydratedDocument, type Types } from \"mongoose\";\n\nexport interface FiscalProfileType {\n\tcustomer_id: Types.ObjectId;\n\trfc: string;\n\trazon_social: string;\n\tuso_cfdi: string;\n\tregimen_fiscal: string;\n\tcp: string;\n\tcreated_at: Date;\n\tupdated_at?: Date;\n}\n\nexport type FiscalProfileDoc = HydratedDocument<FiscalProfileType>;\nexport type FiscalProfileModel = Model<FiscalProfileType>;\n\nconst fiscalProfileSchema = new Schema<FiscalProfileType>({\n\tcustomer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n\trfc: { type: String, required: true },\n\trazon_social: { type: String, required: true },\n\tuso_cfdi: { type: String, required: true },\n\tregimen_fiscal: { type: String, required: true },\n\tcp: { type: String, required: true },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n});\n\nconst FiscalProfile: FiscalProfileModel =\n\t(mongoose.models.FiscalProfile as FiscalProfileModel) ||\n\tmodel<FiscalProfileType>(\"FiscalProfile\", fiscalProfileSchema, \"fiscal_profiles\");\n\nexport default FiscalProfile;\n","import mongoose, { Schema, model } from \"mongoose\"\n\nexport enum OrderStatus {\n\tPENDING = \"pending\",\n\tCONFIRMED = \"confirmed\",\n\tSHIPPED = \"shipped\",\n\tCANCELLED = \"cancelled\",\n\tCOMPLETED = \"completed\",\n}\n\nexport enum PaymentMethod {\n\tCARD = \"CARD\",\n\tTRANSFER = \"TRANSFER\",\n}\n\nexport enum PaymentStatus {\n\tUNPAID = \"UNPAID\",\n\tPENDING_TRANSFER = \"PENDING_TRANSFER\",\n\tPAID = \"PAID\",\n\tREFUNDED = \"REFUNDED\",\n}\n\nconst shippingAddressSchema = new Schema(\n\t{\n\t\tfull_name: { type: String, required: true, trim: true },\n\t\tphone: { type: String, required: true, trim: true },\n\t\tline1: { type: String, required: true, trim: true },\n\t\tline2: { type: String, trim: true },\n\t\tcity: { type: String, required: true, trim: true },\n\t\tstate: { type: String, required: true, trim: true },\n\t\tpostal_code: { type: String, required: true, trim: true },\n\t\tcountry: { type: String, required: true, trim: true, default: \"MX\" },\n\t},\n\t{ _id: false }\n)\n\nconst orderItemSchema = new Schema(\n\t{\n\t\tarticle_id: { type: Schema.Types.ObjectId, ref: \"Article\", required: true },\n\t\tquantity: { type: Number, required: true, min: 1 },\n\t\tunit_price: { type: Number, required: true, min: 0 },\n\t\ttotal: { type: Number, required: true, min: 0 },\n\t},\n\t{ _id: false }\n)\n\nconst orderSchema = new Schema(\n\t{\n\t\tcustomer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n\t\titems: { type: [orderItemSchema], required: true, default: [] },\n\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(OrderStatus),\n\t\t\tdefault: OrderStatus.PENDING,\n\t\t\trequired: true,\n\t\t},\n\n\t\ttracking_number: { type: String },\n\n\t\tpayment_method: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(PaymentMethod),\n\t\t\trequired: true,\n\t\t},\n\n\t\tpayment_status: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(PaymentStatus),\n\t\t\tdefault: PaymentStatus.UNPAID,\n\t\t\trequired: true,\n\t\t},\n\n\t\texpires_at: { type: Date },\n\n\t\tshipping_address: { type: shippingAddressSchema, required: false },\n\t\tdelivery_type: { type: String, enum: ['shipping', 'pickup'], required: true },\n\t\tsubtotal: { type: Number, required: true, min: 0 },\n\t\tshipping_fee: { type: Number, min: 0, default: null },\n\t\tshipping_state_id: { type: Schema.Types.ObjectId, ref: \"State\", default: null },\n\t\ttotal: { type: Number, required: true, min: 0 },\n\t\tnotes: { type: String, trim: true },\n\t},\n\t{\n\t\ttimestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" },\n\t}\n)\n\norderSchema.index(\n\t{ customer_id: 1, created_at: -1 },\n\t{ name: \"orders_customer_created\" }\n)\n\norderSchema.index(\n\t{ expires_at: 1 },\n\t{ name: \"orders_expires_at\" }\n)\n\norderSchema.index(\n\t{ \"shipping_address.postal_code\": 1, created_at: -1 },\n\t{ name: \"orders_postal_created\" }\n)\n\nexport default mongoose.models.Order || model(\"Order\", orderSchema, \"orders\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\nimport { OrderStatus } from \"./Orders\"\n\nexport interface OrderStatusLogType {\n\torder_id: Types.ObjectId\n\tstatus: OrderStatus\n\tchanged_by: Types.ObjectId\n\tchanged_at?: Date\n\tnote?: string\n}\n\nconst orderStatusLogSchema = new Schema<OrderStatusLogType>(\n\t{\n\t\torder_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"Order\",\n\t\t\trequired: true,\n\t\t},\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(OrderStatus),\n\t\t\trequired: true,\n\t\t},\n\t\tchanged_by: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\tref: \"User\",\n\t\t\trequired: true,\n\t\t},\n\t\tchanged_at: {\n\t\t\ttype: Date,\n\t\t\tdefault: Date.now,\n\t\t},\n\t\tnote: {\n\t\t\ttype: String,\n\t\t\ttrim: true,\n\t\t},\n\t},\n\t{ collection: \"order_status_logs\" }\n)\n\norderStatusLogSchema.index(\n\t{ order_id: 1, changed_at: -1 },\n\t{ name: \"order_status_logs_order_changed_at\" }\n)\norderStatusLogSchema.index(\n\t{ changed_by: 1, changed_at: -1 },\n\t{ name: \"order_status_logs_changed_by_changed_at\" }\n)\n\nexport default\nmongoose.models.OrderStatusLog ||\nmodel<OrderStatusLogType>(\"OrderStatusLog\", orderStatusLogSchema)\n","import mongoose, { Schema, model } from \"mongoose\"\n\nexport interface StateType {\n\t_id?: mongoose.Types.ObjectId\n\tname: string\n\tcode?: string\n\tpercentage: number\n\tis_active: boolean\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\nconst stateSchema = new Schema<StateType>(\n\t{\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t\ttrim: true,\n\t\t\tlowercase: true,\n\t\t\tindex: true,\n\t\t},\n\t\tcode: {\n\t\t\ttype: String,\n\t\t\ttrim: true,\n\t\t\tuppercase: true,\n\t\t\tsparse: true,\n\t\t},\n\t\tpercentage: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t\tdefault: 0.1,\n\t\t\tmin: 0,\n\t\t\tmax: 1,\n\t\t},\n\t\tis_active: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t\tindex: true,\n\t\t},\n\t},\n\t{\n\t\ttimestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" },\n\t}\n)\n\nstateSchema.index({ name: 1, is_active: 1 }, { name: \"states_name_active\" })\n\nexport default mongoose.models.State || model<StateType>(\"State\", stateSchema, \"states\")\n","import mongoose, { Schema, model, Document, Types } from \"mongoose\"\n\n/**\n * Sync Log Types\n */\nexport enum SyncLogType {\n\tSAP_QUOTATION = \"SAP_QUOTATION\",\n\tSAP_SALES_ORDER = \"SAP_SALES_ORDER\",\n\tPIPEDRIVE = \"PIPEDRIVE\",\n}\n\nexport enum SyncLogStatus {\n\tPENDING = \"PENDING\",\n\tSUCCESS = \"SUCCESS\",\n\tFAILED = \"FAILED\",\n\tRETRYING = \"RETRYING\",\n}\n\nexport enum SyncLogAction {\n\tCREATE = \"CREATE\",\n\tUPDATE = \"UPDATE\",\n\tDELETE = \"DELETE\",\n}\n\nexport interface ISyncLog extends Document {\n\t_id: Types.ObjectId\n\tentity_type: string\n\tentity_id: Types.ObjectId\n\tsync_type: SyncLogType\n\taction: SyncLogAction\n\tstatus: SyncLogStatus\n\terror_message?: string\n\terror_code?: string\n\terror_details?: Record<string, any>\n\trequest_payload?: Record<string, any>\n\tresponse_payload?: Record<string, any>\n\tretry_count: number\n\tmax_retries: number\n\tnext_retry_at?: Date\n\tcreated_at: Date\n\tupdated_at: Date\n\tresolved_at?: Date\n\tresolved_by?: Types.ObjectId\n}\n\nconst syncLogSchema = new Schema(\n\t{\n\t\tentity_type: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\tentity_id: {\n\t\t\ttype: Schema.Types.ObjectId,\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\tsync_type: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(SyncLogType),\n\t\t\trequired: true,\n\t\t\tindex: true,\n\t\t},\n\t\taction: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(SyncLogAction),\n\t\t\trequired: true,\n\t\t},\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(SyncLogStatus),\n\t\t\tdefault: SyncLogStatus.PENDING,\n\t\t\tindex: true,\n\t\t},\n\t\terror_message: { type: String },\n\t\terror_code: { type: String },\n\t\terror_details: { type: Schema.Types.Mixed },\n\t\trequest_payload: { type: Schema.Types.Mixed },\n\t\tresponse_payload: { type: Schema.Types.Mixed },\n\t\tretry_count: { type: Number, default: 0 },\n\t\tmax_retries: { type: Number, default: 3 },\n\t\tnext_retry_at: { type: Date },\n\t\tresolved_at: { type: Date },\n\t\tresolved_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n\t},\n\t{\n\t\ttimestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" },\n\t}\n)\n\nsyncLogSchema.index({ entity_type: 1, entity_id: 1, status: 1 })\nsyncLogSchema.index({ status: 1, next_retry_at: 1 })\n\nexport const SyncLog = mongoose.models.SyncLog || model<ISyncLog>(\"SyncLog\", syncLogSchema, \"sync_logs\")\n","import mongoose, { Schema, model } from \"mongoose\"\nimport { UserRole } from \"../../users/models/Users\"\n\nexport interface AnnouncementType {\n\tcreated_by: mongoose.Types.ObjectId\n\tupdated_by?: mongoose.Types.ObjectId\n\tdeleted_by?: mongoose.Types.ObjectId\n\n\tcreated_at: Date\n\tupdated_at?: Date\n\tdeleted_at?: Date\n\n\ttitle: string\n\ttext: string\n\troles: UserRole[]\n}\n\nconst announcementSchema = new Schema<AnnouncementType>({\n\tcreated_by: {\n\t\ttype: Schema.Types.ObjectId,\n\t\tref: \"User\",\n\t\trequired: true,\n\t},\n\tupdated_by: {\n\t\ttype: Schema.Types.ObjectId,\n\t\tref: \"User\",\n\t},\n\tdeleted_by: {\n\t\ttype: Schema.Types.ObjectId,\n\t\tref: \"User\",\n\t},\n\n\tcreated_at: {\n\t\ttype: Date,\n\t\tdefault: Date.now,\n\t},\n\tupdated_at: Date,\n\tdeleted_at: Date,\n\n\ttitle: {\n\t\ttype: String,\n\t\trequired: true,\n\t\ttrim: true,\n\t},\n\ttext: {\n\t\ttype: String,\n\t\trequired: true,\n\t\ttrim: true,\n\t},\n\troles: {\n\t\ttype: [String],\n\t\tenum: Object.values(UserRole),\n\t\trequired: true,\n\t\tvalidate: {\n\t\t\tvalidator: (roles: UserRole[]) => roles.length > 0,\n\t\t\tmessage: \"At least one user role must be assigned.\",\n\t\t},\n\t},\n})\n\nexport default mongoose.models.Announcement || model<AnnouncementType>(\"Announcement\", announcementSchema, \"announcements\")\n","import mongoose, { Schema, model } from \"mongoose\"\nimport bcrypt from \"bcryptjs\"\n\nexport enum UserRole {\n ADMIN = \"admin\",\n SALES = \"sales\",\n TECHNICIAN = \"technician\",\n WAREHOUSEMAN = \"warehouseman\",\n}\n\nexport enum UserStatus {\n ACTIVE = \"active\",\n INACTIVE = \"inactive\",\n SUSPENDED = \"suspended\",\n}\n\nexport interface UserType {\n first_name: string\n middle_name?: string\n last_name: string\n username: string\n password: string\n role: UserRole\n status: UserStatus\n email?: string\n mobile?: string\n pipedrive_id?: string\n sap_employee_id?: string\n sap_id?: string\n created_at: Date\n created_by?: mongoose.Types.ObjectId | string\n updated_at?: Date\n updated_by?: mongoose.Types.ObjectId\n deleted_at?: Date\n deleted_by?: mongoose.Types.ObjectId\n}\n\nconst usersSchema = new Schema<UserType>({\n first_name: { type: String, required: true },\n middle_name: { type: String },\n last_name: { type: String, required: true },\n username: { type: String, required: true, unique: true },\n password: { type: String, required: true, select: false },\n role: {\n type: String,\n enum: Object.values(UserRole),\n default: UserRole.SALES,\n },\n status: {\n type: String,\n enum: Object.values(UserStatus),\n default: UserStatus.ACTIVE,\n },\n email: { type: String },\n mobile: { type: String },\n pipedrive_id: { type: String },\n sap_id: { type: String },\n sap_employee_id: { type: String },\n created_at: { type: Date, default: Date.now },\n created_by: { type: Schema.Types.Mixed, ref: \"User\" },\n updated_at: { type: Date },\n updated_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n deleted_at: { type: Date },\n deleted_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n})\n\nusersSchema.pre(\"save\", async function () {\n if (this.isModified(\"password\")) {\n this.password = await bcrypt.hash(this.password, 12)\n }\n})\n\nexport default mongoose.models.User || model<UserType>(\"User\", usersSchema, \"users\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport interface CartItem {\n\tarticle_id: Schema.Types.ObjectId\n\tquantity: number\n\tunit_price?: number\n\tline_subtotal?: number\n\tadded_at?: Date\n}\n\nexport interface CartType {\n\tcustomer_id: Schema.Types.ObjectId\n\tstatus: \"ACTIVE\" | \"CHECKED_OUT\" | \"ABANDONED\"\n\tcurrency: string\n\tprice_list_id?: Schema.Types.ObjectId\n\texpires_at?: Date\n\tsubtotal: number\n\titems: CartItem[]\n\tcreated_at?: Date\n\tupdated_at?: Date\n}\n\n// Items se identifican por article_id, por eso no generamos _id\nconst cartItemSchema = new Schema<CartItem>(\n\t{\n\t\tarticle_id: { type: Types.ObjectId, ref: \"Article\", required: true },\n\t\tquantity: { type: Number, required: true, min: 1 },\n\t\tunit_price: { type: Number },\n\t\tline_subtotal: { type: Number },\n\t\tadded_at: { type: Date, default: Date.now },\n\t},\n\t{ _id: false }\n)\n\nconst cartSchema = new Schema<CartType>(\n\t{\n\t\tcustomer_id: {\n\t\t\ttype: Types.ObjectId,\n\t\t\tref: \"Customer\",\n\t\t\trequired: true,\n\t\t},\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tenum: [\"ACTIVE\", \"CHECKED_OUT\", \"ABANDONED\"],\n\t\t\tdefault: \"ACTIVE\",\n\t\t},\n\t\tcurrency: { type: String, default: \"MXN\" },\n\t\tprice_list_id: { type: Types.ObjectId, ref: \"PriceList\" },\n\t\texpires_at: { type: Date },\n\t\tsubtotal: { type: Number, default: 0 },\n\t\titems: { type: [cartItemSchema], default: [] },\n\t},\n\t{\n\t\ttimestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" },\n\t}\n)\n\n// 1 carrito por customer\ncartSchema.index({ customer_id: 1 }, { unique: true, name: \"carts_customer_unique\" })\n// Orden/limpieza por actualización\ncartSchema.index({ updated_at: -1 }, { name: \"carts_updated_at\" })\n\nexport default mongoose.models.Cart || model<CartType>(\"Cart\", cartSchema, \"carts\")\n","import mongoose, {\n\tSchema,\n\tmodel,\n\ttype Model,\n\ttype HydratedDocument,\n\ttype Types,\n} from \"mongoose\";\n\nexport interface RefreshTokenType {\n\tcustomer_id: Types.ObjectId;\n\ttoken_hash: string;\n\texpires_at: Date;\n\trevoked_at?: Date;\n\treplaced_by_token_hash?: string;\n\tcreated_at: Date;\n\tupdated_at?: Date;\n}\n\nexport type RefreshTokenDoc = HydratedDocument<RefreshTokenType>;\nexport type RefreshTokenModel = Model<RefreshTokenType>;\n\nconst refreshTokenSchema = new Schema<RefreshTokenType>({\n\tcustomer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n\t// Store only SHA-256 hash of the opaque refresh token (base64url). Never store the raw token.\n\ttoken_hash: { type: String, required: true },\n\texpires_at: { type: Date, required: true },\n\trevoked_at: { type: Date },\n\treplaced_by_token_hash: { type: String },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n});\n\nrefreshTokenSchema.index({ token_hash: 1 }, { unique: true });\nrefreshTokenSchema.index({ expires_at: 1 }, { expireAfterSeconds: 0 });\nrefreshTokenSchema.index({ customer_id: 1, expires_at: 1 });\n\nrefreshTokenSchema.pre(\"save\", function () {\n\tthis.updated_at = new Date();\n});\n\nconst RefreshToken: RefreshTokenModel =\n\t(mongoose.models.RefreshToken as RefreshTokenModel) ||\n\tmodel<RefreshTokenType>(\"RefreshToken\", refreshTokenSchema, \"refresh_tokens\");\n\nexport default RefreshToken;\n","import mongoose, {\n\tSchema,\n\tmodel,\n\ttype Model,\n\ttype HydratedDocument,\n\ttype Types,\n} from \"mongoose\";\n\nexport interface PasswordResetTokenType {\n\tcustomer_id: Types.ObjectId;\n\ttoken_hash: string;\n\texpires_at: Date;\n\tused_at?: Date;\n\tcreated_at: Date;\n\tupdated_at?: Date;\n}\n\nexport type PasswordResetTokenDoc = HydratedDocument<PasswordResetTokenType>;\nexport type PasswordResetTokenModel = Model<PasswordResetTokenType>;\n\nconst passwordResetTokenSchema = new Schema<PasswordResetTokenType>({\n\tcustomer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n\t// Store only SHA-256 hash of the opaque reset token (base64url). Never store the raw token.\n\ttoken_hash: { type: String, required: true },\n\texpires_at: { type: Date, required: true },\n\tused_at: { type: Date },\n\tcreated_at: { type: Date, default: Date.now },\n\tupdated_at: { type: Date },\n});\n\npasswordResetTokenSchema.index({ token_hash: 1 }, { unique: true });\npasswordResetTokenSchema.index({ expires_at: 1 }, { expireAfterSeconds: 0 });\npasswordResetTokenSchema.index({ customer_id: 1, expires_at: 1 });\n\npasswordResetTokenSchema.pre(\"save\", function (next) {\n\tthis.updated_at = new Date();\n});\n\nconst PasswordResetToken: PasswordResetTokenModel =\n\t(mongoose.models.PasswordResetToken as PasswordResetTokenModel) ||\n\tmodel<PasswordResetTokenType>(\"PasswordResetToken\", passwordResetTokenSchema, \"password_reset_tokens\");\n\nexport default PasswordResetToken;\n","import mongoose, {\n Schema,\n model,\n type Model,\n type HydratedDocument,\n type Types,\n} from \"mongoose\"\n\nexport interface EmailVerificationTokenType {\n customer_id: Types.ObjectId\n token_hash: string\n expires_at: Date\n used_at?: Date\n created_at: Date\n updated_at?: Date\n}\n\nexport type EmailVerificationTokenDoc =\n HydratedDocument<EmailVerificationTokenType>\nexport type EmailVerificationTokenModel = Model<EmailVerificationTokenType>\n\nconst emailVerificationTokenSchema = new Schema<EmailVerificationTokenType>({\n customer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n // Store only SHA-256 hash of the opaque email verification token. Never store the raw token.\n token_hash: { type: String, required: true },\n expires_at: { type: Date, required: true },\n used_at: { type: Date },\n created_at: { type: Date, default: Date.now },\n updated_at: { type: Date },\n})\n\nemailVerificationTokenSchema.index({ token_hash: 1 }, { unique: true })\nemailVerificationTokenSchema.index({ expires_at: 1 }, { expireAfterSeconds: 0 })\nemailVerificationTokenSchema.index({ customer_id: 1, expires_at: 1 })\n\nconst EmailVerificationToken: EmailVerificationTokenModel =\n (mongoose.models.EmailVerificationToken as EmailVerificationTokenModel) ||\n model<EmailVerificationTokenType>(\n \"EmailVerificationToken\",\n emailVerificationTokenSchema,\n \"email_verification_tokens\"\n )\n\nexport default EmailVerificationToken\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport enum PaymentProvider {\n\tSTRIPE = \"stripe\",\n}\n\nexport enum PaymentMethodType {\n\tCARD = \"card\",\n\tAPPLE_PAY = \"apple_pay\",\n\tGOOGLE_PAY = \"google_pay\",\n\tBANK_TRANSFER = \"bank_transfer\",\n}\n\nexport type PaymentMethodWallet = \"apple_pay\" | \"google_pay\"\n\nexport interface CustomerPaymentMethodDocument {\n\tcustomer_id: Types.ObjectId\n\tprovider: PaymentProvider\n\tprovider_customer_id: string\n\tprovider_payment_method_id: string\n\ttype: PaymentMethodType\n\tbrand: string\n\tlast4: string\n\texp_month: number\n\texp_year: number\n\twallet?: PaymentMethodWallet | null\n\tis_default: boolean\n\tcreated_at: Date\n\tupdated_at?: Date\n\tdeleted_at?: Date\n\tdeleted_by?: Types.ObjectId\n}\n\nconst paymentMethodSchema = new Schema<CustomerPaymentMethodDocument>(\n\t{\n\t\tcustomer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n\t\tprovider: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(PaymentProvider),\n\t\t\tdefault: PaymentProvider.STRIPE,\n\t\t\trequired: true,\n\t\t},\n\t\tprovider_customer_id: { type: String, required: true, trim: true },\n\t\tprovider_payment_method_id: { type: String, required: true, trim: true },\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(PaymentMethodType),\n\t\t\tdefault: PaymentMethodType.CARD,\n\t\t\trequired: true,\n\t\t},\n\t\tbrand: { type: String, required: true },\n\t\tlast4: { type: String, required: true },\n\t\texp_month: { type: Number, required: true, min: 1, max: 12 },\n\t\texp_year: { type: Number, required: true },\n\t\twallet: {\n\t\t\ttype: String,\n\t\t\tenum: [\"apple_pay\", \"google_pay\"],\n\t\t\tdefault: null,\n\t\t},\n\t\tis_default: { type: Boolean, default: false },\n\t\tdeleted_at: { type: Date },\n\t\tdeleted_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\npaymentMethodSchema.index(\n\t{ customer_id: 1 },\n\t{ name: \"payment_methods_customer\" }\n)\n\npaymentMethodSchema.index(\n\t{ customer_id: 1, provider_payment_method_id: 1 },\n\t{ name: \"payment_methods_customer_provider_unique\", unique: true }\n)\n\npaymentMethodSchema.index(\n\t{ customer_id: 1, is_default: 1 },\n\t{ name: \"payment_methods_default_lookup\" }\n)\n\nexport default mongoose.models.CustomerPaymentMethod ||\n\tmodel<CustomerPaymentMethodDocument>(\"CustomerPaymentMethod\", paymentMethodSchema, \"customer_payment_methods\")\n","import mongoose, { Schema, model, Types } from \"mongoose\"\n\nexport enum PaymentProvider {\n\tSTRIPE = \"stripe\",\n}\n\nexport enum TransactionStatus {\n\tPENDING = \"pending\",\n\tPROCESSING = \"processing\",\n\tSUCCEEDED = \"succeeded\",\n\tFAILED = \"failed\",\n\tREFUNDED = \"refunded\",\n}\n\nexport enum TransactionMethod {\n\tCARD = \"card\",\n\tAPPLE_PAY = \"apple_pay\",\n\tGOOGLE_PAY = \"google_pay\",\n\tBANK_TRANSFER = \"bank_transfer\",\n}\n\nexport interface OrderPaymentDocument {\n\torder_id: Types.ObjectId\n\tcustomer_id: Types.ObjectId\n\tpayment_method_id?: Types.ObjectId\n\tprovider: PaymentProvider\n\tprovider_payment_id?: string\n\tprovider_payment_intent_id: string\n\tmethod: TransactionMethod\n\tstatus: TransactionStatus\n\tamount: number\n\tcurrency: string\n\tcreated_at: Date\n\tupdated_at?: Date\n\tdeleted_at?: Date\n\tdeleted_by?: Types.ObjectId\n}\n\nconst orderPaymentSchema = new Schema<OrderPaymentDocument>(\n\t{\n\t\torder_id: { type: Schema.Types.ObjectId, ref: \"Order\", required: true },\n\t\tcustomer_id: { type: Schema.Types.ObjectId, ref: \"Customer\", required: true },\n\t\tpayment_method_id: { type: Schema.Types.ObjectId, ref: \"ClientPaymentMethod\" },\n\t\tprovider: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(PaymentProvider),\n\t\t\tdefault: PaymentProvider.STRIPE,\n\t\t\trequired: true,\n\t\t},\n\t\tprovider_payment_id: { type: String },\n\t\tprovider_payment_intent_id: { type: String, required: true },\n\t\tmethod: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(TransactionMethod),\n\t\t\trequired: true,\n\t\t},\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tenum: Object.values(TransactionStatus),\n\t\t\tdefault: TransactionStatus.PENDING,\n\t\t\trequired: true,\n\t\t},\n\t\tamount: { type: Number, required: true, min: 0 },\n\t\tcurrency: { type: String, required: true, default: \"MXN\" },\n\t\tdeleted_at: { type: Date },\n\t\tdeleted_by: { type: Schema.Types.ObjectId, ref: \"User\" },\n\t},\n\t{ timestamps: { createdAt: \"created_at\", updatedAt: \"updated_at\" } }\n)\n\norderPaymentSchema.index(\n\t{ order_id: 1 },\n\t{ name: \"order_payments_order\" }\n)\n\norderPaymentSchema.index(\n\t{ customer_id: 1, created_at: -1 },\n\t{ name: \"order_payments_customer_created\" }\n)\n\norderPaymentSchema.index(\n\t{ provider_payment_intent_id: 1 },\n\t{\n\t\tname: \"order_payments_provider_intent_unique\",\n\t\tunique: true,\n\t\tsparse: true\n\t}\n)\n\norderPaymentSchema.index(\n\t{ provider_payment_id: 1 },\n\t{ name: \"order_payments_provider_payment_id\" }\n)\n\nexport default mongoose.models.OrderPayment ||\n\tmodel<OrderPaymentDocument>(\"OrderPayment\", orderPaymentSchema, \"order_payments\")\n"],"mappings":"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","names":["mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","QuoteStatus","Status","CreatedMethod","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","CustomerStatus","bcrypt","mongoose","import_mongoose","mongoose","import_mongoose","OrderStatus","PaymentMethod","PaymentStatus","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","SyncLogType","SyncLogStatus","SyncLogAction","mongoose","import_mongoose","import_mongoose","import_bcryptjs","UserRole","UserStatus","bcrypt","mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","mongoose","import_mongoose","PaymentProvider","PaymentMethodType","mongoose","import_mongoose","PaymentProvider","TransactionStatus","TransactionMethod","mongoose"]}
package/dist/index.d.cts CHANGED
@@ -15,7 +15,7 @@ interface ClientType {
15
15
  created_at?: Date;
16
16
  updated_at?: Date;
17
17
  }
18
- declare const _default$s: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientType, {}, {}, {}, mongoose.Document<unknown, {}, ClientType, {}, mongoose.DefaultSchemaOptions> & ClientType & {
18
+ declare const _default$t: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientType, {}, {}, {}, mongoose.Document<unknown, {}, ClientType, {}, mongoose.DefaultSchemaOptions> & ClientType & {
19
19
  _id: mongoose.Types.ObjectId;
20
20
  } & {
21
21
  __v: number;
@@ -34,7 +34,7 @@ interface ClientContactType {
34
34
  created_at?: Date;
35
35
  updated_at?: Date;
36
36
  }
37
- declare const _default$r: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientContactType, {}, {}, {}, mongoose.Document<unknown, {}, ClientContactType, {}, mongoose.DefaultSchemaOptions> & ClientContactType & {
37
+ declare const _default$s: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientContactType, {}, {}, {}, mongoose.Document<unknown, {}, ClientContactType, {}, mongoose.DefaultSchemaOptions> & ClientContactType & {
38
38
  _id: Types.ObjectId;
39
39
  } & {
40
40
  __v: number;
@@ -54,7 +54,7 @@ interface ClientAddressType {
54
54
  created_at?: Date;
55
55
  updated_at?: Date;
56
56
  }
57
- declare const _default$q: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientAddressType, {}, {}, {}, mongoose.Document<unknown, {}, ClientAddressType, {}, mongoose.DefaultSchemaOptions> & ClientAddressType & {
57
+ declare const _default$r: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientAddressType, {}, {}, {}, mongoose.Document<unknown, {}, ClientAddressType, {}, mongoose.DefaultSchemaOptions> & ClientAddressType & {
58
58
  _id: Types.ObjectId;
59
59
  } & {
60
60
  __v: number;
@@ -69,7 +69,7 @@ interface ClientPaymentMethodType {
69
69
  created_at?: Date;
70
70
  updated_at?: Date;
71
71
  }
72
- declare const _default$p: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientPaymentMethodType, {}, {}, {}, mongoose.Document<unknown, {}, ClientPaymentMethodType, {}, mongoose.DefaultSchemaOptions> & ClientPaymentMethodType & {
72
+ declare const _default$q: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientPaymentMethodType, {}, {}, {}, mongoose.Document<unknown, {}, ClientPaymentMethodType, {}, mongoose.DefaultSchemaOptions> & ClientPaymentMethodType & {
73
73
  _id: Types.ObjectId;
74
74
  } & {
75
75
  __v: number;
@@ -84,7 +84,7 @@ interface ClientPaymentTermType {
84
84
  created_at?: Date;
85
85
  updated_at?: Date;
86
86
  }
87
- declare const _default$o: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientPaymentTermType, {}, {}, {}, mongoose.Document<unknown, {}, ClientPaymentTermType, {}, mongoose.DefaultSchemaOptions> & ClientPaymentTermType & {
87
+ declare const _default$p: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientPaymentTermType, {}, {}, {}, mongoose.Document<unknown, {}, ClientPaymentTermType, {}, mongoose.DefaultSchemaOptions> & ClientPaymentTermType & {
88
88
  _id: Types.ObjectId;
89
89
  } & {
90
90
  __v: number;
@@ -99,7 +99,7 @@ interface ClientPriceListType {
99
99
  created_at?: Date;
100
100
  updated_at?: Date;
101
101
  }
102
- declare const _default$n: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientPriceListType, {}, {}, {}, mongoose.Document<unknown, {}, ClientPriceListType, {}, mongoose.DefaultSchemaOptions> & ClientPriceListType & {
102
+ declare const _default$o: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientPriceListType, {}, {}, {}, mongoose.Document<unknown, {}, ClientPriceListType, {}, mongoose.DefaultSchemaOptions> & ClientPriceListType & {
103
103
  _id: Types.ObjectId;
104
104
  } & {
105
105
  __v: number;
@@ -114,7 +114,7 @@ interface ClientSalesEmployeeType {
114
114
  created_at?: Date;
115
115
  updated_at?: Date;
116
116
  }
117
- declare const _default$m: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientSalesEmployeeType, {}, {}, {}, mongoose.Document<unknown, {}, ClientSalesEmployeeType, {}, mongoose.DefaultSchemaOptions> & ClientSalesEmployeeType & {
117
+ declare const _default$n: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<ClientSalesEmployeeType, {}, {}, {}, mongoose.Document<unknown, {}, ClientSalesEmployeeType, {}, mongoose.DefaultSchemaOptions> & ClientSalesEmployeeType & {
118
118
  _id: Types.ObjectId;
119
119
  } & {
120
120
  __v: number;
@@ -122,7 +122,7 @@ declare const _default$m: mongoose.Model<any, {}, {}, {}, any, any, any> | mongo
122
122
  id: string;
123
123
  }, any, ClientSalesEmployeeType>;
124
124
 
125
- declare const _default$l: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
125
+ declare const _default$m: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
126
126
  created_at: NativeDate;
127
127
  description: string;
128
128
  article_number: string;
@@ -1062,7 +1062,7 @@ declare const _default$l: mongoose.Model<any, {}, {}, {}, any, any, any> | mongo
1062
1062
  __v: number;
1063
1063
  }>;
1064
1064
 
1065
- declare const _default$k: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1065
+ declare const _default$l: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1066
1066
  name: string;
1067
1067
  description?: string;
1068
1068
  }, {}, {}, {
@@ -1132,7 +1132,7 @@ declare const _default$k: mongoose.Model<any, {}, {}, {}, any, any, any> | mongo
1132
1132
  __v: number;
1133
1133
  }>;
1134
1134
 
1135
- declare const _default$j: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1135
+ declare const _default$k: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1136
1136
  name: string;
1137
1137
  description?: string;
1138
1138
  }, {}, {}, {
@@ -1202,7 +1202,7 @@ declare const _default$j: mongoose.Model<any, {}, {}, {}, any, any, any> | mongo
1202
1202
  __v: number;
1203
1203
  }>;
1204
1204
 
1205
- declare const _default$i: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1205
+ declare const _default$j: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1206
1206
  created_at: NativeDate;
1207
1207
  article_id: Types.ObjectId;
1208
1208
  price_list_id: Types.ObjectId;
@@ -1332,7 +1332,7 @@ declare const _default$i: mongoose.Model<any, {}, {}, {}, any, any, any> | mongo
1332
1332
  __v: number;
1333
1333
  }>;
1334
1334
 
1335
- declare const _default$h: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1335
+ declare const _default$i: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1336
1336
  symbol: string;
1337
1337
  name: string;
1338
1338
  code: string;
@@ -1412,7 +1412,7 @@ declare const _default$h: mongoose.Model<any, {}, {}, {}, any, any, any> | mongo
1412
1412
  __v: number;
1413
1413
  }>;
1414
1414
 
1415
- declare const _default$g: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1415
+ declare const _default$h: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1416
1416
  created_at: NativeDate;
1417
1417
  name: string;
1418
1418
  code: string;
@@ -1512,7 +1512,7 @@ declare const _default$g: mongoose.Model<any, {}, {}, {}, any, any, any> | mongo
1512
1512
  __v: number;
1513
1513
  }>;
1514
1514
 
1515
- declare const _default$f: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1515
+ declare const _default$g: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1516
1516
  updated_at: NativeDate;
1517
1517
  article_id: Types.ObjectId;
1518
1518
  warehouse_id: Types.ObjectId;
@@ -1632,7 +1632,7 @@ declare const _default$f: mongoose.Model<any, {}, {}, {}, any, any, any> | mongo
1632
1632
  __v: number;
1633
1633
  }>;
1634
1634
 
1635
- declare const _default$e: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1635
+ declare const _default$f: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1636
1636
  number: string;
1637
1637
  created_at: NativeDate;
1638
1638
  name: string;
@@ -1722,7 +1722,7 @@ declare const _default$e: mongoose.Model<any, {}, {}, {}, any, any, any> | mongo
1722
1722
  __v: number;
1723
1723
  }>;
1724
1724
 
1725
- declare const _default$d: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1725
+ declare const _default$e: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1726
1726
  created_at: NativeDate;
1727
1727
  updated_at: NativeDate;
1728
1728
  name: string;
@@ -1842,7 +1842,7 @@ declare const _default$d: mongoose.Model<any, {}, {}, {}, any, any, any> | mongo
1842
1842
  __v: number;
1843
1843
  }>;
1844
1844
 
1845
- declare const _default$c: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1845
+ declare const _default$d: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1846
1846
  created_at: NativeDate;
1847
1847
  updated_at: NativeDate;
1848
1848
  type: "filter" | "sidebar";
@@ -1975,13 +1975,13 @@ declare enum CreatedMethod {
1975
1975
  MANUAL = "MANUAL",
1976
1976
  CSV = "CSV"
1977
1977
  }
1978
+ declare const _default$c: mongoose.Model<any, {}, {}, {}, any, any, any>;
1979
+
1978
1980
  declare const _default$b: mongoose.Model<any, {}, {}, {}, any, any, any>;
1979
1981
 
1980
1982
  declare const _default$a: mongoose.Model<any, {}, {}, {}, any, any, any>;
1981
1983
 
1982
- declare const _default$9: mongoose.Model<any, {}, {}, {}, any, any, any>;
1983
-
1984
- declare const _default$8: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1984
+ declare const _default$9: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<{
1985
1985
  created_at: NativeDate;
1986
1986
  quote_id: mongoose.Types.ObjectId;
1987
1987
  email?: string;
@@ -2091,7 +2091,7 @@ declare const _default$8: mongoose.Model<any, {}, {}, {}, any, any, any> | mongo
2091
2091
  __v: number;
2092
2092
  }>;
2093
2093
 
2094
- declare const _default$7: mongoose.Model<any, {}, {}, {}, any, any, any>;
2094
+ declare const _default$8: mongoose.Model<any, {}, {}, {}, any, any, any>;
2095
2095
 
2096
2096
  declare enum CustomerStatus {
2097
2097
  ACTIVE = "active",
@@ -2145,7 +2145,7 @@ declare enum PaymentStatus {
2145
2145
  PAID = "PAID",
2146
2146
  REFUNDED = "REFUNDED"
2147
2147
  }
2148
- declare const _default$6: mongoose.Model<any, {}, {}, {}, any, any, any>;
2148
+ declare const _default$7: mongoose.Model<any, {}, {}, {}, any, any, any>;
2149
2149
 
2150
2150
  interface OrderStatusLogType {
2151
2151
  order_id: Types.ObjectId;
@@ -2154,7 +2154,7 @@ interface OrderStatusLogType {
2154
2154
  changed_at?: Date;
2155
2155
  note?: string;
2156
2156
  }
2157
- declare const _default$5: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<OrderStatusLogType, {}, {}, {}, mongoose.Document<unknown, {}, OrderStatusLogType, {}, mongoose.DefaultSchemaOptions> & OrderStatusLogType & {
2157
+ declare const _default$6: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<OrderStatusLogType, {}, {}, {}, mongoose.Document<unknown, {}, OrderStatusLogType, {}, mongoose.DefaultSchemaOptions> & OrderStatusLogType & {
2158
2158
  _id: Types.ObjectId;
2159
2159
  } & {
2160
2160
  __v: number;
@@ -2162,6 +2162,23 @@ declare const _default$5: mongoose.Model<any, {}, {}, {}, any, any, any> | mongo
2162
2162
  id: string;
2163
2163
  }, any, OrderStatusLogType>;
2164
2164
 
2165
+ interface StateType {
2166
+ _id?: mongoose.Types.ObjectId;
2167
+ name: string;
2168
+ code?: string;
2169
+ percentage: number;
2170
+ is_active: boolean;
2171
+ created_at?: Date;
2172
+ updated_at?: Date;
2173
+ }
2174
+ declare const _default$5: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoose.Model<StateType, {}, {}, {}, mongoose.Document<unknown, {}, StateType, {}, mongoose.DefaultSchemaOptions> & StateType & Required<{
2175
+ _id: mongoose.Types.ObjectId;
2176
+ }> & {
2177
+ __v: number;
2178
+ } & {
2179
+ id: string;
2180
+ }, any, StateType>;
2181
+
2165
2182
  /**
2166
2183
  * Sync Log Types
2167
2184
  */
@@ -2405,4 +2422,4 @@ declare const _default: mongoose.Model<any, {}, {}, {}, any, any, any> | mongoos
2405
2422
  id: string;
2406
2423
  }, any, OrderPaymentDocument>;
2407
2424
 
2408
- export { _default$3 as Announcement, type AnnouncementType, _default$l as Article, _default$j as ArticleClass, _default$k as ArticleGroup, _default$i as ArticlePrice, ArticleView, _default$2 as Cart, type CartItem, type CartType, _default$d as Category, _default$s as Client, _default$q as ClientAddress, type ClientAddressType, _default$r as ClientContact, type ClientContactType, _default$p as ClientPaymentMethod, type ClientPaymentMethodType, _default$o as ClientPaymentTerm, type ClientPaymentTermType, _default$n as ClientPriceList, type ClientPriceListType, _default$m as ClientSalesEmployee, type ClientSalesEmployeeType, type ClientType, CreatedMethod, _default$h as Currency, Customer, type CustomerDoc, type CustomerModel, _default$1 as CustomerPaymentMethod, CustomerStatus, type CustomerType, EmailVerificationToken, type EmailVerificationTokenDoc, type EmailVerificationTokenModel, type EmailVerificationTokenType, FiscalProfile, type FiscalProfileDoc, type FiscalProfileModel, type FiscalProfileType, type ISyncLog, _default$f as InventoryStock, _default$6 as Order, _default as OrderPayment, OrderStatus, _default$5 as OrderStatusLog, type OrderStatusLogType, PasswordResetToken, type PasswordResetTokenDoc, type PasswordResetTokenModel, type PasswordResetTokenType, PaymentMethod, PaymentMethodType, type PaymentMethodWallet, PaymentProvider$1 as PaymentProvider, PaymentStatus, _default$e as PriceList, _default$b as Quote, _default$a as QuoteArticle, _default$9 as QuoteArticleExtra, _default$8 as QuoteContact, QuoteStatus, _default$7 as QuoteTerm, RefreshToken, type RefreshTokenDoc, type RefreshTokenModel, type RefreshTokenType, Status, SyncLog, SyncLogAction, SyncLogStatus, SyncLogType, _default$c as Tag, TransactionMethod, TransactionStatus, UserRole, UserStatus, type UserType, _default$4 as Users, _default$g as Warehouse };
2425
+ export { _default$3 as Announcement, type AnnouncementType, _default$m as Article, _default$k as ArticleClass, _default$l as ArticleGroup, _default$j as ArticlePrice, ArticleView, _default$2 as Cart, type CartItem, type CartType, _default$e as Category, _default$t as Client, _default$r as ClientAddress, type ClientAddressType, _default$s as ClientContact, type ClientContactType, _default$q as ClientPaymentMethod, type ClientPaymentMethodType, _default$p as ClientPaymentTerm, type ClientPaymentTermType, _default$o as ClientPriceList, type ClientPriceListType, _default$n as ClientSalesEmployee, type ClientSalesEmployeeType, type ClientType, CreatedMethod, _default$i as Currency, Customer, type CustomerDoc, type CustomerModel, _default$1 as CustomerPaymentMethod, CustomerStatus, type CustomerType, EmailVerificationToken, type EmailVerificationTokenDoc, type EmailVerificationTokenModel, type EmailVerificationTokenType, FiscalProfile, type FiscalProfileDoc, type FiscalProfileModel, type FiscalProfileType, type ISyncLog, _default$g as InventoryStock, _default$7 as Order, _default as OrderPayment, OrderStatus, _default$6 as OrderStatusLog, type OrderStatusLogType, PasswordResetToken, type PasswordResetTokenDoc, type PasswordResetTokenModel, type PasswordResetTokenType, PaymentMethod, PaymentMethodType, type PaymentMethodWallet, PaymentProvider$1 as PaymentProvider, PaymentStatus, _default$f as PriceList, _default$c as Quote, _default$b as QuoteArticle, _default$a as QuoteArticleExtra, _default$9 as QuoteContact, QuoteStatus, _default$8 as QuoteTerm, RefreshToken, type RefreshTokenDoc, type RefreshTokenModel, type RefreshTokenType, _default$5 as State, type StateType, Status, SyncLog, SyncLogAction, SyncLogStatus, SyncLogType, _default$d as Tag, TransactionMethod, TransactionStatus, UserRole, UserStatus, type UserType, _default$4 as Users, _default$h as Warehouse };