falconhub-apilibrary 1.4.0-dev.113 → 1.4.0-dev.115

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,3 +1,829 @@
1
+ interface ChangePasswordRequest {
2
+ email: string;
3
+ oldPassword: string;
4
+ newPassword: string;
5
+ }
6
+
7
+ interface ConfirmEmailRequest {
8
+ email: string;
9
+ expiresAt: number;
10
+ }
11
+
12
+ interface GetSecretKeyRequest {
13
+ otpCode?: string;
14
+ }
15
+
16
+ interface GetSecretKeyResponse {
17
+ secretKey: string;
18
+ }
19
+
20
+ interface LoginRequest {
21
+ email: string;
22
+ password: string;
23
+ rememberMe: boolean;
24
+ }
25
+
26
+ interface LoginResponse {
27
+ accessToken: string;
28
+ refreshToken: string;
29
+ expiresIn: string;
30
+ message: string;
31
+ type: string;
32
+ }
33
+
34
+ interface RefreshTokenRequest {
35
+ refreshToken: string;
36
+ rememberMe: boolean;
37
+ }
38
+
39
+ interface RefreshTokenResponse {
40
+ accessToken: string;
41
+ refreshToken: string;
42
+ expiresIn: string;
43
+ message: string;
44
+ type: string;
45
+ }
46
+
47
+ interface SendOtpRequest {
48
+ email: string;
49
+ }
50
+
51
+ interface ValidateOtpRequest {
52
+ email: string;
53
+ otp: string;
54
+ }
55
+
56
+ interface ValidateSessionRenewedResponse {
57
+ accessToken: string;
58
+ refreshToken: string;
59
+ expiresIn: string;
60
+ remainingMinutes: number;
61
+ isRemembered: boolean;
62
+ }
63
+ interface ValidateSessionResponse {
64
+ expiresAt: number;
65
+ remainingMinutes: number;
66
+ isRemembered: boolean;
67
+ }
68
+
69
+ /**
70
+ * Interfaz que representa un género del catálogo.
71
+ */
72
+ interface Gender {
73
+ genderId: number;
74
+ gender: string;
75
+ key: string;
76
+ }
77
+ /**
78
+ * Request para crear o actualizar un género.
79
+ */
80
+ interface GenderRequest {
81
+ gender: string;
82
+ key?: string;
83
+ }
84
+ /**
85
+ * Filtros disponibles para buscar géneros.
86
+ */
87
+ interface GendersFilter {
88
+ /** Búsqueda general */
89
+ Search?: string;
90
+ /** Filtro por nombre del género (búsqueda parcial) */
91
+ Gender?: string;
92
+ }
93
+ interface GenderUserProfile {
94
+ genderId: number;
95
+ gender: string;
96
+ }
97
+
98
+ /**
99
+ * Interfaz que representa un código de área del catálogo.
100
+ */
101
+ interface AreaCode {
102
+ areaCodeId: number;
103
+ countryCode: string;
104
+ iso: string;
105
+ countryName: string;
106
+ isActive: boolean;
107
+ }
108
+ /**
109
+ * Request para crear o actualizar un código de área.
110
+ */
111
+ interface AreaCodeRequest {
112
+ countryCode: string;
113
+ iso: string;
114
+ countryName: string;
115
+ isActive: boolean;
116
+ }
117
+ /**
118
+ * Filtros disponibles para buscar códigos de área.
119
+ */
120
+ interface AreaCodesFilter {
121
+ /** Búsqueda general */
122
+ Search?: string;
123
+ /** Filtro por código de país (búsqueda parcial) */
124
+ CountryCode?: string;
125
+ /** Filtro por ISO (búsqueda parcial) */
126
+ ISO?: string;
127
+ /** Filtro por nombre de país (búsqueda parcial) */
128
+ CountryName?: string;
129
+ /** Filtro por estado activo/inactivo */
130
+ IsActive?: boolean;
131
+ }
132
+ interface AreaCodeUserProfile {
133
+ areaCodeId: number;
134
+ countryCode: string;
135
+ country: string;
136
+ }
137
+
138
+ interface Location {
139
+ locationId: number;
140
+ locationName: string;
141
+ address1: string;
142
+ address2: string;
143
+ city: string;
144
+ state: string;
145
+ country: string;
146
+ postalCode: string;
147
+ contactName: string;
148
+ areaCodeId: number;
149
+ contactPhone: string;
150
+ contactEmail: string;
151
+ isActive: boolean;
152
+ isPhysical: boolean;
153
+ parentLocationId: number | null;
154
+ url: string;
155
+ apiKey: string;
156
+ }
157
+ interface LocationsRequest {
158
+ locationName: string;
159
+ address1: string;
160
+ address2?: string;
161
+ city: string;
162
+ state: string;
163
+ country: string;
164
+ postalCode: string;
165
+ contactName: string;
166
+ areaCodeId: number;
167
+ contactPhone: string;
168
+ contactEmail: string;
169
+ isActive?: boolean;
170
+ isPhysical: boolean;
171
+ parentLocationId?: number;
172
+ /** URL requerida cuando isPhysical = true */
173
+ url?: string;
174
+ /** ApiKey requerida cuando isPhysical = true. Se almacena cifrada (AES-256) en el servidor. */
175
+ apiKey?: string;
176
+ }
177
+ interface LocationsFilter {
178
+ Search?: string;
179
+ LocationName?: string;
180
+ City?: string;
181
+ State?: string;
182
+ Country?: string;
183
+ IsActive?: boolean;
184
+ }
185
+
186
+ interface InventoryStatus {
187
+ inventoryStatusId: number;
188
+ inventoryStatus: string;
189
+ key: string;
190
+ description: string;
191
+ }
192
+ interface InventoryStatusRequest {
193
+ inventoryStatus: string;
194
+ key?: string;
195
+ description: string;
196
+ }
197
+ interface InventoryStatusesFilter {
198
+ Search?: string;
199
+ InventoryStatus?: string;
200
+ Description?: string;
201
+ }
202
+
203
+ /**
204
+ * Interfaz que representa un empaque del inventario.
205
+ */
206
+ interface Packing {
207
+ packingId: number;
208
+ packing: string;
209
+ key: string;
210
+ materialId: number;
211
+ length: number;
212
+ width: number;
213
+ height: number;
214
+ weightLimit: number | null;
215
+ cost: number;
216
+ providerId: number;
217
+ isActive: boolean;
218
+ }
219
+ /**
220
+ * Request para crear o actualizar un empaque.
221
+ */
222
+ interface PackingRequest {
223
+ packing: string;
224
+ key?: string;
225
+ materialId: number;
226
+ length: number;
227
+ width: number;
228
+ height: number;
229
+ weightLimit?: number;
230
+ cost: number;
231
+ providerId: number;
232
+ isActive: boolean;
233
+ }
234
+ /**
235
+ * Filtros disponibles para buscar empaques.
236
+ */
237
+ interface PackingsFilter {
238
+ Search?: string;
239
+ Packing?: string;
240
+ MaterialId?: number;
241
+ ProviderId?: number;
242
+ IsActive?: boolean;
243
+ }
244
+
245
+ /**
246
+ * Interfaz que representa un material del inventario.
247
+ */
248
+ interface Material {
249
+ materialId: number;
250
+ material: string;
251
+ key: string;
252
+ description: string;
253
+ isRecyclable: boolean;
254
+ isFragile: boolean;
255
+ }
256
+ /**
257
+ * Request para crear o actualizar un material.
258
+ */
259
+ interface MaterialRequest {
260
+ material: string;
261
+ description: string;
262
+ key?: string;
263
+ isRecyclable: boolean;
264
+ isFragile: boolean;
265
+ }
266
+ /**
267
+ * Filtros disponibles para buscar materiales.
268
+ */
269
+ interface MaterialsFilter {
270
+ Search?: string;
271
+ Material?: string;
272
+ Description?: string;
273
+ IsRecyclable?: boolean;
274
+ IsFragile?: boolean;
275
+ }
276
+
277
+ /**
278
+ * Interfaz que representa un proveedor del inventario.
279
+ */
280
+ interface Provider {
281
+ providerId: number;
282
+ provider: string;
283
+ contactName: string;
284
+ areaCodeId: number;
285
+ contactNumber: string;
286
+ contactEmail: string;
287
+ isActive: boolean;
288
+ }
289
+ /**
290
+ * Request para crear o actualizar un proveedor.
291
+ */
292
+ interface ProviderRequest {
293
+ provider: string;
294
+ contactName: string;
295
+ areaCodeId: number;
296
+ contactNumber: string;
297
+ contactEmail: string;
298
+ isActive: boolean;
299
+ }
300
+ /**
301
+ * Filtros disponibles para buscar proveedores.
302
+ */
303
+ interface ProvidersFilter {
304
+ Search?: string;
305
+ Provider?: string;
306
+ IsActive?: boolean;
307
+ }
308
+
309
+ /**
310
+ * Interfaz que representa un color.
311
+ */
312
+ interface Color {
313
+ colorId: number;
314
+ color: string;
315
+ key: string;
316
+ createdAt: string;
317
+ updatedAt?: string;
318
+ deleted: boolean;
319
+ }
320
+ /**
321
+ * Request para crear o actualizar un color.
322
+ */
323
+ interface ColorRequest {
324
+ color: string;
325
+ key: string;
326
+ }
327
+ /**
328
+ * Filtros disponibles para buscar colores.
329
+ */
330
+ interface ColorsFilter {
331
+ Search?: string;
332
+ Color?: string;
333
+ }
334
+
335
+ /**
336
+ * Interfaz que representa un grupo de tallas.
337
+ */
338
+ interface SizeGroup {
339
+ sizeGroupId: number;
340
+ sizeGroup: string;
341
+ key: string;
342
+ description: string;
343
+ createdAt: string;
344
+ updatedAt?: string;
345
+ deleted: boolean;
346
+ }
347
+ /**
348
+ * Request para crear o actualizar un grupo de tallas.
349
+ */
350
+ interface SizeGroupRequest {
351
+ sizeGroup: string;
352
+ key: string;
353
+ description: string;
354
+ }
355
+ /**
356
+ * Filtros disponibles para buscar grupos de tallas.
357
+ */
358
+ interface SizeGroupsFilter {
359
+ Search?: string;
360
+ SizeGroup?: string;
361
+ Description?: string;
362
+ }
363
+
364
+ /**
365
+ * Interfaz que representa una talla.
366
+ */
367
+ interface Size {
368
+ sizeId: number;
369
+ size: string;
370
+ iso: string;
371
+ width: string;
372
+ length: string;
373
+ sizeGroupId: number;
374
+ createdAt: string;
375
+ updatedAt?: string;
376
+ deleted: boolean;
377
+ sizeGroup?: SizeGroup;
378
+ }
379
+ /**
380
+ * Request para crear o actualizar una talla.
381
+ */
382
+ interface SizeRequest {
383
+ size: string;
384
+ iso: string;
385
+ width: string;
386
+ length: string;
387
+ sizeGroupId: number;
388
+ }
389
+ /**
390
+ * Filtros disponibles para buscar tallas.
391
+ */
392
+ interface SizesFilter {
393
+ Search?: string;
394
+ Size?: string;
395
+ SizeGroupId?: number;
396
+ }
397
+
398
+ /**
399
+ * Interfaz que representa un Blank en el catálogo de productos.
400
+ */
401
+ interface Blank {
402
+ blankId: number;
403
+ blank: string;
404
+ sku: string;
405
+ cost: number;
406
+ isActive: boolean;
407
+ colorId: number;
408
+ providerId: number;
409
+ materialId: number;
410
+ sizeId: number;
411
+ createdAt: string;
412
+ updatedAt?: string;
413
+ deleted: boolean;
414
+ color?: Color;
415
+ size?: Size;
416
+ provider?: Provider;
417
+ material?: Material;
418
+ }
419
+ /**
420
+ * Request para crear o actualizar un Blank.
421
+ */
422
+ interface BlankRequest {
423
+ blank: string;
424
+ sku: string;
425
+ cost: number;
426
+ colorId: number;
427
+ providerId: number;
428
+ materialId: number;
429
+ sizeId: number;
430
+ isActive: boolean;
431
+ }
432
+ /**
433
+ * Filtros disponibles para buscar Blanks.
434
+ */
435
+ interface BlanksFilter {
436
+ Search?: string;
437
+ SKU?: string;
438
+ Provider: string;
439
+ Material: string;
440
+ Size: string;
441
+ IsActive?: boolean;
442
+ }
443
+ /**
444
+ * Request para carga masiva de archivos.
445
+ */
446
+ interface BulkUploadRequest {
447
+ base64: string;
448
+ }
449
+ /**
450
+ * Representa una fila del Excel de carga masiva de Blanks.
451
+ */
452
+ interface BlanksBulkItem {
453
+ blank: string;
454
+ sku: string;
455
+ cost: string;
456
+ color: string;
457
+ provider: string;
458
+ material: string;
459
+ size: string;
460
+ isActive: string;
461
+ }
462
+ /**
463
+ * Mapeo de encabezados en español (plantilla Excel) a propiedades de BlanksBulkItem.
464
+ */
465
+ declare const BLANKS_BULK_COLUMN_MAP: Record<string, keyof BlanksBulkItem>;
466
+ /**
467
+ * Encabezados en español tal como aparecen en la plantilla Excel.
468
+ */
469
+ declare const BLANKS_BULK_SPANISH_HEADERS: string[];
470
+
471
+ /**
472
+ * Interfaz que representa un módulo del sistema.
473
+ */
474
+ interface Module {
475
+ moduleId: number;
476
+ module: string;
477
+ description: string;
478
+ isActive: boolean;
479
+ }
480
+ /**
481
+ * Request para crear o actualizar un módulo.
482
+ */
483
+ interface ModuleRequest {
484
+ module: string;
485
+ description: string;
486
+ isActive?: boolean;
487
+ }
488
+ /**
489
+ * Filtros disponibles para buscar módulos.
490
+ * Todos los campos son opcionales.
491
+ */
492
+ interface ModulesFilter {
493
+ /** Búsqueda general (busca en Module y Description) */
494
+ Search?: string;
495
+ /** Filtro por nombre del módulo (búsqueda parcial) */
496
+ Module?: string;
497
+ /** Filtro por descripción (búsqueda parcial) */
498
+ Description?: string;
499
+ /** Filtro por estado activo/inactivo */
500
+ IsActive?: boolean;
501
+ }
502
+
503
+ /**
504
+ * Interfaz que representa un endpoint del sistema.
505
+ */
506
+ interface Endpoint {
507
+ endpointId: number;
508
+ endpoint: string;
509
+ httpMethod: string;
510
+ path: string;
511
+ description: string;
512
+ requiresAuth: boolean;
513
+ requiresPermission: boolean | null;
514
+ requiresSignature: boolean;
515
+ requiresHeader: boolean;
516
+ allowedOrigins: string;
517
+ isActive: boolean;
518
+ }
519
+ /**
520
+ * Request para crear o actualizar un endpoint.
521
+ */
522
+ interface EndpointRequest {
523
+ endpoint: string;
524
+ httpMethod: string;
525
+ path: string;
526
+ description: string;
527
+ requiresAuth?: boolean;
528
+ requiresPermission?: boolean;
529
+ requiresSignature?: boolean;
530
+ requiresHeader?: boolean;
531
+ allowedOrigins?: string[];
532
+ isActive?: boolean;
533
+ }
534
+ /**
535
+ * Métodos HTTP disponibles para endpoints.
536
+ */
537
+ type HttpMethodType = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
538
+ /**
539
+ * Filtros disponibles para buscar endpoints.
540
+ * Todos los campos son opcionales.
541
+ */
542
+ interface EndpointsFilter {
543
+ /** Búsqueda general (busca en Endpoint, Path y Description) */
544
+ Search?: string;
545
+ /** Filtro por nombre del endpoint (búsqueda parcial) */
546
+ Endpoint?: string;
547
+ /** Filtro por método HTTP (GET, POST, PUT, DELETE, PATCH) */
548
+ HttpMethod?: HttpMethodType;
549
+ /** Filtro por módulo (primer segmento del path, búsqueda parcial) */
550
+ Module?: string;
551
+ /** Filtro por path (búsqueda parcial) */
552
+ Path?: string;
553
+ /** Filtro por descripción (búsqueda parcial) */
554
+ Description?: string;
555
+ /** Filtro por endpoints que requieren autenticación */
556
+ RequiresAuth?: boolean;
557
+ /** Filtro por endpoints que requieren validación de permisos */
558
+ RequiresPermission?: boolean;
559
+ /** Filtro por endpoints que requieren firma */
560
+ RequiresSignature?: boolean;
561
+ /** Filtro por endpoints que requieren header específico */
562
+ RequiresHeader?: boolean;
563
+ /** Filtro por estado activo/inactivo */
564
+ IsActive?: boolean;
565
+ }
566
+
567
+ /**
568
+ * Interfaz que representa una ruta de UI del sistema.
569
+ */
570
+ interface UIRoute {
571
+ uiRouteId: number;
572
+ uiRoute: string;
573
+ path: string;
574
+ description: string;
575
+ isActive: boolean;
576
+ }
577
+ /**
578
+ * Request para crear o actualizar una ruta de UI.
579
+ */
580
+ interface UIRouteRequest {
581
+ uiRoute: string;
582
+ path: string;
583
+ description: string;
584
+ isActive?: boolean;
585
+ }
586
+ /**
587
+ * Filtros disponibles para buscar rutas de UI.
588
+ * Todos los campos son opcionales.
589
+ */
590
+ interface UIRoutesFilter {
591
+ /** Búsqueda general (busca en UIRoute, Path y Description) */
592
+ Search?: string;
593
+ /** Filtro por nombre de la ruta (búsqueda parcial) */
594
+ UIRoute?: string;
595
+ /** Filtro por path (búsqueda parcial) */
596
+ Path?: string;
597
+ /** Filtro por descripción (búsqueda parcial) */
598
+ Description?: string;
599
+ /** Filtro por estado activo/inactivo */
600
+ IsActive?: boolean;
601
+ }
602
+
603
+ interface AdminUser {
604
+ userId: number;
605
+ username: string;
606
+ firstName: string;
607
+ lastName: string;
608
+ email: string;
609
+ phone: string;
610
+ areaCodeId: number | null;
611
+ birthday: string | null;
612
+ referrerUserId: number | null;
613
+ userReferralCode: string;
614
+ genderId: number | null;
615
+ roleId: number | null;
616
+ userTypeId: number | null;
617
+ isActive: boolean;
618
+ createdAt: string;
619
+ updatedAt: string | null;
620
+ }
621
+ interface AdminAuthentication {
622
+ userAuthenticationId: number;
623
+ userId: number;
624
+ securityLevel: number;
625
+ clientId: string;
626
+ isTwoFactorEnabled: boolean;
627
+ failedLoginAttempts: number;
628
+ lastLogin: string | null;
629
+ isActive: boolean;
630
+ isLocked: boolean;
631
+ emailVerified: boolean;
632
+ phoneVerified: boolean;
633
+ mustChangePassword: boolean;
634
+ passwordLastChanged: string | null;
635
+ passwordExpiresAt: string | null;
636
+ lastLoginIP: string | null;
637
+ lastLoginDevice: string | null;
638
+ lastActivityAt: string | null;
639
+ createdAt: string;
640
+ updatedAt: string | null;
641
+ }
642
+
643
+ interface UserAdminRequest {
644
+ username: string;
645
+ firstName: string;
646
+ lastName: string;
647
+ email: string;
648
+ phone: string;
649
+ areaCodeId: number;
650
+ birthday: string;
651
+ genderId: number;
652
+ roleId: number;
653
+ userTypeId: number;
654
+ }
655
+
656
+ interface UserAuthAdminRequest {
657
+ userId: number;
658
+ securityLevel: number;
659
+ clientId: string;
660
+ requireEmailConfirmation?: boolean;
661
+ }
662
+
663
+ interface ChangePasswordAdminRequest {
664
+ newPassword: string;
665
+ }
666
+
667
+ interface UserAdminFilter {
668
+ Search?: string;
669
+ Username?: string;
670
+ FirstName?: string;
671
+ LastName?: string;
672
+ Email?: string;
673
+ Phone?: string;
674
+ RoleId?: number;
675
+ UserTypeId?: number;
676
+ IsActive?: boolean;
677
+ }
678
+
679
+ interface UserAdminUpdateRequest {
680
+ username: string;
681
+ firstName: string;
682
+ lastName: string;
683
+ email: string;
684
+ phone: string;
685
+ areaCodeId: number;
686
+ birthday?: string;
687
+ genderId: number;
688
+ roleId: number;
689
+ userTypeId: number;
690
+ }
691
+
692
+ interface UserAuthUpdateRequest {
693
+ securityLevel: number;
694
+ clientId: string;
695
+ isTwoFactorEnabled?: boolean;
696
+ emailVerified?: boolean;
697
+ phoneVerified?: boolean;
698
+ }
699
+
700
+ interface ChangePasswordUserRequest {
701
+ currentPassword: string;
702
+ newPassword: string;
703
+ }
704
+
705
+ /**
706
+ * Interfaz que representa un rol del sistema.
707
+ */
708
+ interface Role {
709
+ roleId: number;
710
+ role: string;
711
+ key?: string;
712
+ description?: string;
713
+ userTypeId: number;
714
+ isActive: boolean;
715
+ }
716
+ /**
717
+ * Request para crear o actualizar un rol.
718
+ */
719
+ interface RoleRequest {
720
+ role: string;
721
+ userTypeId: number;
722
+ key?: string;
723
+ description?: string;
724
+ isActive?: boolean;
725
+ }
726
+ /**
727
+ * Filtros disponibles para buscar roles.
728
+ */
729
+ interface RolesFilter {
730
+ /** Búsqueda general */
731
+ Search?: string;
732
+ /** Filtro por nombre del rol (búsqueda parcial) */
733
+ Role?: string;
734
+ /** Filtro por descripción (búsqueda parcial) */
735
+ Description?: string;
736
+ /** Filtro por estado activo/inactivo */
737
+ IsActive?: boolean;
738
+ }
739
+ interface RoleUserProfile {
740
+ roleId: number;
741
+ role: string;
742
+ }
743
+
744
+ /**
745
+ * Interfaz que representa un tipo de usuario.
746
+ */
747
+ interface UserType {
748
+ userTypeId: number;
749
+ userType: string;
750
+ key?: string;
751
+ description?: string;
752
+ }
753
+ /**
754
+ * Request para crear o actualizar un tipo de usuario.
755
+ */
756
+ interface UserTypeRequest {
757
+ userType: string;
758
+ key?: string;
759
+ description?: string;
760
+ }
761
+ /**
762
+ * Filtros disponibles para buscar tipos de usuario.
763
+ */
764
+ interface UserTypesFilter {
765
+ /** Búsqueda general */
766
+ Search?: string;
767
+ /** Filtro por tipo de usuario (búsqueda parcial) */
768
+ UserType?: string;
769
+ /** Filtro por key (búsqueda parcial) */
770
+ Key?: string;
771
+ /** Filtro por descripción (búsqueda parcial) */
772
+ Description?: string;
773
+ }
774
+ interface UserTypeUserProfile {
775
+ userTypeId: number;
776
+ userType: string;
777
+ }
778
+
779
+ interface UserBasicResponse {
780
+ username: string;
781
+ firstName: string;
782
+ lastName: string;
783
+ fullName: string;
784
+ email: string;
785
+ phone: string;
786
+ role: Role;
787
+ userType: UserType;
788
+ isActive: boolean;
789
+ securityLevel: number;
790
+ }
791
+
792
+ interface UserDataUpdateRequest {
793
+ username: string;
794
+ firstName: string;
795
+ lastName: string;
796
+ areaCodeId: number;
797
+ phone: string;
798
+ birthday: Date;
799
+ profilePhoto: string;
800
+ }
801
+
802
+ interface UserProfileResponse {
803
+ username: string;
804
+ firstName: string;
805
+ lastName: string;
806
+ fullName: string;
807
+ email: string;
808
+ phone: string;
809
+ profilePhoto: string;
810
+ areaCode: AreaCodeUserProfile;
811
+ birthday: Date;
812
+ gender: GenderUserProfile;
813
+ role: RoleUserProfile;
814
+ userType: UserTypeUserProfile;
815
+ userReferralCode: string;
816
+ securityLevel: number;
817
+ emailVerified: boolean;
818
+ phoneVerified: boolean;
819
+ lastLogin: Date;
820
+ mustChangePassword: boolean;
821
+ passwordExpiresAt: Date;
822
+ isActive: boolean;
823
+ createdAt: Date;
824
+ updatedAt: Date;
825
+ }
826
+
1
827
  declare class ErrorResponse extends Error {
2
828
  statusCode?: number | undefined;
3
829
  responseData?: any | undefined;
@@ -213,209 +1039,72 @@ declare class TokenManager {
213
1039
  private stopExpirationCheck;
214
1040
  /**
215
1041
  * Detiene el timer de auto-refresh proactivo
216
- */
217
- private stopAutoRefreshTimer;
218
- }
219
-
220
- interface ChangePasswordRequest {
221
- email: string;
222
- oldPassword: string;
223
- newPassword: string;
224
- }
225
-
226
- interface ConfirmEmailRequest {
227
- email: string;
228
- expiresAt: number;
229
- }
230
-
231
- interface GetSecretKeyRequest {
232
- otpCode?: string;
233
- }
234
-
235
- interface GetSecretKeyResponse {
236
- secretKey: string;
237
- }
238
-
239
- interface LoginRequest {
240
- email: string;
241
- password: string;
242
- rememberMe: boolean;
243
- }
244
-
245
- interface LoginResponse {
246
- accessToken: string;
247
- refreshToken: string;
248
- expiresIn: string;
249
- message: string;
250
- type: string;
251
- }
252
-
253
- interface RefreshTokenRequest {
254
- refreshToken: string;
255
- rememberMe: boolean;
256
- }
257
-
258
- interface RefreshTokenResponse {
259
- accessToken: string;
260
- refreshToken: string;
261
- expiresIn: string;
262
- message: string;
263
- type: string;
264
- }
265
-
266
- interface SendOtpRequest {
267
- email: string;
268
- }
269
-
270
- interface ValidateOtpRequest {
271
- email: string;
272
- otp: string;
273
- }
274
-
275
- interface ValidateSessionRenewedResponse {
276
- accessToken: string;
277
- refreshToken: string;
278
- expiresIn: string;
279
- remainingMinutes: number;
280
- isRemembered: boolean;
281
- }
282
- interface ValidateSessionResponse {
283
- expiresAt: number;
284
- remainingMinutes: number;
285
- isRemembered: boolean;
286
- }
287
-
288
- declare class AuthService {
289
- private api;
290
- private crytpoService;
291
- private tokenManager;
292
- private serviceProperties;
293
- constructor(serviceProperties: ServiceProperties, tokenManager: TokenManager, cryptoService: CryptoService, api: API);
294
- /**
295
- * Login con las credenciales proporcionadas
296
- * @param credentials - Objeto con email, password y rememberMe
297
- * @returns Retorna el cuerpo de respuesta del login.
298
- */
299
- login(credentials: LoginRequest): Promise<ResponseModel<LoginResponse>>;
300
- /**
301
- * Valida la sesión actual y retorna información de expiración
302
- *
303
- * El servidor puede responder de 2 formas:
304
- * 1. Sesión renovada (sliding window): retorna nuevos tokens
305
- * 2. Sesión válida: retorna info de expiración sin renovar
306
- */
307
- validateSession(): Promise<ResponseModel<ValidateSessionRenewedResponse | ValidateSessionResponse>>;
308
- /**
309
- * Refresca los tokens usando el refresh token
310
- */
311
- refreshTokens(refreshRequest: RefreshTokenRequest): Promise<ResponseModel<RefreshTokenResponse>>;
312
- /**
313
- * Cierra sesión: notifica al servidor y limpia tokens
314
- */
315
- logout(): Promise<ResponseModel>;
316
- /**
317
- * Obtiene la SecretKey del usuario autenticado.
318
- * Requiere sesión activa. Si el usuario tiene 2FA habilitado, se debe proveer el OTP.
319
- * @param request - Objeto opcional con otpCode (requerido si IsTwoFactorEnabled)
320
- */
321
- getSecretKey(request?: GetSecretKeyRequest): Promise<ResponseModel<GetSecretKeyResponse>>;
322
- /**
323
- * Confirma el correo electrónico de un usuario.
324
- * @param request - Email y expiresAt
325
- */
326
- confirmEmail(request: ConfirmEmailRequest): Promise<ResponseModel>;
327
- /**
328
- * Envía un código OTP al correo electrónico.
329
- * @param request - Email del usuario
330
- */
331
- sendOtp(request: SendOtpRequest): Promise<ResponseModel>;
332
- /**
333
- * Valida un código OTP.
334
- * @param request - Email y código OTP
335
- */
336
- validateOtp(request: ValidateOtpRequest): Promise<ResponseModel>;
337
- /**
338
- * Cambia la contraseña del usuario (flujo público, sin sesión).
339
- * @param request - Email, contraseña actual y nueva contraseña
340
- */
341
- changePassword(request: ChangePasswordRequest): Promise<ResponseModel>;
342
- /**
343
- * Verifica si el usuario está autenticado
344
- */
345
- isAuthenticated(): boolean;
346
- /**
347
- * Obtiene los tokens actuales
348
- */
349
- getTokens(): TokenData | null;
350
- }
351
-
352
- /**
353
- * Interfaz que representa un género del catálogo.
354
- */
355
- interface Gender {
356
- genderId: number;
357
- gender: string;
358
- key: string;
359
- }
360
- /**
361
- * Request para crear o actualizar un género.
362
- */
363
- interface GenderRequest {
364
- gender: string;
365
- key?: string;
366
- }
367
- /**
368
- * Filtros disponibles para buscar géneros.
369
- */
370
- interface GendersFilter {
371
- /** Búsqueda general */
372
- Search?: string;
373
- /** Filtro por nombre del género (búsqueda parcial) */
374
- Gender?: string;
375
- }
376
- interface GenderUserProfile {
377
- genderId: number;
378
- gender: string;
379
- }
380
-
381
- /**
382
- * Interfaz que representa un código de área del catálogo.
383
- */
384
- interface AreaCode {
385
- areaCodeId: number;
386
- countryCode: string;
387
- iso: string;
388
- countryName: string;
389
- isActive: boolean;
390
- }
391
- /**
392
- * Request para crear o actualizar un código de área.
393
- */
394
- interface AreaCodeRequest {
395
- countryCode: string;
396
- iso: string;
397
- countryName: string;
398
- isActive: boolean;
399
- }
400
- /**
401
- * Filtros disponibles para buscar códigos de área.
402
- */
403
- interface AreaCodesFilter {
404
- /** Búsqueda general */
405
- Search?: string;
406
- /** Filtro por código de país (búsqueda parcial) */
407
- CountryCode?: string;
408
- /** Filtro por ISO (búsqueda parcial) */
409
- ISO?: string;
410
- /** Filtro por nombre de país (búsqueda parcial) */
411
- CountryName?: string;
412
- /** Filtro por estado activo/inactivo */
413
- IsActive?: boolean;
414
- }
415
- interface AreaCodeUserProfile {
416
- areaCodeId: number;
417
- countryCode: string;
418
- country: string;
1042
+ */
1043
+ private stopAutoRefreshTimer;
1044
+ }
1045
+
1046
+ declare class AuthService {
1047
+ private api;
1048
+ private crytpoService;
1049
+ private tokenManager;
1050
+ private serviceProperties;
1051
+ constructor(serviceProperties: ServiceProperties, tokenManager: TokenManager, cryptoService: CryptoService, api: API);
1052
+ /**
1053
+ * Login con las credenciales proporcionadas
1054
+ * @param credentials - Objeto con email, password y rememberMe
1055
+ * @returns Retorna el cuerpo de respuesta del login.
1056
+ */
1057
+ login(credentials: LoginRequest): Promise<ResponseModel<LoginResponse>>;
1058
+ /**
1059
+ * Valida la sesión actual y retorna información de expiración
1060
+ *
1061
+ * El servidor puede responder de 2 formas:
1062
+ * 1. Sesión renovada (sliding window): retorna nuevos tokens
1063
+ * 2. Sesión válida: retorna info de expiración sin renovar
1064
+ */
1065
+ validateSession(): Promise<ResponseModel<ValidateSessionRenewedResponse | ValidateSessionResponse>>;
1066
+ /**
1067
+ * Refresca los tokens usando el refresh token
1068
+ */
1069
+ refreshTokens(refreshRequest: RefreshTokenRequest): Promise<ResponseModel<RefreshTokenResponse>>;
1070
+ /**
1071
+ * Cierra sesión: notifica al servidor y limpia tokens
1072
+ */
1073
+ logout(): Promise<ResponseModel>;
1074
+ /**
1075
+ * Obtiene la SecretKey del usuario autenticado.
1076
+ * Requiere sesión activa. Si el usuario tiene 2FA habilitado, se debe proveer el OTP.
1077
+ * @param request - Objeto opcional con otpCode (requerido si IsTwoFactorEnabled)
1078
+ */
1079
+ getSecretKey(request?: GetSecretKeyRequest): Promise<ResponseModel<GetSecretKeyResponse>>;
1080
+ /**
1081
+ * Confirma el correo electrónico de un usuario.
1082
+ * @param request - Email y expiresAt
1083
+ */
1084
+ confirmEmail(request: ConfirmEmailRequest): Promise<ResponseModel>;
1085
+ /**
1086
+ * Envía un código OTP al correo electrónico.
1087
+ * @param request - Email del usuario
1088
+ */
1089
+ sendOtp(request: SendOtpRequest): Promise<ResponseModel>;
1090
+ /**
1091
+ * Valida un código OTP.
1092
+ * @param request - Email y código OTP
1093
+ */
1094
+ validateOtp(request: ValidateOtpRequest): Promise<ResponseModel>;
1095
+ /**
1096
+ * Cambia la contraseña del usuario (flujo público, sin sesión).
1097
+ * @param request - Email, contraseña actual y nueva contraseña
1098
+ */
1099
+ changePassword(request: ChangePasswordRequest): Promise<ResponseModel>;
1100
+ /**
1101
+ * Verifica si el usuario está autenticado
1102
+ */
1103
+ isAuthenticated(): boolean;
1104
+ /**
1105
+ * Obtiene los tokens actuales
1106
+ */
1107
+ getTokens(): TokenData | null;
419
1108
  }
420
1109
 
421
1110
  /**
@@ -586,196 +1275,25 @@ declare class CatalogService {
586
1275
  getAreaCodeById(id: number): Promise<ResponseModel<AreaCode>>;
587
1276
  /**
588
1277
  * Crea un nuevo código de área.
589
- * @param request - Datos del código de área a crear
590
- */
591
- createAreaCode(request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
592
- /**
593
- * Actualiza un código de área existente.
594
- * @param id - ID del código de área a actualizar
595
- * @param request - Nuevos datos del código de área
596
- */
597
- updateAreaCode(id: number, request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
598
- /**
599
- * Activa o desactiva un código de área.
600
- * @param id - ID del código de área
601
- */
602
- toggleAreaCodeStatus(id: number): Promise<ResponseModel<AreaCode>>;
603
- /**
604
- * Elimina un código de área.
605
- * @param id - ID del código de área a eliminar
606
- */
607
- deleteAreaCode(id: number): Promise<ResponseModel<void>>;
608
- }
609
-
610
- interface Location {
611
- locationId: number;
612
- locationName: string;
613
- address1: string;
614
- address2: string;
615
- city: string;
616
- state: string;
617
- country: string;
618
- postalCode: string;
619
- contactName: string;
620
- areaCodeId: number;
621
- contactPhone: string;
622
- contactEmail: string;
623
- isActive: boolean;
624
- isPhysical: boolean;
625
- parentLocationId: number | null;
626
- url: string;
627
- apiKey: string;
628
- }
629
- interface LocationsRequest {
630
- locationName: string;
631
- address1: string;
632
- address2?: string;
633
- city: string;
634
- state: string;
635
- country: string;
636
- postalCode: string;
637
- contactName: string;
638
- areaCodeId: number;
639
- contactPhone: string;
640
- contactEmail: string;
641
- isActive?: boolean;
642
- isPhysical: boolean;
643
- parentLocationId?: number;
644
- /** URL requerida cuando isPhysical = true */
645
- url?: string;
646
- /** ApiKey requerida cuando isPhysical = true. Se almacena cifrada (AES-256) en el servidor. */
647
- apiKey?: string;
648
- }
649
- interface LocationsFilter {
650
- Search?: string;
651
- LocationName?: string;
652
- City?: string;
653
- State?: string;
654
- Country?: string;
655
- IsActive?: boolean;
656
- }
657
-
658
- interface InventoryStatus {
659
- inventoryStatusId: number;
660
- inventoryStatus: string;
661
- key: string;
662
- description: string;
663
- }
664
- interface InventoryStatusRequest {
665
- inventoryStatus: string;
666
- key?: string;
667
- description: string;
668
- }
669
- interface InventoryStatusesFilter {
670
- Search?: string;
671
- InventoryStatus?: string;
672
- Description?: string;
673
- }
674
-
675
- /**
676
- * Interfaz que representa un empaque del inventario.
677
- */
678
- interface Packing {
679
- packingId: number;
680
- packing: string;
681
- key: string;
682
- materialId: number;
683
- length: number;
684
- width: number;
685
- height: number;
686
- weightLimit: number | null;
687
- cost: number;
688
- providerId: number;
689
- isActive: boolean;
690
- }
691
- /**
692
- * Request para crear o actualizar un empaque.
693
- */
694
- interface PackingRequest {
695
- packing: string;
696
- key?: string;
697
- materialId: number;
698
- length: number;
699
- width: number;
700
- height: number;
701
- weightLimit?: number;
702
- cost: number;
703
- providerId: number;
704
- isActive: boolean;
705
- }
706
- /**
707
- * Filtros disponibles para buscar empaques.
708
- */
709
- interface PackingsFilter {
710
- Search?: string;
711
- Packing?: string;
712
- MaterialId?: number;
713
- ProviderId?: number;
714
- IsActive?: boolean;
715
- }
716
-
717
- /**
718
- * Interfaz que representa un material del inventario.
719
- */
720
- interface Material {
721
- materialId: number;
722
- material: string;
723
- key: string;
724
- description: string;
725
- isRecyclable: boolean;
726
- isFragile: boolean;
727
- }
728
- /**
729
- * Request para crear o actualizar un material.
730
- */
731
- interface MaterialRequest {
732
- material: string;
733
- description: string;
734
- key?: string;
735
- isRecyclable: boolean;
736
- isFragile: boolean;
737
- }
738
- /**
739
- * Filtros disponibles para buscar materiales.
740
- */
741
- interface MaterialsFilter {
742
- Search?: string;
743
- Material?: string;
744
- Description?: string;
745
- IsRecyclable?: boolean;
746
- IsFragile?: boolean;
747
- }
748
-
749
- /**
750
- * Interfaz que representa un proveedor del inventario.
751
- */
752
- interface Provider {
753
- providerId: number;
754
- provider: string;
755
- contactName: string;
756
- areaCodeId: number;
757
- contactNumber: string;
758
- contactEmail: string;
759
- isActive: boolean;
760
- }
761
- /**
762
- * Request para crear o actualizar un proveedor.
763
- */
764
- interface ProviderRequest {
765
- provider: string;
766
- contactName: string;
767
- areaCodeId: number;
768
- contactNumber: string;
769
- contactEmail: string;
770
- isActive: boolean;
771
- }
772
- /**
773
- * Filtros disponibles para buscar proveedores.
774
- */
775
- interface ProvidersFilter {
776
- Search?: string;
777
- Provider?: string;
778
- IsActive?: boolean;
1278
+ * @param request - Datos del código de área a crear
1279
+ */
1280
+ createAreaCode(request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
1281
+ /**
1282
+ * Actualiza un código de área existente.
1283
+ * @param id - ID del código de área a actualizar
1284
+ * @param request - Nuevos datos del código de área
1285
+ */
1286
+ updateAreaCode(id: number, request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
1287
+ /**
1288
+ * Activa o desactiva un código de área.
1289
+ * @param id - ID del código de área
1290
+ */
1291
+ toggleAreaCodeStatus(id: number): Promise<ResponseModel<AreaCode>>;
1292
+ /**
1293
+ * Elimina un código de área.
1294
+ * @param id - ID del código de área a eliminar
1295
+ */
1296
+ deleteAreaCode(id: number): Promise<ResponseModel<void>>;
779
1297
  }
780
1298
 
781
1299
  /**
@@ -848,243 +1366,108 @@ declare class InventoryService {
848
1366
  /**
849
1367
  * Elimina un estatus de inventario.
850
1368
  * @param id - ID del estatus a eliminar
851
- */
852
- deleteStatus(id: number): Promise<ResponseModel<void>>;
853
- /**
854
- * Obtiene todos los empaques con filtros opcionales.
855
- * @param filter - Filtros opcionales para la búsqueda
856
- */
857
- getPackings(filter?: PackingsFilter): Promise<ResponseModel<Packing[]>>;
858
- /**
859
- * Obtiene el modelo de filtros disponibles para empaques.
860
- */
861
- getPackingFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
862
- /**
863
- * Obtiene un empaque por su ID.
864
- * @param id - ID del empaque
865
- */
866
- getPackingById(id: number): Promise<ResponseModel<Packing>>;
867
- /**
868
- * Crea un nuevo empaque.
869
- * @param request - Datos del empaque a crear
870
- */
871
- createPacking(request: PackingRequest): Promise<ResponseModel<Packing>>;
872
- /**
873
- * Actualiza un empaque existente.
874
- * @param id - ID del empaque a actualizar
875
- * @param request - Nuevos datos del empaque
876
- */
877
- updatePacking(id: number, request: PackingRequest): Promise<ResponseModel<Packing>>;
878
- /**
879
- * Activa o desactiva un empaque.
880
- * @param id - ID del empaque
881
- */
882
- togglePackingStatus(id: number): Promise<ResponseModel<Packing>>;
883
- /**
884
- * Elimina un empaque.
885
- * @param id - ID del empaque a eliminar
886
- */
887
- deletePacking(id: number): Promise<ResponseModel<void>>;
888
- /**
889
- * Obtiene todos los materiales con filtros opcionales.
890
- * @param filter - Filtros opcionales para la búsqueda
891
- */
892
- getMaterials(filter?: MaterialsFilter): Promise<ResponseModel<Material[]>>;
893
- /**
894
- * Obtiene el modelo de filtros disponibles para materiales.
895
- */
896
- getMaterialFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
897
- /**
898
- * Obtiene un material por su ID.
899
- * @param id - ID del material
900
- */
901
- getMaterialById(id: number): Promise<ResponseModel<Material>>;
902
- /**
903
- * Crea un nuevo material.
904
- * @param request - Datos del material a crear
905
- */
906
- createMaterial(request: MaterialRequest): Promise<ResponseModel<Material>>;
907
- /**
908
- * Actualiza un material existente.
909
- * @param id - ID del material a actualizar
910
- * @param request - Nuevos datos del material
911
- */
912
- updateMaterial(id: number, request: MaterialRequest): Promise<ResponseModel<Material>>;
913
- /**
914
- * Elimina un material.
915
- * @param id - ID del material a eliminar
916
- */
917
- deleteMaterial(id: number): Promise<ResponseModel<void>>;
918
- /**
919
- * Obtiene todos los proveedores con filtros opcionales.
920
- * @param filter - Filtros opcionales para la búsqueda
921
- */
922
- getProviders(filter?: ProvidersFilter): Promise<ResponseModel<Provider[]>>;
923
- /**
924
- * Obtiene el modelo de filtros disponibles para proveedores.
925
- */
926
- getProviderFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
927
- /**
928
- * Obtiene un proveedor por su ID.
929
- * @param id - ID del proveedor
930
- */
931
- getProviderById(id: number): Promise<ResponseModel<Provider>>;
932
- /**
933
- * Crea un nuevo proveedor.
934
- * @param request - Datos del proveedor a crear
935
- */
936
- createProvider(request: ProviderRequest): Promise<ResponseModel<Provider>>;
937
- /**
938
- * Actualiza un proveedor existente.
939
- * @param id - ID del proveedor a actualizar
940
- * @param request - Nuevos datos del proveedor
941
- */
942
- updateProvider(id: number, request: ProviderRequest): Promise<ResponseModel<Provider>>;
943
- /**
944
- * Activa o desactiva un proveedor.
945
- * @param id - ID del proveedor
946
- */
947
- toggleProviderStatus(id: number): Promise<ResponseModel<Provider>>;
948
- /**
949
- * Elimina un proveedor.
950
- * @param id - ID del proveedor a eliminar
951
- */
952
- deleteProvider(id: number): Promise<ResponseModel<void>>;
953
- }
954
-
955
- /**
956
- * Interfaz que representa un color.
957
- */
958
- interface Color {
959
- colorId: number;
960
- color: string;
961
- key: string;
962
- createdAt: string;
963
- updatedAt?: string;
964
- deleted: boolean;
965
- }
966
- /**
967
- * Request para crear o actualizar un color.
968
- */
969
- interface ColorRequest {
970
- color: string;
971
- key: string;
972
- }
973
- /**
974
- * Filtros disponibles para buscar colores.
975
- */
976
- interface ColorsFilter {
977
- Search?: string;
978
- Color?: string;
979
- }
980
-
981
- /**
982
- * Interfaz que representa un grupo de tallas.
983
- */
984
- interface SizeGroup {
985
- sizeGroupId: number;
986
- sizeGroup: string;
987
- key: string;
988
- description: string;
989
- createdAt: string;
990
- updatedAt?: string;
991
- deleted: boolean;
992
- }
993
- /**
994
- * Request para crear o actualizar un grupo de tallas.
995
- */
996
- interface SizeGroupRequest {
997
- sizeGroup: string;
998
- key: string;
999
- description: string;
1000
- }
1001
- /**
1002
- * Filtros disponibles para buscar grupos de tallas.
1003
- */
1004
- interface SizeGroupsFilter {
1005
- Search?: string;
1006
- SizeGroup?: string;
1007
- Description?: string;
1008
- }
1009
-
1010
- /**
1011
- * Interfaz que representa una talla.
1012
- */
1013
- interface Size {
1014
- sizeId: number;
1015
- size: string;
1016
- iso: string;
1017
- width: string;
1018
- length: string;
1019
- sizeGroupId: number;
1020
- createdAt: string;
1021
- updatedAt?: string;
1022
- deleted: boolean;
1023
- sizeGroup?: SizeGroup;
1024
- }
1025
- /**
1026
- * Request para crear o actualizar una talla.
1027
- */
1028
- interface SizeRequest {
1029
- size: string;
1030
- iso: string;
1031
- width: string;
1032
- length: string;
1033
- sizeGroupId: number;
1034
- }
1035
- /**
1036
- * Filtros disponibles para buscar tallas.
1037
- */
1038
- interface SizesFilter {
1039
- Search?: string;
1040
- Size?: string;
1041
- SizeGroupId?: number;
1042
- }
1043
-
1044
- /**
1045
- * Interfaz que representa un Blank en el catálogo de productos.
1046
- */
1047
- interface Blank {
1048
- blankId: number;
1049
- blank: string;
1050
- sku: string;
1051
- cost: number;
1052
- isActive: boolean;
1053
- colorId: number;
1054
- providerId: number;
1055
- materialId: number;
1056
- sizeId: number;
1057
- createdAt: string;
1058
- updatedAt?: string;
1059
- deleted: boolean;
1060
- color?: Color;
1061
- size?: Size;
1062
- provider?: Provider;
1063
- material?: Material;
1064
- }
1065
- /**
1066
- * Request para crear o actualizar un Blank.
1067
- */
1068
- interface BlankRequest {
1069
- blank: string;
1070
- sku: string;
1071
- cost: number;
1072
- colorId: number;
1073
- providerId: number;
1074
- materialId: number;
1075
- sizeId: number;
1076
- isActive: boolean;
1077
- }
1078
- /**
1079
- * Filtros disponibles para buscar Blanks.
1080
- */
1081
- interface BlanksFilter {
1082
- Search?: string;
1083
- SKU?: string;
1084
- Provider: string;
1085
- Material: string;
1086
- Size: string;
1087
- IsActive?: boolean;
1369
+ */
1370
+ deleteStatus(id: number): Promise<ResponseModel<void>>;
1371
+ /**
1372
+ * Obtiene todos los empaques con filtros opcionales.
1373
+ * @param filter - Filtros opcionales para la búsqueda
1374
+ */
1375
+ getPackings(filter?: PackingsFilter): Promise<ResponseModel<Packing[]>>;
1376
+ /**
1377
+ * Obtiene el modelo de filtros disponibles para empaques.
1378
+ */
1379
+ getPackingFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1380
+ /**
1381
+ * Obtiene un empaque por su ID.
1382
+ * @param id - ID del empaque
1383
+ */
1384
+ getPackingById(id: number): Promise<ResponseModel<Packing>>;
1385
+ /**
1386
+ * Crea un nuevo empaque.
1387
+ * @param request - Datos del empaque a crear
1388
+ */
1389
+ createPacking(request: PackingRequest): Promise<ResponseModel<Packing>>;
1390
+ /**
1391
+ * Actualiza un empaque existente.
1392
+ * @param id - ID del empaque a actualizar
1393
+ * @param request - Nuevos datos del empaque
1394
+ */
1395
+ updatePacking(id: number, request: PackingRequest): Promise<ResponseModel<Packing>>;
1396
+ /**
1397
+ * Activa o desactiva un empaque.
1398
+ * @param id - ID del empaque
1399
+ */
1400
+ togglePackingStatus(id: number): Promise<ResponseModel<Packing>>;
1401
+ /**
1402
+ * Elimina un empaque.
1403
+ * @param id - ID del empaque a eliminar
1404
+ */
1405
+ deletePacking(id: number): Promise<ResponseModel<void>>;
1406
+ /**
1407
+ * Obtiene todos los materiales con filtros opcionales.
1408
+ * @param filter - Filtros opcionales para la búsqueda
1409
+ */
1410
+ getMaterials(filter?: MaterialsFilter): Promise<ResponseModel<Material[]>>;
1411
+ /**
1412
+ * Obtiene el modelo de filtros disponibles para materiales.
1413
+ */
1414
+ getMaterialFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1415
+ /**
1416
+ * Obtiene un material por su ID.
1417
+ * @param id - ID del material
1418
+ */
1419
+ getMaterialById(id: number): Promise<ResponseModel<Material>>;
1420
+ /**
1421
+ * Crea un nuevo material.
1422
+ * @param request - Datos del material a crear
1423
+ */
1424
+ createMaterial(request: MaterialRequest): Promise<ResponseModel<Material>>;
1425
+ /**
1426
+ * Actualiza un material existente.
1427
+ * @param id - ID del material a actualizar
1428
+ * @param request - Nuevos datos del material
1429
+ */
1430
+ updateMaterial(id: number, request: MaterialRequest): Promise<ResponseModel<Material>>;
1431
+ /**
1432
+ * Elimina un material.
1433
+ * @param id - ID del material a eliminar
1434
+ */
1435
+ deleteMaterial(id: number): Promise<ResponseModel<void>>;
1436
+ /**
1437
+ * Obtiene todos los proveedores con filtros opcionales.
1438
+ * @param filter - Filtros opcionales para la búsqueda
1439
+ */
1440
+ getProviders(filter?: ProvidersFilter): Promise<ResponseModel<Provider[]>>;
1441
+ /**
1442
+ * Obtiene el modelo de filtros disponibles para proveedores.
1443
+ */
1444
+ getProviderFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1445
+ /**
1446
+ * Obtiene un proveedor por su ID.
1447
+ * @param id - ID del proveedor
1448
+ */
1449
+ getProviderById(id: number): Promise<ResponseModel<Provider>>;
1450
+ /**
1451
+ * Crea un nuevo proveedor.
1452
+ * @param request - Datos del proveedor a crear
1453
+ */
1454
+ createProvider(request: ProviderRequest): Promise<ResponseModel<Provider>>;
1455
+ /**
1456
+ * Actualiza un proveedor existente.
1457
+ * @param id - ID del proveedor a actualizar
1458
+ * @param request - Nuevos datos del proveedor
1459
+ */
1460
+ updateProvider(id: number, request: ProviderRequest): Promise<ResponseModel<Provider>>;
1461
+ /**
1462
+ * Activa o desactiva un proveedor.
1463
+ * @param id - ID del proveedor
1464
+ */
1465
+ toggleProviderStatus(id: number): Promise<ResponseModel<Provider>>;
1466
+ /**
1467
+ * Elimina un proveedor.
1468
+ * @param id - ID del proveedor a eliminar
1469
+ */
1470
+ deleteProvider(id: number): Promise<ResponseModel<void>>;
1088
1471
  }
1089
1472
 
1090
1473
  /**
@@ -1172,160 +1555,36 @@ declare class ProductService {
1172
1555
  getBlanks(filter?: BlanksFilter): Promise<ResponseModel<Blank[]>>;
1173
1556
  /**
1174
1557
  * Obtiene el modelo de filtros disponibles para blanks.
1175
- */
1176
- getBlanksFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1177
- /**
1178
- * Obtiene un blank por su ID.
1179
- */
1180
- getBlankById(id: number): Promise<ResponseModel<Blank>>;
1181
- /**
1182
- * Crea un nuevo blank.
1183
- */
1184
- createBlank(request: BlankRequest): Promise<ResponseModel<Blank>>;
1185
- /**
1186
- * Actualiza un blank existente.
1187
- */
1188
- updateBlank(id: number, request: BlankRequest): Promise<ResponseModel<Blank>>;
1189
- /**
1190
- * Alterna el estado activo de un blank.
1191
- */
1192
- toggleBlankStatus(id: number): Promise<ResponseModel<Blank>>;
1193
- /**
1194
- * Elimina un blank.
1195
- */
1196
- deleteBlank(id: number): Promise<ResponseModel<void>>;
1197
- }
1198
-
1199
- /**
1200
- * Interfaz que representa un módulo del sistema.
1201
- */
1202
- interface Module {
1203
- moduleId: number;
1204
- module: string;
1205
- description: string;
1206
- isActive: boolean;
1207
- }
1208
- /**
1209
- * Request para crear o actualizar un módulo.
1210
- */
1211
- interface ModuleRequest {
1212
- module: string;
1213
- description: string;
1214
- isActive?: boolean;
1215
- }
1216
- /**
1217
- * Filtros disponibles para buscar módulos.
1218
- * Todos los campos son opcionales.
1219
- */
1220
- interface ModulesFilter {
1221
- /** Búsqueda general (busca en Module y Description) */
1222
- Search?: string;
1223
- /** Filtro por nombre del módulo (búsqueda parcial) */
1224
- Module?: string;
1225
- /** Filtro por descripción (búsqueda parcial) */
1226
- Description?: string;
1227
- /** Filtro por estado activo/inactivo */
1228
- IsActive?: boolean;
1229
- }
1230
-
1231
- /**
1232
- * Interfaz que representa un endpoint del sistema.
1233
- */
1234
- interface Endpoint {
1235
- endpointId: number;
1236
- endpoint: string;
1237
- httpMethod: string;
1238
- path: string;
1239
- description: string;
1240
- requiresAuth: boolean;
1241
- requiresPermission: boolean | null;
1242
- requiresSignature: boolean;
1243
- requiresHeader: boolean;
1244
- allowedOrigins: string;
1245
- isActive: boolean;
1246
- }
1247
- /**
1248
- * Request para crear o actualizar un endpoint.
1249
- */
1250
- interface EndpointRequest {
1251
- endpoint: string;
1252
- httpMethod: string;
1253
- path: string;
1254
- description: string;
1255
- requiresAuth?: boolean;
1256
- requiresPermission?: boolean;
1257
- requiresSignature?: boolean;
1258
- requiresHeader?: boolean;
1259
- allowedOrigins?: string[];
1260
- isActive?: boolean;
1261
- }
1262
- /**
1263
- * Métodos HTTP disponibles para endpoints.
1264
- */
1265
- type HttpMethodType = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
1266
- /**
1267
- * Filtros disponibles para buscar endpoints.
1268
- * Todos los campos son opcionales.
1269
- */
1270
- interface EndpointsFilter {
1271
- /** Búsqueda general (busca en Endpoint, Path y Description) */
1272
- Search?: string;
1273
- /** Filtro por nombre del endpoint (búsqueda parcial) */
1274
- Endpoint?: string;
1275
- /** Filtro por método HTTP (GET, POST, PUT, DELETE, PATCH) */
1276
- HttpMethod?: HttpMethodType;
1277
- /** Filtro por módulo (primer segmento del path, búsqueda parcial) */
1278
- Module?: string;
1279
- /** Filtro por path (búsqueda parcial) */
1280
- Path?: string;
1281
- /** Filtro por descripción (búsqueda parcial) */
1282
- Description?: string;
1283
- /** Filtro por endpoints que requieren autenticación */
1284
- RequiresAuth?: boolean;
1285
- /** Filtro por endpoints que requieren validación de permisos */
1286
- RequiresPermission?: boolean;
1287
- /** Filtro por endpoints que requieren firma */
1288
- RequiresSignature?: boolean;
1289
- /** Filtro por endpoints que requieren header específico */
1290
- RequiresHeader?: boolean;
1291
- /** Filtro por estado activo/inactivo */
1292
- IsActive?: boolean;
1293
- }
1294
-
1295
- /**
1296
- * Interfaz que representa una ruta de UI del sistema.
1297
- */
1298
- interface UIRoute {
1299
- uiRouteId: number;
1300
- uiRoute: string;
1301
- path: string;
1302
- description: string;
1303
- isActive: boolean;
1304
- }
1305
- /**
1306
- * Request para crear o actualizar una ruta de UI.
1307
- */
1308
- interface UIRouteRequest {
1309
- uiRoute: string;
1310
- path: string;
1311
- description: string;
1312
- isActive?: boolean;
1313
- }
1314
- /**
1315
- * Filtros disponibles para buscar rutas de UI.
1316
- * Todos los campos son opcionales.
1317
- */
1318
- interface UIRoutesFilter {
1319
- /** Búsqueda general (busca en UIRoute, Path y Description) */
1320
- Search?: string;
1321
- /** Filtro por nombre de la ruta (búsqueda parcial) */
1322
- UIRoute?: string;
1323
- /** Filtro por path (búsqueda parcial) */
1324
- Path?: string;
1325
- /** Filtro por descripción (búsqueda parcial) */
1326
- Description?: string;
1327
- /** Filtro por estado activo/inactivo */
1328
- IsActive?: boolean;
1558
+ */
1559
+ getBlanksFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1560
+ /**
1561
+ * Obtiene un blank por su ID.
1562
+ */
1563
+ getBlankById(id: number): Promise<ResponseModel<Blank>>;
1564
+ /**
1565
+ * Crea un nuevo blank.
1566
+ */
1567
+ createBlank(request: BlankRequest): Promise<ResponseModel<Blank>>;
1568
+ /**
1569
+ * Actualiza un blank existente.
1570
+ */
1571
+ updateBlank(id: number, request: BlankRequest): Promise<ResponseModel<Blank>>;
1572
+ /**
1573
+ * Alterna el estado activo de un blank.
1574
+ */
1575
+ toggleBlankStatus(id: number): Promise<ResponseModel<Blank>>;
1576
+ /**
1577
+ * Elimina un blank.
1578
+ */
1579
+ deleteBlank(id: number): Promise<ResponseModel<void>>;
1580
+ /**
1581
+ * Obtiene la plantilla para la carga masiva de blanks.
1582
+ */
1583
+ getBlanksBulkTemplate(): Promise<ResponseModel<string>>;
1584
+ /**
1585
+ * Realiza una carga masiva de blanks.
1586
+ */
1587
+ bulkCreateBlanks(request: BulkUploadRequest): Promise<ResponseModel<any>>;
1329
1588
  }
1330
1589
 
1331
1590
  /**
@@ -1446,240 +1705,6 @@ declare class SystemService {
1446
1705
  deleteUIRoute(id: number): Promise<ResponseModel<void>>;
1447
1706
  }
1448
1707
 
1449
- interface AdminUser {
1450
- userId: number;
1451
- username: string;
1452
- firstName: string;
1453
- lastName: string;
1454
- email: string;
1455
- phone: string;
1456
- areaCodeId: number | null;
1457
- birthday: string | null;
1458
- referrerUserId: number | null;
1459
- userReferralCode: string;
1460
- genderId: number | null;
1461
- roleId: number | null;
1462
- userTypeId: number | null;
1463
- isActive: boolean;
1464
- createdAt: string;
1465
- updatedAt: string | null;
1466
- }
1467
- interface AdminAuthentication {
1468
- userAuthenticationId: number;
1469
- userId: number;
1470
- securityLevel: number;
1471
- clientId: string;
1472
- isTwoFactorEnabled: boolean;
1473
- failedLoginAttempts: number;
1474
- lastLogin: string | null;
1475
- isActive: boolean;
1476
- isLocked: boolean;
1477
- emailVerified: boolean;
1478
- phoneVerified: boolean;
1479
- mustChangePassword: boolean;
1480
- passwordLastChanged: string | null;
1481
- passwordExpiresAt: string | null;
1482
- lastLoginIP: string | null;
1483
- lastLoginDevice: string | null;
1484
- lastActivityAt: string | null;
1485
- createdAt: string;
1486
- updatedAt: string | null;
1487
- }
1488
-
1489
- interface UserAdminRequest {
1490
- username: string;
1491
- firstName: string;
1492
- lastName: string;
1493
- email: string;
1494
- phone: string;
1495
- areaCodeId: number;
1496
- birthday: string;
1497
- genderId: number;
1498
- roleId: number;
1499
- userTypeId: number;
1500
- }
1501
-
1502
- interface UserAuthAdminRequest {
1503
- userId: number;
1504
- securityLevel: number;
1505
- clientId: string;
1506
- requireEmailConfirmation?: boolean;
1507
- }
1508
-
1509
- interface ChangePasswordAdminRequest {
1510
- newPassword: string;
1511
- }
1512
-
1513
- interface UserAdminFilter {
1514
- Search?: string;
1515
- Username?: string;
1516
- FirstName?: string;
1517
- LastName?: string;
1518
- Email?: string;
1519
- Phone?: string;
1520
- RoleId?: number;
1521
- UserTypeId?: number;
1522
- IsActive?: boolean;
1523
- }
1524
-
1525
- interface UserAdminUpdateRequest {
1526
- username: string;
1527
- firstName: string;
1528
- lastName: string;
1529
- email: string;
1530
- phone: string;
1531
- areaCodeId: number;
1532
- birthday?: string;
1533
- genderId: number;
1534
- roleId: number;
1535
- userTypeId: number;
1536
- }
1537
-
1538
- interface UserAuthUpdateRequest {
1539
- securityLevel: number;
1540
- clientId: string;
1541
- isTwoFactorEnabled?: boolean;
1542
- emailVerified?: boolean;
1543
- phoneVerified?: boolean;
1544
- }
1545
-
1546
- interface ChangePasswordUserRequest {
1547
- currentPassword: string;
1548
- newPassword: string;
1549
- }
1550
-
1551
- /**
1552
- * Interfaz que representa un rol del sistema.
1553
- */
1554
- interface Role {
1555
- roleId: number;
1556
- role: string;
1557
- key?: string;
1558
- description?: string;
1559
- userTypeId: number;
1560
- isActive: boolean;
1561
- }
1562
- /**
1563
- * Request para crear o actualizar un rol.
1564
- */
1565
- interface RoleRequest {
1566
- role: string;
1567
- userTypeId: number;
1568
- key?: string;
1569
- description?: string;
1570
- isActive?: boolean;
1571
- }
1572
- /**
1573
- * Filtros disponibles para buscar roles.
1574
- */
1575
- interface RolesFilter {
1576
- /** Búsqueda general */
1577
- Search?: string;
1578
- /** Filtro por nombre del rol (búsqueda parcial) */
1579
- Role?: string;
1580
- /** Filtro por descripción (búsqueda parcial) */
1581
- Description?: string;
1582
- /** Filtro por estado activo/inactivo */
1583
- IsActive?: boolean;
1584
- }
1585
- interface RoleUserProfile {
1586
- roleId: number;
1587
- role: string;
1588
- }
1589
-
1590
- interface UserBasicResponse {
1591
- username: string;
1592
- firstName: string;
1593
- lastName: string;
1594
- fullName: string;
1595
- email: string;
1596
- phone: string;
1597
- role: UserRole;
1598
- userType: UserType$1;
1599
- isActive: boolean;
1600
- securityLevel: number;
1601
- }
1602
- interface UserRole {
1603
- roleId: number;
1604
- key: string;
1605
- role: string;
1606
- }
1607
- interface UserType$1 {
1608
- userTypeId: number;
1609
- key: string;
1610
- userType: string;
1611
- }
1612
-
1613
- interface UserDataUpdateRequest {
1614
- username: string;
1615
- firstName: string;
1616
- lastName: string;
1617
- areaCodeId: number;
1618
- phone: string;
1619
- birthday: Date;
1620
- profilePhoto: string;
1621
- }
1622
-
1623
- /**
1624
- * Interfaz que representa un tipo de usuario.
1625
- */
1626
- interface UserType {
1627
- userTypeId: number;
1628
- userType: string;
1629
- key?: string;
1630
- description?: string;
1631
- }
1632
- /**
1633
- * Request para crear o actualizar un tipo de usuario.
1634
- */
1635
- interface UserTypeRequest {
1636
- userType: string;
1637
- key?: string;
1638
- description?: string;
1639
- }
1640
- /**
1641
- * Filtros disponibles para buscar tipos de usuario.
1642
- */
1643
- interface UserTypesFilter {
1644
- /** Búsqueda general */
1645
- Search?: string;
1646
- /** Filtro por tipo de usuario (búsqueda parcial) */
1647
- UserType?: string;
1648
- /** Filtro por key (búsqueda parcial) */
1649
- Key?: string;
1650
- /** Filtro por descripción (búsqueda parcial) */
1651
- Description?: string;
1652
- }
1653
- interface UserTypeUserProfile {
1654
- userTypeId: number;
1655
- userType: string;
1656
- }
1657
-
1658
- interface UserProfileResponse {
1659
- username: string;
1660
- firstName: string;
1661
- lastName: string;
1662
- fullName: string;
1663
- email: string;
1664
- phone: string;
1665
- profilePhoto: string;
1666
- areaCode: AreaCodeUserProfile;
1667
- birthday: Date;
1668
- gender: GenderUserProfile;
1669
- role: RoleUserProfile;
1670
- userType: UserTypeUserProfile;
1671
- userReferralCode: string;
1672
- securityLevel: number;
1673
- emailVerified: boolean;
1674
- phoneVerified: boolean;
1675
- lastLogin: Date;
1676
- mustChangePassword: boolean;
1677
- passwordExpiresAt: Date;
1678
- isActive: boolean;
1679
- createdAt: Date;
1680
- updatedAt: Date;
1681
- }
1682
-
1683
1708
  declare class UserService {
1684
1709
  private api;
1685
1710
  private readonly BASE_PATH;
@@ -1872,4 +1897,4 @@ declare class FalconHUBSDK {
1872
1897
 
1873
1898
  declare function decrypt(encryptedBase64: string, secret: string, timestamp: string): string;
1874
1899
 
1875
- export { API, type AdminAuthentication, type AdminUser, type AreaCode, type AreaCodeRequest, type AreaCodeUserProfile, type AreaCodesFilter, AuthInterceptor, type AuthInterceptorConfig, AuthService, type Blank, type BlankRequest, type BlanksFilter, CatalogService, type ChangePasswordAdminRequest, type ChangePasswordRequest, type ChangePasswordUserRequest, type Color, type ColorRequest, type ColorsFilter, type ConfirmEmailRequest, CryptoService, type Endpoint, type EndpointRequest, type EndpointsFilter, ErrorResponse, FalconHUBSDK, FilterBuilder, type FilterFieldMetadata, type FilterGroup, type FilterGroupOption, type FilterGroupsModel, type FilterMetadataModel, type FilterModel, type Gender, type GenderRequest, type GenderUserProfile, type GendersFilter, type GetSecretKeyRequest, type GetSecretKeyResponse, type HttpMethodType, type InterceptorContext, InventoryService, type InventoryStatus, type InventoryStatusRequest, type InventoryStatusesFilter, type Location, type LocationsFilter, type LocationsRequest, type LoginRequest, type LoginResponse, type Material, type MaterialRequest, type MaterialsFilter, type MethodTypes, type Module, type ModuleRequest, type ModulesFilter, type Packing, type PackingRequest, type PackingsFilter, ProductService, type Provider, type ProviderRequest, type ProvidersFilter, type RefreshTokenRequest, type RefreshTokenResponse, type RequestConfig, type RequestInterceptor, type RequestOptions, type ResponseModel, type Role, type RoleRequest, type RoleUserProfile, type RolesFilter, type SendOtpRequest, type ServiceProperties, type Size, type SizeGroup, type SizeGroupRequest, type SizeGroupsFilter, type SizeRequest, type SizesFilter, SystemService, type TokenData, TokenManager, type UIRoute, type UIRouteRequest, type UIRoutesFilter, type UserAdminFilter, type UserAdminRequest, type UserAdminUpdateRequest, type UserAuthAdminRequest, type UserAuthUpdateRequest, type UserBasicResponse, type UserDataUpdateRequest, type UserProfileResponse, UserService, type UserType, type UserTypeRequest, type UserTypeUserProfile, type UserTypesFilter, type ValidateOtpRequest, type ValidateSessionRenewedResponse, type ValidateSessionResponse, decrypt };
1900
+ export { API, type AdminAuthentication, type AdminUser, type AreaCode, type AreaCodeRequest, type AreaCodeUserProfile, type AreaCodesFilter, AuthInterceptor, type AuthInterceptorConfig, AuthService, BLANKS_BULK_COLUMN_MAP, BLANKS_BULK_SPANISH_HEADERS, type Blank, type BlankRequest, type BlanksBulkItem, type BlanksFilter, type BulkUploadRequest, CatalogService, type ChangePasswordAdminRequest, type ChangePasswordRequest, type ChangePasswordUserRequest, type Color, type ColorRequest, type ColorsFilter, type ConfirmEmailRequest, CryptoService, type Endpoint, type EndpointRequest, type EndpointsFilter, ErrorResponse, FalconHUBSDK, FilterBuilder, type FilterFieldMetadata, type FilterGroup, type FilterGroupOption, type FilterGroupsModel, type FilterMetadataModel, type FilterModel, type Gender, type GenderRequest, type GenderUserProfile, type GendersFilter, type GetSecretKeyRequest, type GetSecretKeyResponse, type HttpMethodType, type InterceptorContext, InventoryService, type InventoryStatus, type InventoryStatusRequest, type InventoryStatusesFilter, type Location, type LocationsFilter, type LocationsRequest, type LoginRequest, type LoginResponse, type Material, type MaterialRequest, type MaterialsFilter, type MethodTypes, type Module, type ModuleRequest, type ModulesFilter, type Packing, type PackingRequest, type PackingsFilter, ProductService, type Provider, type ProviderRequest, type ProvidersFilter, type RefreshTokenRequest, type RefreshTokenResponse, type RequestConfig, type RequestInterceptor, type RequestOptions, type ResponseModel, type Role, type RoleRequest, type RoleUserProfile, type RolesFilter, type SendOtpRequest, type ServiceProperties, type Size, type SizeGroup, type SizeGroupRequest, type SizeGroupsFilter, type SizeRequest, type SizesFilter, SystemService, type TokenData, TokenManager, type UIRoute, type UIRouteRequest, type UIRoutesFilter, type UserAdminFilter, type UserAdminRequest, type UserAdminUpdateRequest, type UserAuthAdminRequest, type UserAuthUpdateRequest, type UserBasicResponse, type UserDataUpdateRequest, type UserProfileResponse, type Role as UserRole, UserService, type UserType, type UserTypeRequest, type UserTypeUserProfile, type UserTypesFilter, type ValidateOtpRequest, type ValidateSessionRenewedResponse, type ValidateSessionResponse, decrypt };