falconhub-apilibrary 1.4.0 → 1.4.1-dev.116

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,848 @@
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
+
827
+ type MethodTypes = "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
828
+ interface RequestOptions {
829
+ endpoint: string;
830
+ method: MethodTypes;
831
+ body?: any;
832
+ requiresAuth: boolean;
833
+ timeStamp?: string;
834
+ isBlob?: boolean;
835
+ }
836
+
837
+ interface ResponseModel<T = any> {
838
+ success: boolean;
839
+ message: string;
840
+ totalItems?: number;
841
+ data: T | null;
842
+ responseTime: string | null;
843
+ headers?: Record<string, string>;
844
+ }
845
+
1
846
  declare class ErrorResponse extends Error {
2
847
  statusCode?: number | undefined;
3
848
  responseData?: any | undefined;
@@ -48,15 +893,6 @@ declare class CryptoService {
48
893
  generateUniqueId(): string;
49
894
  }
50
895
 
51
- type MethodTypes = "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
52
- interface RequestOptions {
53
- endpoint: string;
54
- method: MethodTypes;
55
- body?: any;
56
- requiresAuth: boolean;
57
- timeStamp?: string;
58
- }
59
-
60
896
  interface AuthInterceptorConfig {
61
897
  enabled?: boolean;
62
898
  thresholdMinutes?: number;
@@ -107,15 +943,6 @@ declare class AuthInterceptor implements RequestInterceptor {
107
943
  reset(): void;
108
944
  }
109
945
 
110
- interface ResponseModel<T = any> {
111
- success: boolean;
112
- message: string;
113
- totalItems?: number;
114
- data: T | null;
115
- responseTime: string | null;
116
- headers?: Record<string, string>;
117
- }
118
-
119
946
  /**
120
947
  * Clase base para la ejecución de request HTTP al API
121
948
  */
@@ -134,6 +961,7 @@ declare class API {
134
961
  */
135
962
  private apiExecute;
136
963
  executeGET<T>(endpoint: string, requiresAuth?: boolean): Promise<ResponseModel<T>>;
964
+ executeBlobGET<T = Blob>(endpoint: string, requiresAuth?: boolean): Promise<ResponseModel<T>>;
137
965
  executePOST<T>(endpoint: string, body?: any, requiresAuth?: boolean): Promise<ResponseModel<T>>;
138
966
  executePATCH<T>(endpoint: string, body?: any, requiresAuth?: boolean): Promise<ResponseModel<T>>;
139
967
  executeDELETE<T>(endpoint: string, body?: any, requiresAuth?: boolean): Promise<ResponseModel<T>>;
@@ -217,74 +1045,6 @@ declare class TokenManager {
217
1045
  private stopAutoRefreshTimer;
218
1046
  }
219
1047
 
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
1048
  declare class AuthService {
289
1049
  private api;
290
1050
  private crytpoService;
@@ -328,94 +1088,25 @@ declare class AuthService {
328
1088
  * Envía un código OTP al correo electrónico.
329
1089
  * @param request - Email del usuario
330
1090
  */
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;
1091
+ sendOtp(request: SendOtpRequest): Promise<ResponseModel>;
1092
+ /**
1093
+ * Valida un código OTP.
1094
+ * @param request - Email y código OTP
1095
+ */
1096
+ validateOtp(request: ValidateOtpRequest): Promise<ResponseModel>;
1097
+ /**
1098
+ * Cambia la contraseña del usuario (flujo público, sin sesión).
1099
+ * @param request - Email, contraseña actual y nueva contraseña
1100
+ */
1101
+ changePassword(request: ChangePasswordRequest): Promise<ResponseModel>;
1102
+ /**
1103
+ * Verifica si el usuario está autenticado
1104
+ */
1105
+ isAuthenticated(): boolean;
1106
+ /**
1107
+ * Obtiene los tokens actuales
1108
+ */
1109
+ getTokens(): TokenData | null;
419
1110
  }
420
1111
 
421
1112
  /**
@@ -520,262 +1211,91 @@ interface FilterGroupOption {
520
1211
  * El frontend renderiza cada grupo de forma diferente.
521
1212
  */
522
1213
  interface FilterGroup {
523
- /** Tipo de filtro: "string" | "boolean" | "select" | "date" */
524
- type: 'string' | 'boolean' | 'select' | 'date';
525
- /** Label del grupo */
526
- label: string;
527
- /** Opciones del grupo */
528
- options: FilterGroupOption[];
529
- }
530
- /**
531
- * Modelo retornado por el endpoint /filters (formato array-based).
532
- */
533
- type FilterGroupsModel = FilterGroup[];
534
-
535
- /**
536
- * Servicio para gestionar catálogos públicos.
537
- * No requiere autenticación.
538
- */
539
- declare class CatalogService {
540
- private api;
541
- private readonly BASE_PATH;
542
- constructor(api: API);
543
- /**
544
- * Obtiene todos los géneros con filtros opcionales.
545
- * @param filter - Filtros opcionales para la búsqueda
546
- */
547
- getGenders(filter?: GendersFilter): Promise<ResponseModel<Gender[]>>;
548
- /**
549
- * Obtiene el modelo de filtros disponibles para géneros.
550
- */
551
- getGendersFilters(): Promise<ResponseModel<FilterGroupsModel>>;
552
- /**
553
- * Obtiene un género por su ID.
554
- * @param id - ID del género
555
- */
556
- getGenderById(id: number): Promise<ResponseModel<Gender>>;
557
- /**
558
- * Crea un nuevo género.
559
- * @param request - Datos del género a crear
560
- */
561
- createGender(request: GenderRequest): Promise<ResponseModel<Gender>>;
562
- /**
563
- * Actualiza un género existente.
564
- * @param id - ID del género a actualizar
565
- * @param request - Nuevos datos del género
566
- */
567
- updateGender(id: number, request: GenderRequest): Promise<ResponseModel<Gender>>;
568
- /**
569
- * Elimina un género.
570
- * @param id - ID del género a eliminar
571
- */
572
- deleteGender(id: number): Promise<ResponseModel<void>>;
573
- /**
574
- * Obtiene todos los códigos de área con filtros opcionales.
575
- * @param filter - Filtros opcionales para la búsqueda
576
- */
577
- getAreaCodes(filter?: AreaCodesFilter): Promise<ResponseModel<AreaCode[]>>;
578
- /**
579
- * Obtiene el modelo de filtros disponibles para códigos de área.
580
- */
581
- getAreaCodesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
582
- /**
583
- * Obtiene un código de área por su ID.
584
- * @param id - ID del código de área
585
- */
586
- getAreaCodeById(id: number): Promise<ResponseModel<AreaCode>>;
587
- /**
588
- * 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;
1214
+ /** Tipo de filtro: "string" | "boolean" | "select" | "date" */
1215
+ type: 'string' | 'boolean' | 'select' | 'date';
1216
+ /** Label del grupo */
1217
+ label: string;
1218
+ /** Opciones del grupo */
1219
+ options: FilterGroupOption[];
760
1220
  }
761
1221
  /**
762
- * Request para crear o actualizar un proveedor.
1222
+ * Modelo retornado por el endpoint /filters (formato array-based).
763
1223
  */
764
- interface ProviderRequest {
765
- provider: string;
766
- contactName: string;
767
- areaCodeId: number;
768
- contactNumber: string;
769
- contactEmail: string;
770
- isActive: boolean;
771
- }
1224
+ type FilterGroupsModel = FilterGroup[];
1225
+
772
1226
  /**
773
- * Filtros disponibles para buscar proveedores.
1227
+ * Servicio para gestionar catálogos públicos.
1228
+ * No requiere autenticación.
774
1229
  */
775
- interface ProvidersFilter {
776
- Search?: string;
777
- Provider?: string;
778
- IsActive?: boolean;
1230
+ declare class CatalogService {
1231
+ private api;
1232
+ private readonly BASE_PATH;
1233
+ constructor(api: API);
1234
+ /**
1235
+ * Obtiene todos los géneros con filtros opcionales.
1236
+ * @param filter - Filtros opcionales para la búsqueda
1237
+ */
1238
+ getGenders(filter?: GendersFilter): Promise<ResponseModel<Gender[]>>;
1239
+ /**
1240
+ * Obtiene el modelo de filtros disponibles para géneros.
1241
+ */
1242
+ getGendersFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1243
+ /**
1244
+ * Obtiene un género por su ID.
1245
+ * @param id - ID del género
1246
+ */
1247
+ getGenderById(id: number): Promise<ResponseModel<Gender>>;
1248
+ /**
1249
+ * Crea un nuevo género.
1250
+ * @param request - Datos del género a crear
1251
+ */
1252
+ createGender(request: GenderRequest): Promise<ResponseModel<Gender>>;
1253
+ /**
1254
+ * Actualiza un género existente.
1255
+ * @param id - ID del género a actualizar
1256
+ * @param request - Nuevos datos del género
1257
+ */
1258
+ updateGender(id: number, request: GenderRequest): Promise<ResponseModel<Gender>>;
1259
+ /**
1260
+ * Elimina un género.
1261
+ * @param id - ID del género a eliminar
1262
+ */
1263
+ deleteGender(id: number): Promise<ResponseModel<void>>;
1264
+ /**
1265
+ * Obtiene todos los códigos de área con filtros opcionales.
1266
+ * @param filter - Filtros opcionales para la búsqueda
1267
+ */
1268
+ getAreaCodes(filter?: AreaCodesFilter): Promise<ResponseModel<AreaCode[]>>;
1269
+ /**
1270
+ * Obtiene el modelo de filtros disponibles para códigos de área.
1271
+ */
1272
+ getAreaCodesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1273
+ /**
1274
+ * Obtiene un código de área por su ID.
1275
+ * @param id - ID del código de área
1276
+ */
1277
+ getAreaCodeById(id: number): Promise<ResponseModel<AreaCode>>;
1278
+ /**
1279
+ * Crea un nuevo código de área.
1280
+ * @param request - Datos del código de área a crear
1281
+ */
1282
+ createAreaCode(request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
1283
+ /**
1284
+ * Actualiza un código de área existente.
1285
+ * @param id - ID del código de área a actualizar
1286
+ * @param request - Nuevos datos del código de área
1287
+ */
1288
+ updateAreaCode(id: number, request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
1289
+ /**
1290
+ * Activa o desactiva un código de área.
1291
+ * @param id - ID del código de área
1292
+ */
1293
+ toggleAreaCodeStatus(id: number): Promise<ResponseModel<AreaCode>>;
1294
+ /**
1295
+ * Elimina un código de área.
1296
+ * @param id - ID del código de área a eliminar
1297
+ */
1298
+ deleteAreaCode(id: number): Promise<ResponseModel<void>>;
779
1299
  }
780
1300
 
781
1301
  /**
@@ -953,135 +1473,120 @@ declare class InventoryService {
953
1473
  }
954
1474
 
955
1475
  /**
956
- * Interfaz que representa un módulo del sistema.
957
- */
958
- interface Module {
959
- moduleId: number;
960
- module: string;
961
- description: string;
962
- isActive: boolean;
963
- }
964
- /**
965
- * Request para crear o actualizar un módulo.
966
- */
967
- interface ModuleRequest {
968
- module: string;
969
- description: string;
970
- isActive?: boolean;
971
- }
972
- /**
973
- * Filtros disponibles para buscar módulos.
974
- * Todos los campos son opcionales.
975
- */
976
- interface ModulesFilter {
977
- /** Búsqueda general (busca en Module y Description) */
978
- Search?: string;
979
- /** Filtro por nombre del módulo (búsqueda parcial) */
980
- Module?: string;
981
- /** Filtro por descripción (búsqueda parcial) */
982
- Description?: string;
983
- /** Filtro por estado activo/inactivo */
984
- IsActive?: boolean;
985
- }
986
-
987
- /**
988
- * Interfaz que representa un endpoint del sistema.
989
- */
990
- interface Endpoint {
991
- endpointId: number;
992
- endpoint: string;
993
- httpMethod: string;
994
- path: string;
995
- description: string;
996
- requiresAuth: boolean;
997
- requiresPermission: boolean | null;
998
- requiresSignature: boolean;
999
- requiresHeader: boolean;
1000
- allowedOrigins: string;
1001
- isActive: boolean;
1002
- }
1003
- /**
1004
- * Request para crear o actualizar un endpoint.
1005
- */
1006
- interface EndpointRequest {
1007
- endpoint: string;
1008
- httpMethod: string;
1009
- path: string;
1010
- description: string;
1011
- requiresAuth?: boolean;
1012
- requiresPermission?: boolean;
1013
- requiresSignature?: boolean;
1014
- requiresHeader?: boolean;
1015
- allowedOrigins?: string[];
1016
- isActive?: boolean;
1017
- }
1018
- /**
1019
- * Métodos HTTP disponibles para endpoints.
1020
- */
1021
- type HttpMethodType = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
1022
- /**
1023
- * Filtros disponibles para buscar endpoints.
1024
- * Todos los campos son opcionales.
1025
- */
1026
- interface EndpointsFilter {
1027
- /** Búsqueda general (busca en Endpoint, Path y Description) */
1028
- Search?: string;
1029
- /** Filtro por nombre del endpoint (búsqueda parcial) */
1030
- Endpoint?: string;
1031
- /** Filtro por método HTTP (GET, POST, PUT, DELETE, PATCH) */
1032
- HttpMethod?: HttpMethodType;
1033
- /** Filtro por módulo (primer segmento del path, búsqueda parcial) */
1034
- Module?: string;
1035
- /** Filtro por path (búsqueda parcial) */
1036
- Path?: string;
1037
- /** Filtro por descripción (búsqueda parcial) */
1038
- Description?: string;
1039
- /** Filtro por endpoints que requieren autenticación */
1040
- RequiresAuth?: boolean;
1041
- /** Filtro por endpoints que requieren validación de permisos */
1042
- RequiresPermission?: boolean;
1043
- /** Filtro por endpoints que requieren firma */
1044
- RequiresSignature?: boolean;
1045
- /** Filtro por endpoints que requieren header específico */
1046
- RequiresHeader?: boolean;
1047
- /** Filtro por estado activo/inactivo */
1048
- IsActive?: boolean;
1049
- }
1050
-
1051
- /**
1052
- * Interfaz que representa una ruta de UI del sistema.
1053
- */
1054
- interface UIRoute {
1055
- uiRouteId: number;
1056
- uiRoute: string;
1057
- path: string;
1058
- description: string;
1059
- isActive: boolean;
1060
- }
1061
- /**
1062
- * Request para crear o actualizar una ruta de UI.
1063
- */
1064
- interface UIRouteRequest {
1065
- uiRoute: string;
1066
- path: string;
1067
- description: string;
1068
- isActive?: boolean;
1069
- }
1070
- /**
1071
- * Filtros disponibles para buscar rutas de UI.
1072
- * Todos los campos son opcionales.
1476
+ * Servicio para gestionar entidades relacionadas a Productos (Blanks, Colors, Sizes, SizeGroups, etc.)
1073
1477
  */
1074
- interface UIRoutesFilter {
1075
- /** Búsqueda general (busca en UIRoute, Path y Description) */
1076
- Search?: string;
1077
- /** Filtro por nombre de la ruta (búsqueda parcial) */
1078
- UIRoute?: string;
1079
- /** Filtro por path (búsqueda parcial) */
1080
- Path?: string;
1081
- /** Filtro por descripción (búsqueda parcial) */
1082
- Description?: string;
1083
- /** Filtro por estado activo/inactivo */
1084
- IsActive?: boolean;
1478
+ declare class ProductService {
1479
+ private api;
1480
+ private readonly BASE_PATH;
1481
+ constructor(api: API);
1482
+ /**
1483
+ * Obtiene todos los colores con filtros opcionales.
1484
+ */
1485
+ getColors(filter?: ColorsFilter): Promise<ResponseModel<Color[]>>;
1486
+ /**
1487
+ * Obtiene el modelo de filtros disponibles para colores.
1488
+ */
1489
+ getColorsFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1490
+ /**
1491
+ * Obtiene un color por su ID.
1492
+ */
1493
+ getColorById(id: number): Promise<ResponseModel<Color>>;
1494
+ /**
1495
+ * Crea un nuevo color.
1496
+ */
1497
+ createColor(request: ColorRequest): Promise<ResponseModel<Color>>;
1498
+ /**
1499
+ * Actualiza un color existente.
1500
+ */
1501
+ updateColor(id: number, request: ColorRequest): Promise<ResponseModel<Color>>;
1502
+ /**
1503
+ * Elimina un color.
1504
+ */
1505
+ deleteColor(id: number): Promise<ResponseModel<void>>;
1506
+ /**
1507
+ * Obtiene todos los grupos de tallas con filtros opcionales.
1508
+ */
1509
+ getSizeGroups(filter?: SizeGroupsFilter): Promise<ResponseModel<SizeGroup[]>>;
1510
+ /**
1511
+ * Obtiene el modelo de filtros disponibles para grupos de tallas.
1512
+ */
1513
+ getSizeGroupsFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1514
+ /**
1515
+ * Obtiene un grupo de tallas por su ID.
1516
+ */
1517
+ getSizeGroupById(id: number): Promise<ResponseModel<SizeGroup>>;
1518
+ /**
1519
+ * Crea un nuevo grupo de tallas.
1520
+ */
1521
+ createSizeGroup(request: SizeGroupRequest): Promise<ResponseModel<SizeGroup>>;
1522
+ /**
1523
+ * Actualiza un grupo de tallas existente.
1524
+ */
1525
+ updateSizeGroup(id: number, request: SizeGroupRequest): Promise<ResponseModel<SizeGroup>>;
1526
+ /**
1527
+ * Elimina un grupo de tallas.
1528
+ */
1529
+ deleteSizeGroup(id: number): Promise<ResponseModel<void>>;
1530
+ /**
1531
+ * Obtiene todas las tallas con filtros opcionales.
1532
+ */
1533
+ getSizes(filter?: SizesFilter): Promise<ResponseModel<Size[]>>;
1534
+ /**
1535
+ * Obtiene el modelo de filtros disponibles para tallas.
1536
+ */
1537
+ getSizesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1538
+ /**
1539
+ * Obtiene una talla por su ID.
1540
+ */
1541
+ getSizeById(id: number): Promise<ResponseModel<Size>>;
1542
+ /**
1543
+ * Crea una nueva talla.
1544
+ */
1545
+ createSize(request: SizeRequest): Promise<ResponseModel<Size>>;
1546
+ /**
1547
+ * Actualiza una talla existente.
1548
+ */
1549
+ updateSize(id: number, request: SizeRequest): Promise<ResponseModel<Size>>;
1550
+ /**
1551
+ * Elimina una talla.
1552
+ */
1553
+ deleteSize(id: number): Promise<ResponseModel<void>>;
1554
+ /**
1555
+ * Obtiene todos los blanks con filtros opcionales.
1556
+ */
1557
+ getBlanks(filter?: BlanksFilter): Promise<ResponseModel<Blank[]>>;
1558
+ /**
1559
+ * Obtiene el modelo de filtros disponibles para blanks.
1560
+ */
1561
+ getBlanksFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1562
+ /**
1563
+ * Obtiene un blank por su ID.
1564
+ */
1565
+ getBlankById(id: number): Promise<ResponseModel<Blank>>;
1566
+ /**
1567
+ * Crea un nuevo blank.
1568
+ */
1569
+ createBlank(request: BlankRequest): Promise<ResponseModel<Blank>>;
1570
+ /**
1571
+ * Actualiza un blank existente.
1572
+ */
1573
+ updateBlank(id: number, request: BlankRequest): Promise<ResponseModel<Blank>>;
1574
+ /**
1575
+ * Alterna el estado activo de un blank.
1576
+ */
1577
+ toggleBlankStatus(id: number): Promise<ResponseModel<Blank>>;
1578
+ /**
1579
+ * Elimina un blank.
1580
+ */
1581
+ deleteBlank(id: number): Promise<ResponseModel<void>>;
1582
+ /**
1583
+ * Obtiene la plantilla para la carga masiva de blanks.
1584
+ */
1585
+ getBlanksBulkTemplate(): Promise<ResponseModel<Blob>>;
1586
+ /**
1587
+ * Realiza una carga masiva de blanks.
1588
+ */
1589
+ bulkCreateBlanks(request: BulkUploadRequest): Promise<ResponseModel<any>>;
1085
1590
  }
1086
1591
 
1087
1592
  /**
@@ -1202,240 +1707,6 @@ declare class SystemService {
1202
1707
  deleteUIRoute(id: number): Promise<ResponseModel<void>>;
1203
1708
  }
1204
1709
 
1205
- interface AdminUser {
1206
- userId: number;
1207
- username: string;
1208
- firstName: string;
1209
- lastName: string;
1210
- email: string;
1211
- phone: string;
1212
- areaCodeId: number | null;
1213
- birthday: string | null;
1214
- referrerUserId: number | null;
1215
- userReferralCode: string;
1216
- genderId: number | null;
1217
- roleId: number | null;
1218
- userTypeId: number | null;
1219
- isActive: boolean;
1220
- createdAt: string;
1221
- updatedAt: string | null;
1222
- }
1223
- interface AdminAuthentication {
1224
- userAuthenticationId: number;
1225
- userId: number;
1226
- securityLevel: number;
1227
- clientId: string;
1228
- isTwoFactorEnabled: boolean;
1229
- failedLoginAttempts: number;
1230
- lastLogin: string | null;
1231
- isActive: boolean;
1232
- isLocked: boolean;
1233
- emailVerified: boolean;
1234
- phoneVerified: boolean;
1235
- mustChangePassword: boolean;
1236
- passwordLastChanged: string | null;
1237
- passwordExpiresAt: string | null;
1238
- lastLoginIP: string | null;
1239
- lastLoginDevice: string | null;
1240
- lastActivityAt: string | null;
1241
- createdAt: string;
1242
- updatedAt: string | null;
1243
- }
1244
-
1245
- interface UserAdminRequest {
1246
- username: string;
1247
- firstName: string;
1248
- lastName: string;
1249
- email: string;
1250
- phone: string;
1251
- areaCodeId: number;
1252
- birthday: string;
1253
- genderId: number;
1254
- roleId: number;
1255
- userTypeId: number;
1256
- }
1257
-
1258
- interface UserAuthAdminRequest {
1259
- userId: number;
1260
- securityLevel: number;
1261
- clientId: string;
1262
- requireEmailConfirmation?: boolean;
1263
- }
1264
-
1265
- interface ChangePasswordAdminRequest {
1266
- newPassword: string;
1267
- }
1268
-
1269
- interface UserAdminFilter {
1270
- Search?: string;
1271
- Username?: string;
1272
- FirstName?: string;
1273
- LastName?: string;
1274
- Email?: string;
1275
- Phone?: string;
1276
- RoleId?: number;
1277
- UserTypeId?: number;
1278
- IsActive?: boolean;
1279
- }
1280
-
1281
- interface UserAdminUpdateRequest {
1282
- username: string;
1283
- firstName: string;
1284
- lastName: string;
1285
- email: string;
1286
- phone: string;
1287
- areaCodeId: number;
1288
- birthday?: string;
1289
- genderId: number;
1290
- roleId: number;
1291
- userTypeId: number;
1292
- }
1293
-
1294
- interface UserAuthUpdateRequest {
1295
- securityLevel: number;
1296
- clientId: string;
1297
- isTwoFactorEnabled?: boolean;
1298
- emailVerified?: boolean;
1299
- phoneVerified?: boolean;
1300
- }
1301
-
1302
- interface ChangePasswordUserRequest {
1303
- currentPassword: string;
1304
- newPassword: string;
1305
- }
1306
-
1307
- /**
1308
- * Interfaz que representa un rol del sistema.
1309
- */
1310
- interface Role {
1311
- roleId: number;
1312
- role: string;
1313
- key?: string;
1314
- description?: string;
1315
- userTypeId: number;
1316
- isActive: boolean;
1317
- }
1318
- /**
1319
- * Request para crear o actualizar un rol.
1320
- */
1321
- interface RoleRequest {
1322
- role: string;
1323
- userTypeId: number;
1324
- key?: string;
1325
- description?: string;
1326
- isActive?: boolean;
1327
- }
1328
- /**
1329
- * Filtros disponibles para buscar roles.
1330
- */
1331
- interface RolesFilter {
1332
- /** Búsqueda general */
1333
- Search?: string;
1334
- /** Filtro por nombre del rol (búsqueda parcial) */
1335
- Role?: string;
1336
- /** Filtro por descripción (búsqueda parcial) */
1337
- Description?: string;
1338
- /** Filtro por estado activo/inactivo */
1339
- IsActive?: boolean;
1340
- }
1341
- interface RoleUserProfile {
1342
- roleId: number;
1343
- role: string;
1344
- }
1345
-
1346
- interface UserBasicResponse {
1347
- username: string;
1348
- firstName: string;
1349
- lastName: string;
1350
- fullName: string;
1351
- email: string;
1352
- phone: string;
1353
- role: UserRole;
1354
- userType: UserType$1;
1355
- isActive: boolean;
1356
- securityLevel: number;
1357
- }
1358
- interface UserRole {
1359
- roleId: number;
1360
- key: string;
1361
- role: string;
1362
- }
1363
- interface UserType$1 {
1364
- userTypeId: number;
1365
- key: string;
1366
- userType: string;
1367
- }
1368
-
1369
- interface UserDataUpdateRequest {
1370
- username: string;
1371
- firstName: string;
1372
- lastName: string;
1373
- areaCodeId: number;
1374
- phone: string;
1375
- birthday: Date;
1376
- profilePhoto: string;
1377
- }
1378
-
1379
- /**
1380
- * Interfaz que representa un tipo de usuario.
1381
- */
1382
- interface UserType {
1383
- userTypeId: number;
1384
- userType: string;
1385
- key?: string;
1386
- description?: string;
1387
- }
1388
- /**
1389
- * Request para crear o actualizar un tipo de usuario.
1390
- */
1391
- interface UserTypeRequest {
1392
- userType: string;
1393
- key?: string;
1394
- description?: string;
1395
- }
1396
- /**
1397
- * Filtros disponibles para buscar tipos de usuario.
1398
- */
1399
- interface UserTypesFilter {
1400
- /** Búsqueda general */
1401
- Search?: string;
1402
- /** Filtro por tipo de usuario (búsqueda parcial) */
1403
- UserType?: string;
1404
- /** Filtro por key (búsqueda parcial) */
1405
- Key?: string;
1406
- /** Filtro por descripción (búsqueda parcial) */
1407
- Description?: string;
1408
- }
1409
- interface UserTypeUserProfile {
1410
- userTypeId: number;
1411
- userType: string;
1412
- }
1413
-
1414
- interface UserProfileResponse {
1415
- username: string;
1416
- firstName: string;
1417
- lastName: string;
1418
- fullName: string;
1419
- email: string;
1420
- phone: string;
1421
- profilePhoto: string;
1422
- areaCode: AreaCodeUserProfile;
1423
- birthday: Date;
1424
- gender: GenderUserProfile;
1425
- role: RoleUserProfile;
1426
- userType: UserTypeUserProfile;
1427
- userReferralCode: string;
1428
- securityLevel: number;
1429
- emailVerified: boolean;
1430
- phoneVerified: boolean;
1431
- lastLogin: Date;
1432
- mustChangePassword: boolean;
1433
- passwordExpiresAt: Date;
1434
- isActive: boolean;
1435
- createdAt: Date;
1436
- updatedAt: Date;
1437
- }
1438
-
1439
1710
  declare class UserService {
1440
1711
  private api;
1441
1712
  private readonly BASE_PATH;
@@ -1509,6 +1780,11 @@ declare class UserService {
1509
1780
  * @param id - ID del administrador
1510
1781
  */
1511
1782
  deleteAdmin(id: number): Promise<ResponseModel>;
1783
+ /**
1784
+ * Reenvía el correo de confirmación al usuario.
1785
+ * @param id - ID del usuario
1786
+ */
1787
+ resendEmailConfirmation(id: number): Promise<ResponseModel>;
1512
1788
  /**
1513
1789
  * Obtiene todos los tipos de usuario con filtros opcionales.
1514
1790
  * @param filter - Filtros opcionales para la búsqueda
@@ -1590,6 +1866,7 @@ declare class FalconHUBSDK {
1590
1866
  system: SystemService;
1591
1867
  inventory: InventoryService;
1592
1868
  catalog: CatalogService;
1869
+ product: ProductService;
1593
1870
  private serviceProperties;
1594
1871
  private cryptoService;
1595
1872
  private tokenManager;
@@ -1622,4 +1899,4 @@ declare class FalconHUBSDK {
1622
1899
 
1623
1900
  declare function decrypt(encryptedBase64: string, secret: string, timestamp: string): string;
1624
1901
 
1625
- export { API, type AdminAuthentication, type AdminUser, type AreaCode, type AreaCodeRequest, type AreaCodeUserProfile, type AreaCodesFilter, AuthInterceptor, type AuthInterceptorConfig, AuthService, CatalogService, type ChangePasswordAdminRequest, type ChangePasswordRequest, type ChangePasswordUserRequest, 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, 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, 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 };
1902
+ 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 };