@fesmex/models 0.1.15 → 0.1.20

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.
Files changed (81) hide show
  1. package/dist/index.cjs +757 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +262 -0
  4. package/dist/index.d.ts +262 -8
  5. package/dist/index.js +684 -22
  6. package/dist/index.js.map +1 -0
  7. package/package.json +19 -10
  8. package/dist/announcements/index.d.ts +0 -2
  9. package/dist/announcements/index.js +0 -8
  10. package/dist/announcements/models/Announcements.d.ts +0 -15
  11. package/dist/announcements/models/Announcements.js +0 -45
  12. package/dist/carts/index.d.ts +0 -1
  13. package/dist/carts/index.js +0 -8
  14. package/dist/carts/models/Carts.d.ts +0 -12
  15. package/dist/carts/models/Carts.js +0 -18
  16. package/dist/clients/index.d.ts +0 -14
  17. package/dist/clients/index.js +0 -20
  18. package/dist/clients/models/Clients.d.ts +0 -17
  19. package/dist/clients/models/Clients.js +0 -17
  20. package/dist/clients/models/ClientsAddress.d.ts +0 -15
  21. package/dist/clients/models/ClientsAddress.js +0 -19
  22. package/dist/clients/models/ClientsContact.d.ts +0 -14
  23. package/dist/clients/models/ClientsContact.js +0 -18
  24. package/dist/clients/models/ClientsPaymentMethod.d.ts +0 -10
  25. package/dist/clients/models/ClientsPaymentMethod.js +0 -14
  26. package/dist/clients/models/ClientsPaymentTerm.d.ts +0 -10
  27. package/dist/clients/models/ClientsPaymentTerm.js +0 -14
  28. package/dist/clients/models/ClientsPriceList.d.ts +0 -10
  29. package/dist/clients/models/ClientsPriceList.js +0 -14
  30. package/dist/clients/models/ClientsSalesEmployee.d.ts +0 -10
  31. package/dist/clients/models/ClientsSalesEmployee.js +0 -14
  32. package/dist/customers/index.d.ts +0 -4
  33. package/dist/customers/index.js +0 -10
  34. package/dist/customers/models/Customers.d.ts +0 -20
  35. package/dist/customers/models/Customers.js +0 -38
  36. package/dist/customers/models/FiscalProfileType.d.ts +0 -13
  37. package/dist/customers/models/FiscalProfileType.js +0 -14
  38. package/dist/inventory/index.d.ts +0 -8
  39. package/dist/inventory/index.js +0 -22
  40. package/dist/inventory/models/Article.d.ts +0 -2
  41. package/dist/inventory/models/Article.js +0 -14
  42. package/dist/inventory/models/ArticleClasses.d.ts +0 -2
  43. package/dist/inventory/models/ArticleClasses.js +0 -8
  44. package/dist/inventory/models/ArticleGroups.d.ts +0 -2
  45. package/dist/inventory/models/ArticleGroups.js +0 -8
  46. package/dist/inventory/models/ArticlePrices.d.ts +0 -2
  47. package/dist/inventory/models/ArticlePrices.js +0 -14
  48. package/dist/inventory/models/Currencies.d.ts +0 -2
  49. package/dist/inventory/models/Currencies.js +0 -9
  50. package/dist/inventory/models/InventoryStocks.d.ts +0 -2
  51. package/dist/inventory/models/InventoryStocks.js +0 -12
  52. package/dist/inventory/models/PriceLists.d.ts +0 -2
  53. package/dist/inventory/models/PriceLists.js +0 -10
  54. package/dist/inventory/models/Warehouses.d.ts +0 -2
  55. package/dist/inventory/models/Warehouses.js +0 -11
  56. package/dist/orders/index.d.ts +0 -4
  57. package/dist/orders/index.js +0 -12
  58. package/dist/orders/models/OrderStatusLogs.d.ts +0 -11
  59. package/dist/orders/models/OrderStatusLogs.js +0 -29
  60. package/dist/orders/models/Orders.d.ts +0 -9
  61. package/dist/orders/models/Orders.js +0 -33
  62. package/dist/quotes/index.d.ts +0 -5
  63. package/dist/quotes/index.js +0 -19
  64. package/dist/quotes/models/Quote.d.ts +0 -18
  65. package/dist/quotes/models/Quote.js +0 -63
  66. package/dist/quotes/models/QuoteArticle.d.ts +0 -2
  67. package/dist/quotes/models/QuoteArticle.js +0 -19
  68. package/dist/quotes/models/QuoteArticleExtra.d.ts +0 -2
  69. package/dist/quotes/models/QuoteArticleExtra.js +0 -16
  70. package/dist/quotes/models/QuoteContact.d.ts +0 -2
  71. package/dist/quotes/models/QuoteContact.js +0 -12
  72. package/dist/quotes/models/QuoteTerm.d.ts +0 -2
  73. package/dist/quotes/models/QuoteTerm.js +0 -12
  74. package/dist/sap/index.d.ts +0 -2
  75. package/dist/sap/index.js +0 -8
  76. package/dist/sap/models/SyncLog.d.ts +0 -41
  77. package/dist/sap/models/SyncLog.js +0 -70
  78. package/dist/users/index.d.ts +0 -2
  79. package/dist/users/index.js +0 -10
  80. package/dist/users/models/Users.d.ts +0 -34
  81. package/dist/users/models/Users.js +0 -56
package/dist/index.cjs ADDED
@@ -0,0 +1,757 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/index.ts
30
+ var index_exports = {};
31
+ __export(index_exports, {
32
+ Announcement: () => Announcements_default,
33
+ Article: () => Article_default,
34
+ ArticleClass: () => ArticleClasses_default,
35
+ ArticleGroup: () => ArticleGroups_default,
36
+ ArticlePrice: () => ArticlePrices_default,
37
+ Client: () => Clients_default,
38
+ ClientAddress: () => ClientsAddress_default,
39
+ ClientContact: () => ClientsContact_default,
40
+ ClientPaymentMethod: () => ClientsPaymentMethod_default,
41
+ ClientPaymentTerm: () => ClientsPaymentTerm_default,
42
+ ClientPriceList: () => ClientsPriceList_default,
43
+ ClientSalesEmployee: () => ClientsSalesEmployee_default,
44
+ CreatedMethod: () => CreatedMethod,
45
+ Currency: () => Currencies_default,
46
+ Customer: () => Customers_default,
47
+ FiscalProfile: () => FiscalProfileType_default,
48
+ InventoryStock: () => InventoryStocks_default,
49
+ Order: () => Orders_default,
50
+ OrderStatus: () => OrderStatus,
51
+ OrderStatusLog: () => OrderStatusLogs_default,
52
+ PriceList: () => PriceLists_default,
53
+ Quote: () => Quote_default,
54
+ QuoteArticle: () => QuoteArticle_default,
55
+ QuoteArticleExtra: () => QuoteArticleExtra_default,
56
+ QuoteContact: () => QuoteContact_default,
57
+ QuoteStatus: () => QuoteStatus,
58
+ QuoteTerm: () => QuoteTerm_default,
59
+ Status: () => Status,
60
+ SyncLog: () => SyncLog,
61
+ SyncLogAction: () => SyncLogAction,
62
+ SyncLogStatus: () => SyncLogStatus,
63
+ SyncLogType: () => SyncLogType,
64
+ UserRole: () => UserRole,
65
+ UserStatus: () => UserStatus,
66
+ Users: () => Users_default,
67
+ Warehouse: () => Warehouses_default
68
+ });
69
+ module.exports = __toCommonJS(index_exports);
70
+
71
+ // src/clients/models/Clients.ts
72
+ var import_mongoose = require("mongoose");
73
+ var clientSchema = new import_mongoose.Schema(
74
+ {
75
+ sn_code: { type: String, index: true },
76
+ sn_name: { type: String, required: true },
77
+ tax_id: { type: String },
78
+ currency: { type: String },
79
+ phone_1: { type: String },
80
+ email: { type: String },
81
+ comments: { type: String },
82
+ pipedrive_id: { type: String },
83
+ sap_id: { type: String },
84
+ deleted_at: { type: Date, default: null },
85
+ deleted_by: { type: String, default: null }
86
+ },
87
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
88
+ );
89
+ var Clients_default = import_mongoose.models.Client || (0, import_mongoose.model)("Client", clientSchema, "clients");
90
+
91
+ // src/clients/models/ClientsContact.ts
92
+ var import_mongoose2 = require("mongoose");
93
+ var clientContactSchema = new import_mongoose2.Schema(
94
+ {
95
+ client_id: {
96
+ type: import_mongoose2.Schema.Types.ObjectId,
97
+ ref: "Client",
98
+ required: true,
99
+ index: true
100
+ },
101
+ contact_person_name: { type: String },
102
+ first_name: { type: String },
103
+ last_name: { type: String },
104
+ contact_phone: { type: String },
105
+ contact_email: { type: String },
106
+ pipedrive_id: { type: String }
107
+ },
108
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
109
+ );
110
+ var ClientsContact_default = import_mongoose2.models.ClientContact || (0, import_mongoose2.model)("ClientContact", clientContactSchema, "client_contacts");
111
+
112
+ // src/clients/models/ClientsAddress.ts
113
+ var import_mongoose3 = require("mongoose");
114
+ var clientAddressSchema = new import_mongoose3.Schema(
115
+ {
116
+ client_id: {
117
+ type: import_mongoose3.Schema.Types.ObjectId,
118
+ ref: "Client",
119
+ required: true,
120
+ index: true
121
+ },
122
+ address_name: { type: String },
123
+ street: { type: String },
124
+ neighborhood: { type: String },
125
+ postal_code: { type: String },
126
+ city: { type: String },
127
+ state: { type: String },
128
+ country: { type: String }
129
+ },
130
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
131
+ );
132
+ var ClientsAddress_default = import_mongoose3.models.ClientAddress || (0, import_mongoose3.model)(
133
+ "ClientAddress",
134
+ clientAddressSchema,
135
+ "client_addresses"
136
+ );
137
+
138
+ // src/clients/models/ClientsPaymentMethod.ts
139
+ var import_mongoose4 = require("mongoose");
140
+ var clientPaymentMethodSchema = new import_mongoose4.Schema(
141
+ {
142
+ client_id: {
143
+ type: import_mongoose4.Schema.Types.ObjectId,
144
+ ref: "Client",
145
+ required: true,
146
+ unique: true
147
+ },
148
+ code: { type: String },
149
+ description: { type: String }
150
+ },
151
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
152
+ );
153
+ var ClientsPaymentMethod_default = import_mongoose4.models.ClientPaymentMethod || (0, import_mongoose4.model)(
154
+ "ClientPaymentMethod",
155
+ clientPaymentMethodSchema,
156
+ "client_payment_methods"
157
+ );
158
+
159
+ // src/clients/models/ClientsPaymentTerm.ts
160
+ var import_mongoose5 = require("mongoose");
161
+ var clientPaymentTermSchema = new import_mongoose5.Schema(
162
+ {
163
+ client_id: {
164
+ type: import_mongoose5.Schema.Types.ObjectId,
165
+ ref: "Client",
166
+ required: true,
167
+ unique: true
168
+ },
169
+ code: { type: String },
170
+ name: { type: String }
171
+ },
172
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
173
+ );
174
+ var ClientsPaymentTerm_default = import_mongoose5.models.ClientPaymentTerm || (0, import_mongoose5.model)(
175
+ "ClientPaymentTerm",
176
+ clientPaymentTermSchema,
177
+ "client_payment_terms"
178
+ );
179
+
180
+ // src/clients/models/ClientsPriceList.ts
181
+ var import_mongoose6 = require("mongoose");
182
+ var clientPriceListSchema = new import_mongoose6.Schema(
183
+ {
184
+ client_id: {
185
+ type: import_mongoose6.Schema.Types.ObjectId,
186
+ ref: "Client",
187
+ required: true,
188
+ unique: true
189
+ },
190
+ number: { type: String },
191
+ name: { type: String }
192
+ },
193
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
194
+ );
195
+ var ClientsPriceList_default = import_mongoose6.models.ClientPriceList || (0, import_mongoose6.model)(
196
+ "ClientPriceList",
197
+ clientPriceListSchema,
198
+ "client_price_lists"
199
+ );
200
+
201
+ // src/clients/models/ClientsSalesEmployee.ts
202
+ var import_mongoose7 = require("mongoose");
203
+ var clientSalesEmployeeSchema = new import_mongoose7.Schema(
204
+ {
205
+ client_id: {
206
+ type: import_mongoose7.Schema.Types.ObjectId,
207
+ ref: "Client",
208
+ required: true,
209
+ unique: true
210
+ },
211
+ employee_code: { type: String },
212
+ employee_name: { type: String }
213
+ },
214
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
215
+ );
216
+ var ClientsSalesEmployee_default = import_mongoose7.models.ClientSalesEmployee || (0, import_mongoose7.model)(
217
+ "ClientSalesEmployee",
218
+ clientSalesEmployeeSchema,
219
+ "client_sales_employees"
220
+ );
221
+
222
+ // src/inventory/models/Article.ts
223
+ var import_mongoose8 = require("mongoose");
224
+ var articleSchema = new import_mongoose8.Schema({
225
+ article_number: { type: String, required: true, unique: true },
226
+ // SAP ItemCode
227
+ description: { type: String, required: true },
228
+ unit: { type: String, required: true },
229
+ brand: { type: String },
230
+ model: { type: String },
231
+ group_id: { type: import_mongoose8.Types.ObjectId, ref: "ArticleGroup", required: true },
232
+ created_at: { type: Date, default: Date.now },
233
+ updated_at: { type: Date }
234
+ });
235
+ var Article_default = import_mongoose8.models.Article || (0, import_mongoose8.model)("Article", articleSchema, "articles");
236
+
237
+ // src/inventory/models/ArticleGroups.ts
238
+ var import_mongoose9 = require("mongoose");
239
+ var articleGroupSchema = new import_mongoose9.Schema({
240
+ name: { type: String, required: true },
241
+ description: { type: String }
242
+ });
243
+ var ArticleGroups_default = import_mongoose9.models.ArticleGroup || (0, import_mongoose9.model)("ArticleGroup", articleGroupSchema, "article_groups");
244
+
245
+ // src/inventory/models/ArticleClasses.ts
246
+ var import_mongoose10 = require("mongoose");
247
+ var articleClassSchema = new import_mongoose10.Schema({
248
+ name: { type: String, required: true },
249
+ description: { type: String }
250
+ });
251
+ var ArticleClasses_default = import_mongoose10.models.ArticleClass || (0, import_mongoose10.model)("ArticleClass", articleClassSchema, "article_classes");
252
+
253
+ // src/inventory/models/ArticlePrices.ts
254
+ var import_mongoose11 = require("mongoose");
255
+ var articlePriceSchema = new import_mongoose11.Schema({
256
+ article_id: { type: import_mongoose11.Types.ObjectId, ref: "Article", required: true },
257
+ price_list_id: { type: import_mongoose11.Types.ObjectId, ref: "PriceList", required: true },
258
+ currency_id: { type: import_mongoose11.Types.ObjectId, ref: "Currency", required: true },
259
+ price: { type: Number, required: true },
260
+ valid_from: { type: Date },
261
+ valid_to: { type: Date },
262
+ created_at: { type: Date, default: Date.now },
263
+ updated_at: { type: Date }
264
+ });
265
+ var ArticlePrices_default = import_mongoose11.models.ArticlePrice || (0, import_mongoose11.model)("ArticlePrice", articlePriceSchema, "article_prices");
266
+
267
+ // src/inventory/models/Currencies.ts
268
+ var import_mongoose12 = require("mongoose");
269
+ var currencySchema = new import_mongoose12.Schema({
270
+ code: { type: String, required: true, unique: true },
271
+ symbol: { type: String, required: true },
272
+ name: { type: String, required: true }
273
+ });
274
+ var Currencies_default = import_mongoose12.models.Currency || (0, import_mongoose12.model)("Currency", currencySchema, "currencies");
275
+
276
+ // src/inventory/models/Warehouses.ts
277
+ var import_mongoose13 = require("mongoose");
278
+ var warehouseSchema = new import_mongoose13.Schema({
279
+ code: { type: String, required: true, unique: true },
280
+ name: { type: String, required: true },
281
+ location: { type: String },
282
+ created_at: { type: Date, default: Date.now },
283
+ updated_at: { type: Date }
284
+ });
285
+ var Warehouses_default = import_mongoose13.models.Warehouse || (0, import_mongoose13.model)("Warehouse", warehouseSchema, "warehouses");
286
+
287
+ // src/inventory/models/InventoryStocks.ts
288
+ var import_mongoose14 = require("mongoose");
289
+ var inventoryStockSchema = new import_mongoose14.Schema({
290
+ article_id: { type: import_mongoose14.Types.ObjectId, ref: "Article", required: true },
291
+ warehouse_id: { type: import_mongoose14.Types.ObjectId, ref: "Warehouse", required: true },
292
+ count: { type: Number, required: true },
293
+ min_stock: { type: Number },
294
+ max_stock: { type: Number },
295
+ updated_at: { type: Date, default: Date.now }
296
+ });
297
+ var InventoryStocks_default = import_mongoose14.models.InventoryStock || (0, import_mongoose14.model)("InventoryStock", inventoryStockSchema, "inventory_stocks");
298
+
299
+ // src/inventory/models/PriceLists.ts
300
+ var import_mongoose15 = require("mongoose");
301
+ var priceListSchema = new import_mongoose15.Schema({
302
+ number: { type: String, required: true, unique: true },
303
+ name: { type: String, required: true },
304
+ created_at: { type: Date, default: Date.now },
305
+ updated_at: { type: Date }
306
+ });
307
+ var PriceLists_default = import_mongoose15.models.PriceList || (0, import_mongoose15.model)("PriceList", priceListSchema, "price_lists");
308
+
309
+ // src/quotes/models/Quote.ts
310
+ var import_mongoose16 = require("mongoose");
311
+ var QuoteStatus = /* @__PURE__ */ ((QuoteStatus2) => {
312
+ QuoteStatus2["OPPORTUNITY"] = "OPPORTUNITY";
313
+ QuoteStatus2["QUOTE"] = "QUOTE";
314
+ QuoteStatus2["FOLLOWING"] = "FOLLOWING";
315
+ QuoteStatus2["NEGOTIATION"] = "NEGOTIATION";
316
+ return QuoteStatus2;
317
+ })(QuoteStatus || {});
318
+ var Status = /* @__PURE__ */ ((Status2) => {
319
+ Status2["OPEN"] = "OPEN";
320
+ Status2["WIN"] = "WIN";
321
+ Status2["LOST"] = "LOST";
322
+ Status2["DELETE"] = "DELETE";
323
+ return Status2;
324
+ })(Status || {});
325
+ var CreatedMethod = /* @__PURE__ */ ((CreatedMethod2) => {
326
+ CreatedMethod2["MANUAL"] = "MANUAL";
327
+ CreatedMethod2["CSV"] = "CSV";
328
+ return CreatedMethod2;
329
+ })(CreatedMethod || {});
330
+ var quoteSchema = new import_mongoose16.Schema(
331
+ {
332
+ quote_number: { type: Number, required: true },
333
+ quote_revision: { type: Number, default: 0 },
334
+ quote_ref: { type: String },
335
+ company: { type: String },
336
+ company_id: { type: import_mongoose16.Schema.Types.ObjectId, ref: "Client", required: true },
337
+ company_pipedrive_id: { type: String },
338
+ contact_id: { type: import_mongoose16.Schema.Types.ObjectId, ref: "ClientContact" },
339
+ project_name: { type: String },
340
+ project_lab: { type: String },
341
+ payment_condition: { type: String },
342
+ payment_exp: { type: String },
343
+ terms_ids: [{ type: import_mongoose16.Schema.Types.ObjectId, ref: "QuoteTerm" }],
344
+ currency_id: { type: import_mongoose16.Schema.Types.ObjectId, ref: "Currency" },
345
+ iva: { type: String },
346
+ date: { type: Date },
347
+ status: { type: String, enum: Object.values(Status), default: "OPEN" /* OPEN */ },
348
+ quote_status: {
349
+ type: String,
350
+ enum: Object.values(QuoteStatus),
351
+ default: "OPPORTUNITY" /* OPPORTUNITY */
352
+ },
353
+ sap_id: { type: String },
354
+ sap_quotation_entry: { type: Number },
355
+ sap_order_entry: { type: Number },
356
+ pipedrive_id: { type: String },
357
+ should_sync: { type: Boolean, default: false },
358
+ pdf_download_link: { type: String },
359
+ notes: { type: String },
360
+ created_method: {
361
+ type: String,
362
+ enum: Object.values(CreatedMethod),
363
+ default: "MANUAL" /* MANUAL */
364
+ },
365
+ created_by: { type: import_mongoose16.Schema.Types.ObjectId, ref: "User" },
366
+ updated_by: { type: import_mongoose16.Schema.Types.ObjectId, ref: "User" },
367
+ deleted_by: { type: import_mongoose16.Schema.Types.ObjectId, ref: "User" },
368
+ deleted_at: { type: Date }
369
+ },
370
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
371
+ );
372
+ var Quote_default = import_mongoose16.models.Quote || (0, import_mongoose16.model)("Quote", quoteSchema, "quotes");
373
+
374
+ // src/quotes/models/QuoteArticle.ts
375
+ var import_mongoose17 = require("mongoose");
376
+ var quoteArticleSchema = new import_mongoose17.Schema(
377
+ {
378
+ quote_id: { type: import_mongoose17.Schema.Types.ObjectId, ref: "Quote", required: true },
379
+ article_id: { type: import_mongoose17.Schema.Types.ObjectId, ref: "Article" },
380
+ article_number: { type: String },
381
+ description: { type: String },
382
+ delivery: { type: String },
383
+ quantity: { type: Number },
384
+ price: { type: Number },
385
+ unit_price: { type: Number },
386
+ original_price: { type: Number },
387
+ total: { type: Number },
388
+ utility: { type: Number },
389
+ type: { type: String },
390
+ extra_id: { type: import_mongoose17.Schema.Types.ObjectId, ref: "QuoteArticleExtra" }
391
+ },
392
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
393
+ );
394
+ var QuoteArticle_default = import_mongoose17.models.QuoteArticle || (0, import_mongoose17.model)("QuoteArticle", quoteArticleSchema, "quote_articles");
395
+
396
+ // src/quotes/models/QuoteArticleExtra.ts
397
+ var import_mongoose18 = require("mongoose");
398
+ var quoteArticleExtraSchema = new import_mongoose18.Schema(
399
+ {
400
+ quote_article_id: {
401
+ type: import_mongoose18.Schema.Types.ObjectId,
402
+ ref: "QuoteArticle",
403
+ required: true
404
+ },
405
+ multiplier: Number,
406
+ usa_freight: Number,
407
+ usa_expenses: Number,
408
+ duty: Number,
409
+ mex_freight: Number
410
+ },
411
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
412
+ );
413
+ var QuoteArticleExtra_default = import_mongoose18.models.QuoteArticleExtra || (0, import_mongoose18.model)("QuoteArticleExtra", quoteArticleExtraSchema, "quote_article_extras");
414
+
415
+ // src/quotes/models/QuoteContact.ts
416
+ var import_mongoose19 = require("mongoose");
417
+ var quoteContactSchema = new import_mongoose19.Schema({
418
+ quote_id: { type: import_mongoose19.Schema.Types.ObjectId, ref: "Quote", required: true },
419
+ name: String,
420
+ email: String,
421
+ mobile: String,
422
+ pipedrive_id: String,
423
+ created_at: { type: Date, default: Date.now }
424
+ });
425
+ var QuoteContact_default = import_mongoose19.models.QuoteContact || (0, import_mongoose19.model)("QuoteContact", quoteContactSchema, "quote_contacts");
426
+
427
+ // src/quotes/models/QuoteTerm.ts
428
+ var import_mongoose20 = require("mongoose");
429
+ var quoteTermSchema = new import_mongoose20.Schema(
430
+ {
431
+ title: String,
432
+ content: { type: String, required: true },
433
+ category: String,
434
+ is_active: { type: Boolean, default: true },
435
+ created_by: String,
436
+ updated_by: String
437
+ },
438
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" } }
439
+ );
440
+ var QuoteTerm_default = import_mongoose20.models.QuoteTerm || (0, import_mongoose20.model)("QuoteTerm", quoteTermSchema, "quote_terms");
441
+
442
+ // src/customers/models/Customers.ts
443
+ var import_mongoose21 = require("mongoose");
444
+ var import_bcryptjs = __toESM(require("bcryptjs"), 1);
445
+ var CustomerStatus = /* @__PURE__ */ ((CustomerStatus2) => {
446
+ CustomerStatus2["ACTIVE"] = "active";
447
+ CustomerStatus2["INACTIVE"] = "inactive";
448
+ CustomerStatus2["BANNED"] = "banned";
449
+ return CustomerStatus2;
450
+ })(CustomerStatus || {});
451
+ var customerSchema = new import_mongoose21.Schema({
452
+ first_name: { type: String, required: true },
453
+ last_name: { type: String, required: true },
454
+ email: { type: String, required: true, unique: true },
455
+ mobile: { type: String },
456
+ password: { type: String, required: true, select: false },
457
+ status: {
458
+ type: String,
459
+ enum: Object.values(CustomerStatus),
460
+ default: "active" /* ACTIVE */
461
+ },
462
+ fiscal_profile_id: { type: import_mongoose21.Schema.Types.ObjectId, ref: "FiscalProfile" },
463
+ created_at: { type: Date, default: Date.now },
464
+ updated_at: { type: Date },
465
+ deleted_at: { type: Date }
466
+ });
467
+ customerSchema.pre("save", async function(next) {
468
+ if (this.isModified("password")) {
469
+ this.password = await import_bcryptjs.default.hash(this.password, 12);
470
+ }
471
+ next();
472
+ });
473
+ var Customers_default = import_mongoose21.models.Customer || (0, import_mongoose21.model)("Customer", customerSchema, "customers");
474
+
475
+ // src/customers/models/FiscalProfileType.ts
476
+ var import_mongoose22 = require("mongoose");
477
+ var fiscalProfileSchema = new import_mongoose22.Schema({
478
+ customer_id: { type: import_mongoose22.Schema.Types.ObjectId, ref: "Customer", required: true },
479
+ rfc: { type: String, required: true },
480
+ razon_social: { type: String, required: true },
481
+ uso_cfdi: { type: String, required: true },
482
+ regimen_fiscal: { type: String, required: true },
483
+ cp: { type: String, required: true },
484
+ created_at: { type: Date, default: Date.now },
485
+ updated_at: { type: Date }
486
+ });
487
+ var FiscalProfileType_default = import_mongoose22.models.FiscalProfile || (0, import_mongoose22.model)("FiscalProfile", fiscalProfileSchema, "fiscal_profiles");
488
+
489
+ // src/orders/models/Orders.ts
490
+ var import_mongoose23 = require("mongoose");
491
+ var OrderStatus = /* @__PURE__ */ ((OrderStatus2) => {
492
+ OrderStatus2["PENDING"] = "pending";
493
+ OrderStatus2["CONFIRMED"] = "confirmed";
494
+ OrderStatus2["SHIPPED"] = "shipped";
495
+ OrderStatus2["CANCELLED"] = "cancelled";
496
+ OrderStatus2["COMPLETED"] = "completed";
497
+ return OrderStatus2;
498
+ })(OrderStatus || {});
499
+ var orderItemSchema = new import_mongoose23.Schema(
500
+ {
501
+ article_id: { type: import_mongoose23.Schema.Types.ObjectId, ref: "Article", required: true },
502
+ quantity: { type: Number, required: true },
503
+ unit_price: { type: Number, required: true },
504
+ total: { type: Number, required: true }
505
+ },
506
+ { _id: false }
507
+ );
508
+ var orderSchema = new import_mongoose23.Schema({
509
+ customer_id: { type: import_mongoose23.Schema.Types.ObjectId, ref: "Customer", required: true },
510
+ items: [orderItemSchema],
511
+ status: {
512
+ type: String,
513
+ enum: Object.values(OrderStatus),
514
+ default: "pending" /* PENDING */
515
+ },
516
+ tracking_number: { type: String },
517
+ total: { type: Number, required: true },
518
+ notes: { type: String },
519
+ created_at: { type: Date, default: Date.now },
520
+ updated_at: { type: Date }
521
+ });
522
+ var Orders_default = import_mongoose23.models.Order || (0, import_mongoose23.model)("Order", orderSchema, "orders");
523
+
524
+ // src/orders/models/OrderStatusLogs.ts
525
+ var import_mongoose24 = require("mongoose");
526
+ var orderStatusLogSchema = new import_mongoose24.Schema({
527
+ order_id: {
528
+ type: import_mongoose24.Schema.Types.ObjectId,
529
+ ref: "Order",
530
+ required: true
531
+ },
532
+ status: {
533
+ type: String,
534
+ enum: Object.values(OrderStatus),
535
+ required: true
536
+ },
537
+ changed_by: {
538
+ type: import_mongoose24.Schema.Types.ObjectId,
539
+ ref: "User",
540
+ required: true
541
+ },
542
+ changed_at: {
543
+ type: Date,
544
+ default: Date.now
545
+ },
546
+ note: {
547
+ type: String
548
+ }
549
+ });
550
+ var OrderStatusLogs_default = import_mongoose24.models.OrderStatusLog || (0, import_mongoose24.model)("OrderStatusLog", orderStatusLogSchema, "order_status_logs");
551
+
552
+ // src/sap/models/SyncLog.ts
553
+ var import_mongoose25 = require("mongoose");
554
+ var SyncLogType = /* @__PURE__ */ ((SyncLogType2) => {
555
+ SyncLogType2["SAP_QUOTATION"] = "SAP_QUOTATION";
556
+ SyncLogType2["SAP_SALES_ORDER"] = "SAP_SALES_ORDER";
557
+ SyncLogType2["PIPEDRIVE"] = "PIPEDRIVE";
558
+ return SyncLogType2;
559
+ })(SyncLogType || {});
560
+ var SyncLogStatus = /* @__PURE__ */ ((SyncLogStatus2) => {
561
+ SyncLogStatus2["PENDING"] = "PENDING";
562
+ SyncLogStatus2["SUCCESS"] = "SUCCESS";
563
+ SyncLogStatus2["FAILED"] = "FAILED";
564
+ SyncLogStatus2["RETRYING"] = "RETRYING";
565
+ return SyncLogStatus2;
566
+ })(SyncLogStatus || {});
567
+ var SyncLogAction = /* @__PURE__ */ ((SyncLogAction2) => {
568
+ SyncLogAction2["CREATE"] = "CREATE";
569
+ SyncLogAction2["UPDATE"] = "UPDATE";
570
+ SyncLogAction2["DELETE"] = "DELETE";
571
+ return SyncLogAction2;
572
+ })(SyncLogAction || {});
573
+ var syncLogSchema = new import_mongoose25.Schema(
574
+ {
575
+ entity_type: {
576
+ type: String,
577
+ required: true,
578
+ index: true
579
+ },
580
+ entity_id: {
581
+ type: import_mongoose25.Schema.Types.ObjectId,
582
+ required: true,
583
+ index: true
584
+ },
585
+ sync_type: {
586
+ type: String,
587
+ enum: Object.values(SyncLogType),
588
+ required: true,
589
+ index: true
590
+ },
591
+ action: {
592
+ type: String,
593
+ enum: Object.values(SyncLogAction),
594
+ required: true
595
+ },
596
+ status: {
597
+ type: String,
598
+ enum: Object.values(SyncLogStatus),
599
+ default: "PENDING" /* PENDING */,
600
+ index: true
601
+ },
602
+ error_message: { type: String },
603
+ error_code: { type: String },
604
+ error_details: { type: import_mongoose25.Schema.Types.Mixed },
605
+ request_payload: { type: import_mongoose25.Schema.Types.Mixed },
606
+ response_payload: { type: import_mongoose25.Schema.Types.Mixed },
607
+ retry_count: { type: Number, default: 0 },
608
+ max_retries: { type: Number, default: 3 },
609
+ next_retry_at: { type: Date },
610
+ resolved_at: { type: Date },
611
+ resolved_by: { type: import_mongoose25.Schema.Types.ObjectId, ref: "User" }
612
+ },
613
+ {
614
+ timestamps: { createdAt: "created_at", updatedAt: "updated_at" }
615
+ }
616
+ );
617
+ syncLogSchema.index({ entity_type: 1, entity_id: 1, status: 1 });
618
+ syncLogSchema.index({ status: 1, next_retry_at: 1 });
619
+ var SyncLog = import_mongoose25.models.SyncLog || (0, import_mongoose25.model)("SyncLog", syncLogSchema, "sync_logs");
620
+
621
+ // src/announcements/models/Announcements.ts
622
+ var import_mongoose27 = require("mongoose");
623
+
624
+ // src/users/models/Users.ts
625
+ var import_mongoose26 = require("mongoose");
626
+ var import_bcryptjs2 = __toESM(require("bcryptjs"), 1);
627
+ var UserRole = /* @__PURE__ */ ((UserRole2) => {
628
+ UserRole2["ADMIN"] = "admin";
629
+ UserRole2["SALES"] = "sales";
630
+ UserRole2["TECHNICIAN"] = "technician";
631
+ UserRole2["WAREHOUSEMAN"] = "warehouseman";
632
+ return UserRole2;
633
+ })(UserRole || {});
634
+ var UserStatus = /* @__PURE__ */ ((UserStatus2) => {
635
+ UserStatus2["ACTIVE"] = "active";
636
+ UserStatus2["INACTIVE"] = "inactive";
637
+ UserStatus2["SUSPENDED"] = "suspended";
638
+ return UserStatus2;
639
+ })(UserStatus || {});
640
+ var usersSchema = new import_mongoose26.Schema({
641
+ first_name: { type: String, required: true },
642
+ middle_name: { type: String },
643
+ last_name: { type: String, required: true },
644
+ username: { type: String, required: true, unique: true },
645
+ password: { type: String, required: true, select: false },
646
+ role: {
647
+ type: String,
648
+ enum: Object.values(UserRole),
649
+ default: "sales" /* SALES */
650
+ },
651
+ status: {
652
+ type: String,
653
+ enum: Object.values(UserStatus),
654
+ default: "active" /* ACTIVE */
655
+ },
656
+ email: { type: String },
657
+ mobile: { type: String },
658
+ pipedrive_id: { type: String },
659
+ sap_id: { type: String },
660
+ sap_employee_id: { type: String },
661
+ created_at: { type: Date, default: Date.now },
662
+ created_by: { type: import_mongoose26.Schema.Types.Mixed, ref: "User" },
663
+ updated_at: { type: Date },
664
+ updated_by: { type: import_mongoose26.Schema.Types.ObjectId, ref: "User" },
665
+ deleted_at: { type: Date },
666
+ deleted_by: { type: import_mongoose26.Schema.Types.ObjectId, ref: "User" }
667
+ });
668
+ usersSchema.pre("save", async function(next) {
669
+ if (this.isModified("password")) {
670
+ this.password = await import_bcryptjs2.default.hash(this.password, 12);
671
+ }
672
+ next();
673
+ });
674
+ var Users_default = import_mongoose26.models.User || (0, import_mongoose26.model)("User", usersSchema, "users");
675
+
676
+ // src/announcements/models/Announcements.ts
677
+ var announcementSchema = new import_mongoose27.Schema({
678
+ created_by: {
679
+ type: import_mongoose27.Schema.Types.ObjectId,
680
+ ref: "User",
681
+ required: true
682
+ },
683
+ updated_by: {
684
+ type: import_mongoose27.Schema.Types.ObjectId,
685
+ ref: "User"
686
+ },
687
+ deleted_by: {
688
+ type: import_mongoose27.Schema.Types.ObjectId,
689
+ ref: "User"
690
+ },
691
+ created_at: {
692
+ type: Date,
693
+ default: Date.now
694
+ },
695
+ updated_at: Date,
696
+ deleted_at: Date,
697
+ title: {
698
+ type: String,
699
+ required: true,
700
+ trim: true
701
+ },
702
+ text: {
703
+ type: String,
704
+ required: true,
705
+ trim: true
706
+ },
707
+ roles: {
708
+ type: [String],
709
+ enum: Object.values(UserRole),
710
+ required: true,
711
+ validate: {
712
+ validator: (roles) => roles.length > 0,
713
+ message: "At least one user role must be assigned."
714
+ }
715
+ }
716
+ });
717
+ var Announcements_default = import_mongoose27.models.Announcement || (0, import_mongoose27.model)("Announcement", announcementSchema, "announcements");
718
+ // Annotate the CommonJS export names for ESM import in node:
719
+ 0 && (module.exports = {
720
+ Announcement,
721
+ Article,
722
+ ArticleClass,
723
+ ArticleGroup,
724
+ ArticlePrice,
725
+ Client,
726
+ ClientAddress,
727
+ ClientContact,
728
+ ClientPaymentMethod,
729
+ ClientPaymentTerm,
730
+ ClientPriceList,
731
+ ClientSalesEmployee,
732
+ CreatedMethod,
733
+ Currency,
734
+ Customer,
735
+ FiscalProfile,
736
+ InventoryStock,
737
+ Order,
738
+ OrderStatus,
739
+ OrderStatusLog,
740
+ PriceList,
741
+ Quote,
742
+ QuoteArticle,
743
+ QuoteArticleExtra,
744
+ QuoteContact,
745
+ QuoteStatus,
746
+ QuoteTerm,
747
+ Status,
748
+ SyncLog,
749
+ SyncLogAction,
750
+ SyncLogStatus,
751
+ SyncLogType,
752
+ UserRole,
753
+ UserStatus,
754
+ Users,
755
+ Warehouse
756
+ });
757
+ //# sourceMappingURL=index.cjs.map