@fesmex/models 0.1.13 → 0.1.17

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