falconhub-apilibrary 1.3.0-dev.84 → 1.3.1-dev.100

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
@@ -217,6 +217,25 @@ declare class TokenManager {
217
217
  private stopAutoRefreshTimer;
218
218
  }
219
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
+
220
239
  interface LoginRequest {
221
240
  email: string;
222
241
  password: string;
@@ -244,6 +263,15 @@ interface RefreshTokenResponse {
244
263
  type: string;
245
264
  }
246
265
 
266
+ interface SendOtpRequest {
267
+ email: string;
268
+ }
269
+
270
+ interface ValidateOtpRequest {
271
+ email: string;
272
+ otp: string;
273
+ }
274
+
247
275
  interface ValidateSessionRenewedResponse {
248
276
  accessToken: string;
249
277
  refreshToken: string;
@@ -257,26 +285,6 @@ interface ValidateSessionResponse {
257
285
  isRemembered: boolean;
258
286
  }
259
287
 
260
- interface ConfirmEmailRequest {
261
- email: string;
262
- expiresAt: number;
263
- }
264
-
265
- interface SendOtpRequest {
266
- email: string;
267
- }
268
-
269
- interface ValidateOtpRequest {
270
- email: string;
271
- otp: string;
272
- }
273
-
274
- interface ChangePasswordRequest {
275
- email: string;
276
- oldPassword: string;
277
- newPassword: string;
278
- }
279
-
280
288
  declare class AuthService {
281
289
  private api;
282
290
  private crytpoService;
@@ -305,6 +313,12 @@ declare class AuthService {
305
313
  * Cierra sesión: notifica al servidor y limpia tokens
306
314
  */
307
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>>;
308
322
  /**
309
323
  * Confirma el correo electrónico de un usuario.
310
324
  * @param request - Email y expiresAt
@@ -335,231 +349,71 @@ declare class AuthService {
335
349
  getTokens(): TokenData | null;
336
350
  }
337
351
 
338
- interface AreaCodeUserProfile {
339
- areaCodeId: number;
340
- countryCode: string;
341
- country: string;
342
- }
343
-
344
- interface GenderUserProfile {
345
- genderId: number;
352
+ /**
353
+ * Interfaz que representa un género del catálogo.
354
+ */
355
+ interface Gender {
346
356
  gender: string;
357
+ key: string;
347
358
  }
348
-
349
- interface RoleUserProfile {
350
- roleId: number;
351
- role: string;
352
- }
353
-
354
- interface UserTypeUserProfile {
355
- userTypeId: number;
356
- userType: string;
357
- }
358
-
359
- interface UserProfileResponse {
360
- userId: number;
361
- username: string;
362
- firstName: string;
363
- lastName: string;
364
- fullName: string;
365
- email: string;
366
- phone: string;
367
- profilePhoto: string;
368
- areaCode: AreaCodeUserProfile;
369
- birthday: Date;
370
- gender: GenderUserProfile;
371
- role: RoleUserProfile;
372
- userType: UserTypeUserProfile;
373
- userReferralCode: string;
374
- securityLevel: number;
375
- emailVerified: boolean;
376
- phoneVerified: boolean;
377
- lastLogin: Date;
378
- mustChangePassword: boolean;
379
- passwordExpiresAt: Date;
380
- isActive: boolean;
381
- createdAt: Date;
382
- updatedAt: Date;
383
- }
384
-
385
- interface UserBasicResponse {
386
- userId: number;
387
- username: string;
388
- firstName: string;
389
- lastName: string;
390
- fullName: string;
391
- email: string;
392
- phone: string;
393
- role: string;
394
- roleId: number;
395
- userType: number;
396
- userTypeId: number;
397
- isActive: boolean;
398
- securityLevel: number;
399
- }
400
-
401
- interface AdminUser {
402
- userId: number;
403
- username: string;
404
- firstName: string;
405
- lastName: string;
406
- email: string;
407
- phone: string;
408
- areaCodeId: number | null;
409
- birthday: string | null;
410
- referrerUserId: number | null;
411
- userReferralCode: string;
412
- genderId: number | null;
413
- roleId: number | null;
414
- userTypeId: number | null;
415
- isActive: boolean;
416
- createdAt: string;
417
- updatedAt: string | null;
418
- deleted: boolean;
419
- }
420
- interface AdminAuthentication {
421
- userAuthenticationId: number;
422
- userId: number;
423
- securityLevel: number;
424
- clientId: string;
425
- isTwoFactorEnabled: boolean;
426
- failedLoginAttempts: number;
427
- lastLogin: string | null;
428
- isActive: boolean;
429
- isLocked: boolean;
430
- emailVerified: boolean;
431
- phoneVerified: boolean;
432
- mustChangePassword: boolean;
433
- passwordLastChanged: string | null;
434
- passwordExpiresAt: string | null;
435
- lastLoginIP: string | null;
436
- lastLoginDevice: string | null;
437
- lastActivityAt: string | null;
438
- createdAt: string;
439
- updatedAt: string | null;
440
- }
441
-
442
- interface UserAdminRequest {
443
- username: string;
444
- firstName: string;
445
- lastName: string;
446
- email: string;
447
- phone: string;
448
- areaCodeId: number;
449
- birthday: string;
450
- genderId: number;
451
- roleId: number;
452
- userTypeId: number;
453
- }
454
-
455
- interface UserAuthAdminRequest {
456
- userId: number;
457
- securityLevel: number;
458
- clientId: string;
459
- requireEmailConfirmation?: boolean;
460
- }
461
-
462
- interface ChangePasswordAdminRequest {
463
- newPassword: string;
359
+ /**
360
+ * Request para crear o actualizar un género.
361
+ */
362
+ interface GenderRequest {
363
+ gender: string;
364
+ key?: string;
464
365
  }
465
-
466
- interface UserAdminFilter {
366
+ /**
367
+ * Filtros disponibles para buscar géneros.
368
+ */
369
+ interface GendersFilter {
370
+ /** Búsqueda general */
467
371
  Search?: string;
468
- Username?: string;
469
- FirstName?: string;
470
- LastName?: string;
471
- Email?: string;
472
- Phone?: string;
473
- RoleId?: number;
474
- UserTypeId?: number;
475
- IsActive?: boolean;
372
+ /** Filtro por nombre del género (búsqueda parcial) */
373
+ Gender?: string;
476
374
  }
477
-
478
- interface UserAdminUpdateRequest {
479
- username: string;
480
- firstName: string;
481
- lastName: string;
482
- email: string;
483
- phone: string;
484
- areaCodeId: number;
485
- birthday?: string;
375
+ interface GenderUserProfile {
486
376
  genderId: number;
487
- roleId: number;
488
- userTypeId: number;
489
- }
490
-
491
- interface UserAuthUpdateRequest {
492
- securityLevel: number;
493
- clientId: string;
494
- isTwoFactorEnabled?: boolean;
495
- emailVerified?: boolean;
496
- phoneVerified?: boolean;
377
+ gender: string;
497
378
  }
498
379
 
499
380
  /**
500
- * Interfaz que representa un tipo de usuario.
381
+ * Interfaz que representa un código de área del catálogo.
501
382
  */
502
- interface UserType {
503
- userTypeId: number;
504
- userType: string;
505
- description: string;
506
- createdAt: string;
507
- updatedAt: string | null;
508
- deleted: boolean;
383
+ interface AreaCode {
384
+ countryCode: string;
385
+ iso: string;
386
+ countryName: string;
387
+ isActive: boolean;
509
388
  }
510
389
  /**
511
- * Request para crear o actualizar un tipo de usuario.
390
+ * Request para crear o actualizar un código de área.
512
391
  */
513
- interface UserTypeRequest {
514
- userType: string;
515
- description: string;
392
+ interface AreaCodeRequest {
393
+ countryCode: string;
394
+ iso: string;
395
+ countryName: string;
396
+ isActive: boolean;
516
397
  }
517
398
  /**
518
- * Filtros disponibles para buscar tipos de usuario.
399
+ * Filtros disponibles para buscar códigos de área.
519
400
  */
520
- interface UserTypesFilter {
401
+ interface AreaCodesFilter {
521
402
  /** Búsqueda general */
522
403
  Search?: string;
523
- /** Filtro por tipo de usuario (búsqueda parcial) */
524
- UserType?: string;
525
- /** Filtro por descripción (búsqueda parcial) */
526
- Description?: string;
404
+ /** Filtro por código de país (búsqueda parcial) */
405
+ CountryCode?: string;
406
+ /** Filtro por ISO (búsqueda parcial) */
407
+ ISO?: string;
408
+ /** Filtro por nombre de país (búsqueda parcial) */
409
+ CountryName?: string;
410
+ /** Filtro por estado activo/inactivo */
411
+ IsActive?: boolean;
527
412
  }
528
-
529
- /**
530
- * Interfaz que representa un rol del sistema.
531
- */
532
- interface Role {
533
- roleId: number;
534
- userTypeId: number | null;
535
- role: string;
536
- description: string;
537
- isActive: boolean;
538
- createdAt: string;
539
- updatedAt: string | null;
540
- deleted: boolean;
541
- }
542
- /**
543
- * Request para crear o actualizar un rol.
544
- */
545
- interface RoleRequest {
546
- userTypeId?: number;
547
- role: string;
548
- description: string;
549
- isActive?: boolean;
550
- }
551
- /**
552
- * Filtros disponibles para buscar roles.
553
- */
554
- interface RolesFilter {
555
- /** Búsqueda general */
556
- Search?: string;
557
- /** Filtro por nombre del rol (búsqueda parcial) */
558
- Role?: string;
559
- /** Filtro por descripción (búsqueda parcial) */
560
- Description?: string;
561
- /** Filtro por estado activo/inactivo */
562
- IsActive?: boolean;
413
+ interface AreaCodeUserProfile {
414
+ areaCodeId: number;
415
+ countryCode: string;
416
+ country: string;
563
417
  }
564
418
 
565
419
  /**
@@ -676,1734 +530,1037 @@ interface FilterGroup {
676
530
  */
677
531
  type FilterGroupsModel = FilterGroup[];
678
532
 
679
- interface ChangePasswordUserRequest {
680
- currentPassword: string;
681
- newPassword: string;
682
- }
683
-
684
- interface UserDataUpdateRequest {
685
- username: string;
686
- firstName: string;
687
- lastName: string;
688
- phone: string;
689
- birthday: string;
690
- profilePhoto: string;
691
- }
692
-
693
- declare class UserService {
533
+ /**
534
+ * Servicio para gestionar catálogos públicos.
535
+ * No requiere autenticación.
536
+ */
537
+ declare class CatalogService {
694
538
  private api;
695
539
  private readonly BASE_PATH;
696
540
  constructor(api: API);
697
- me(): Promise<ResponseModel<UserBasicResponse>>;
698
- profile(): Promise<ResponseModel<UserProfileResponse>>;
699
- changePasswordUser(request: ChangePasswordUserRequest): Promise<ResponseModel>;
700
- updateUserData(request: UserDataUpdateRequest): Promise<ResponseModel>;
701
- /**
702
- * Crea un nuevo usuario administrador.
703
- * @param request - Datos del nuevo administrador
704
- */
705
- newAdminUser(request: UserAdminRequest): Promise<ResponseModel<AdminUser>>;
706
- /**
707
- * Crea la autenticación para un usuario.
708
- * @param request - Datos de autenticación del usuario
709
- */
710
- createUserAuthentication(request: UserAuthAdminRequest): Promise<ResponseModel<AdminAuthentication>>;
711
- /**
712
- * Cambia la contraseña de un administrador.
713
- * @param id - ID del usuario
714
- * @param request - Nueva contraseña
715
- */
716
- changePasswordAdmin(id: number, request: ChangePasswordAdminRequest): Promise<ResponseModel>;
717
- /**
718
- * Obtiene todos los administradores con filtros opcionales.
719
- * @param filter - Filtros opcionales para la búsqueda
720
- */
721
- getAllAdmins(filter?: UserAdminFilter): Promise<ResponseModel<AdminUser[]>>;
722
- /**
723
- * Obtiene el modelo de filtros disponibles para administradores.
724
- */
725
- getAdminFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
726
- /**
727
- * Obtiene un administrador por su ID.
728
- * @param id - ID del administrador
729
- */
730
- getAdminById(id: number): Promise<ResponseModel<AdminUser>>;
731
- /**
732
- * Obtiene la autenticación de un administrador.
733
- * @param id - ID del usuario
734
- */
735
- getAdminAuthentication(id: number): Promise<ResponseModel<AdminAuthentication>>;
736
- /**
737
- * Actualiza un administrador existente.
738
- * @param id - ID del administrador
739
- * @param request - Nuevos datos del administrador
740
- */
741
- updateAdmin(id: number, request: UserAdminUpdateRequest): Promise<ResponseModel<AdminUser>>;
742
- /**
743
- * Activa o desactiva un administrador.
744
- * @param id - ID del administrador
745
- */
746
- toggleAdminStatus(id: number): Promise<ResponseModel<AdminUser>>;
747
- /**
748
- * Actualiza la autenticación de un administrador.
749
- * @param id - ID del usuario
750
- * @param request - Nuevos datos de autenticación
751
- */
752
- updateAdminAuthentication(id: number, request: UserAuthUpdateRequest): Promise<ResponseModel<AdminAuthentication>>;
753
541
  /**
754
- * Obtiene todos los tipos de usuario con filtros opcionales.
542
+ * Obtiene todos los géneros con filtros opcionales.
755
543
  * @param filter - Filtros opcionales para la búsqueda
756
544
  */
757
- getUserTypes(filter?: UserTypesFilter): Promise<ResponseModel<UserType[]>>;
545
+ getGenders(filter?: GendersFilter): Promise<ResponseModel<Gender[]>>;
758
546
  /**
759
- * Obtiene el modelo de filtros disponibles para tipos de usuario.
547
+ * Obtiene el modelo de filtros disponibles para géneros.
760
548
  */
761
- getUserTypesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
549
+ getGendersFilters(): Promise<ResponseModel<FilterGroupsModel>>;
762
550
  /**
763
- * Obtiene un tipo de usuario por su ID.
764
- * @param id - ID del tipo de usuario
551
+ * Obtiene un género por su ID.
552
+ * @param id - ID del género
765
553
  */
766
- getUserTypeById(id: number): Promise<ResponseModel<UserType>>;
554
+ getGenderById(id: number): Promise<ResponseModel<Gender>>;
767
555
  /**
768
- * Crea un nuevo tipo de usuario.
769
- * @param request - Datos del tipo de usuario a crear
556
+ * Crea un nuevo género.
557
+ * @param request - Datos del género a crear
770
558
  */
771
- createUserType(request: UserTypeRequest): Promise<ResponseModel<UserType>>;
559
+ createGender(request: GenderRequest): Promise<ResponseModel<Gender>>;
772
560
  /**
773
- * Actualiza un tipo de usuario existente.
774
- * @param id - ID del tipo de usuario a actualizar
775
- * @param request - Nuevos datos del tipo de usuario
561
+ * Actualiza un género existente.
562
+ * @param id - ID del género a actualizar
563
+ * @param request - Nuevos datos del género
776
564
  */
777
- updateUserType(id: number, request: UserTypeRequest): Promise<ResponseModel<UserType>>;
565
+ updateGender(id: number, request: GenderRequest): Promise<ResponseModel<Gender>>;
778
566
  /**
779
- * Elimina un tipo de usuario.
780
- * @param id - ID del tipo de usuario a eliminar
567
+ * Elimina un género.
568
+ * @param id - ID del género a eliminar
781
569
  */
782
- deleteUserType(id: number): Promise<ResponseModel<void>>;
570
+ deleteGender(id: number): Promise<ResponseModel<void>>;
783
571
  /**
784
- * Obtiene todos los roles con filtros opcionales.
572
+ * Obtiene todos los códigos de área con filtros opcionales.
785
573
  * @param filter - Filtros opcionales para la búsqueda
786
574
  */
787
- getRoles(filter?: RolesFilter): Promise<ResponseModel<Role[]>>;
788
- /**
789
- * Obtiene el modelo de filtros disponibles para roles.
790
- */
791
- getRolesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
575
+ getAreaCodes(filter?: AreaCodesFilter): Promise<ResponseModel<AreaCode[]>>;
792
576
  /**
793
- * Obtiene un rol por su ID.
794
- * @param id - ID del rol
577
+ * Obtiene el modelo de filtros disponibles para códigos de área.
795
578
  */
796
- getRoleById(id: number): Promise<ResponseModel<Role>>;
579
+ getAreaCodesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
797
580
  /**
798
- * Obtiene los roles asociados a un tipo de usuario.
799
- * @param userTypeId - ID del tipo de usuario
581
+ * Obtiene un código de área por su ID.
582
+ * @param id - ID del código de área
800
583
  */
801
- getRolesByUserType(userTypeId: number): Promise<ResponseModel<Role[]>>;
584
+ getAreaCodeById(id: number): Promise<ResponseModel<AreaCode>>;
802
585
  /**
803
- * Crea un nuevo rol.
804
- * @param request - Datos del rol a crear
586
+ * Crea un nuevo código de área.
587
+ * @param request - Datos del código de área a crear
805
588
  */
806
- createRole(request: RoleRequest): Promise<ResponseModel<Role>>;
589
+ createAreaCode(request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
807
590
  /**
808
- * Actualiza un rol existente.
809
- * @param id - ID del rol a actualizar
810
- * @param request - Nuevos datos del rol
591
+ * Actualiza un código de área existente.
592
+ * @param id - ID del código de área a actualizar
593
+ * @param request - Nuevos datos del código de área
811
594
  */
812
- updateRole(id: number, request: RoleRequest): Promise<ResponseModel<Role>>;
595
+ updateAreaCode(id: number, request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
813
596
  /**
814
- * Activa o desactiva un rol.
815
- * @param id - ID del rol
597
+ * Activa o desactiva un código de área.
598
+ * @param id - ID del código de área
816
599
  */
817
- toggleRoleStatus(id: number): Promise<ResponseModel<Role>>;
600
+ toggleAreaCodeStatus(id: number): Promise<ResponseModel<AreaCode>>;
818
601
  /**
819
- * Elimina un rol.
820
- * @param id - ID del rol a eliminar
602
+ * Elimina un código de área.
603
+ * @param id - ID del código de área a eliminar
821
604
  */
822
- deleteRole(id: number): Promise<ResponseModel<void>>;
605
+ deleteAreaCode(id: number): Promise<ResponseModel<void>>;
823
606
  }
824
607
 
825
- /**
826
- * Interfaz que representa un módulo del sistema.
827
- */
828
- interface Module {
829
- moduleId: number;
830
- module: string;
831
- description: string;
608
+ interface Location {
609
+ locationName: string;
610
+ address1: string;
611
+ address2: string;
612
+ city: string;
613
+ state: string;
614
+ country: string;
615
+ postalCode: string;
616
+ contactName: string;
617
+ areaCodeId: number;
618
+ contactPhone: string;
619
+ contactEmail: string;
832
620
  isActive: boolean;
833
- createdAt: string;
834
- updatedAt: string | null;
835
- deleted: boolean;
621
+ isPhysical: boolean;
622
+ parentLocationId: number | null;
623
+ url: string;
624
+ apiKey: string;
836
625
  }
837
- /**
838
- * Request para crear o actualizar un módulo.
839
- */
840
- interface ModuleRequest {
841
- module: string;
842
- description: string;
626
+ interface LocationsRequest {
627
+ locationName: string;
628
+ address1: string;
629
+ address2?: string;
630
+ city: string;
631
+ state: string;
632
+ country: string;
633
+ postalCode: string;
634
+ contactName: string;
635
+ areaCodeId: number;
636
+ contactPhone: string;
637
+ contactEmail: string;
843
638
  isActive?: boolean;
639
+ isPhysical: boolean;
640
+ parentLocationId?: number;
641
+ /** URL requerida cuando isPhysical = true */
642
+ url?: string;
643
+ /** ApiKey requerida cuando isPhysical = true. Se almacena cifrada (AES-256) en el servidor. */
644
+ apiKey?: string;
844
645
  }
845
- /**
846
- * Filtros disponibles para buscar módulos.
847
- * Todos los campos son opcionales.
848
- */
849
- interface ModulesFilter {
850
- /** Búsqueda general (busca en Module y Description) */
646
+ interface LocationsFilter {
851
647
  Search?: string;
852
- /** Filtro por nombre del módulo (búsqueda parcial) */
853
- Module?: string;
854
- /** Filtro por descripción (búsqueda parcial) */
855
- Description?: string;
856
- /** Filtro por estado activo/inactivo */
648
+ LocationName?: string;
649
+ City?: string;
650
+ State?: string;
651
+ Country?: string;
857
652
  IsActive?: boolean;
858
653
  }
859
654
 
860
- /**
861
- * Interfaz que representa un endpoint del sistema.
862
- */
863
- interface Endpoint {
864
- endpointId: number;
865
- endpoint: string;
866
- httpMethod: string;
867
- path: string;
655
+ interface InventoryStatus {
656
+ inventoryStatus: string;
657
+ key: string;
868
658
  description: string;
869
- requiresAuth: boolean;
870
- requiresPermission: boolean | null;
871
- requiresSignature: boolean;
872
- requiresHeader: boolean;
873
- allowedOrigins: string;
874
- isActive: boolean;
875
- createdAt: string;
876
- updatedAt: string | null;
877
- deleted: boolean;
878
659
  }
660
+ interface InventoryStatusRequest {
661
+ inventoryStatus: string;
662
+ key?: string;
663
+ description: string;
664
+ }
665
+ interface InventoryStatusesFilter {
666
+ Search?: string;
667
+ InventoryStatus?: string;
668
+ Description?: string;
669
+ }
670
+
879
671
  /**
880
- * Request para crear o actualizar un endpoint.
672
+ * Interfaz que representa un empaque del inventario.
881
673
  */
882
- interface EndpointRequest {
883
- endpoint: string;
884
- httpMethod: string;
885
- path: string;
886
- description: string;
887
- requiresAuth?: boolean;
888
- requiresPermission?: boolean;
889
- requiresSignature?: boolean;
890
- requiresHeader?: boolean;
891
- allowedOrigins?: string[];
892
- isActive?: boolean;
674
+ interface Packing {
675
+ packing: string;
676
+ key: string;
677
+ materialId: number;
678
+ length: number;
679
+ width: number;
680
+ height: number;
681
+ weightLimit: number | null;
682
+ cost: number;
683
+ providerId: number;
684
+ isActive: boolean;
893
685
  }
894
686
  /**
895
- * Métodos HTTP disponibles para endpoints.
687
+ * Request para crear o actualizar un empaque.
896
688
  */
897
- type HttpMethodType = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
689
+ interface PackingRequest {
690
+ packing: string;
691
+ key?: string;
692
+ materialId: number;
693
+ length: number;
694
+ width: number;
695
+ height: number;
696
+ weightLimit?: number;
697
+ cost: number;
698
+ providerId: number;
699
+ isActive: boolean;
700
+ }
898
701
  /**
899
- * Filtros disponibles para buscar endpoints.
900
- * Todos los campos son opcionales.
702
+ * Filtros disponibles para buscar empaques.
901
703
  */
902
- interface EndpointsFilter {
903
- /** Búsqueda general (busca en Endpoint, Path y Description) */
704
+ interface PackingsFilter {
904
705
  Search?: string;
905
- /** Filtro por nombre del endpoint (búsqueda parcial) */
906
- Endpoint?: string;
907
- /** Filtro por método HTTP (GET, POST, PUT, DELETE, PATCH) */
908
- HttpMethod?: HttpMethodType;
909
- /** Filtro por módulo (primer segmento del path, búsqueda parcial) */
910
- Module?: string;
911
- /** Filtro por path (búsqueda parcial) */
912
- Path?: string;
913
- /** Filtro por descripción (búsqueda parcial) */
914
- Description?: string;
915
- /** Filtro por endpoints que requieren autenticación */
916
- RequiresAuth?: boolean;
917
- /** Filtro por endpoints que requieren validación de permisos */
918
- RequiresPermission?: boolean;
919
- /** Filtro por endpoints que requieren firma */
920
- RequiresSignature?: boolean;
921
- /** Filtro por endpoints que requieren header específico */
922
- RequiresHeader?: boolean;
923
- /** Filtro por estado activo/inactivo */
706
+ Packing?: string;
707
+ MaterialId?: number;
708
+ ProviderId?: number;
924
709
  IsActive?: boolean;
925
710
  }
926
711
 
927
712
  /**
928
- * Interfaz que representa una ruta de UI del sistema.
713
+ * Interfaz que representa un material del inventario.
929
714
  */
930
- interface UIRoute {
931
- uiRouteId: number;
932
- uiRoute: string;
933
- path: string;
715
+ interface Material {
716
+ material: string;
717
+ key: string;
934
718
  description: string;
935
- isActive: boolean;
936
- createdAt: string;
937
- updatedAt: string | null;
938
- deleted: boolean;
719
+ isRecyclable: boolean;
720
+ isFragile: boolean;
939
721
  }
940
722
  /**
941
- * Request para crear o actualizar una ruta de UI.
723
+ * Request para crear o actualizar un material.
942
724
  */
943
- interface UIRouteRequest {
944
- uiRoute: string;
945
- path: string;
725
+ interface MaterialRequest {
726
+ material: string;
946
727
  description: string;
947
- isActive?: boolean;
728
+ key?: string;
729
+ isRecyclable: boolean;
730
+ isFragile: boolean;
948
731
  }
949
732
  /**
950
- * Filtros disponibles para buscar rutas de UI.
951
- * Todos los campos son opcionales.
733
+ * Filtros disponibles para buscar materiales.
952
734
  */
953
- interface UIRoutesFilter {
954
- /** Búsqueda general (busca en UIRoute, Path y Description) */
735
+ interface MaterialsFilter {
955
736
  Search?: string;
956
- /** Filtro por nombre de la ruta (búsqueda parcial) */
957
- UIRoute?: string;
958
- /** Filtro por path (búsqueda parcial) */
959
- Path?: string;
960
- /** Filtro por descripción (búsqueda parcial) */
737
+ Material?: string;
961
738
  Description?: string;
962
- /** Filtro por estado activo/inactivo */
739
+ IsRecyclable?: boolean;
740
+ IsFragile?: boolean;
741
+ }
742
+
743
+ /**
744
+ * Interfaz que representa un proveedor del inventario.
745
+ */
746
+ interface Provider {
747
+ provider: string;
748
+ contactName: string;
749
+ areaCodeId: number;
750
+ contactNumber: string;
751
+ contactEmail: string;
752
+ isActive: boolean;
753
+ }
754
+ /**
755
+ * Request para crear o actualizar un proveedor.
756
+ */
757
+ interface ProviderRequest {
758
+ provider: string;
759
+ contactName: string;
760
+ areaCodeId: number;
761
+ contactNumber: string;
762
+ contactEmail: string;
763
+ isActive: boolean;
764
+ }
765
+ /**
766
+ * Filtros disponibles para buscar proveedores.
767
+ */
768
+ interface ProvidersFilter {
769
+ Search?: string;
770
+ Provider?: string;
963
771
  IsActive?: boolean;
964
772
  }
965
773
 
966
774
  /**
967
- * Servicio para gestionar las configuraciones del sistema.
775
+ * Servicio para gestionar inventario: ubicaciones, estatus, empaques y materiales.
968
776
  */
969
- declare class SystemService {
777
+ declare class InventoryService {
970
778
  private api;
971
779
  private readonly BASE_PATH;
972
780
  constructor(api: API);
973
781
  /**
974
- * Obtiene todos los módulos con filtros opcionales.
782
+ * Obtiene todas las ubicaciones con filtros opcionales.
975
783
  * @param filter - Filtros opcionales para la búsqueda
976
784
  */
977
- getModules(filter?: ModulesFilter): Promise<ResponseModel<Module[]>>;
785
+ getLocations(filter?: LocationsFilter): Promise<ResponseModel<Location[]>>;
978
786
  /**
979
- * Obtiene el modelo de filtros disponibles para módulos.
787
+ * Obtiene el modelo de filtros disponibles para ubicaciones.
980
788
  */
981
- getModulesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
789
+ getLocationFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
982
790
  /**
983
- * Obtiene un módulo por su ID.
984
- * @param id - ID del módulo
791
+ * Obtiene una ubicación por su ID.
792
+ * @param id - ID de la ubicación
985
793
  */
986
- getModuleById(id: number): Promise<ResponseModel<Module>>;
794
+ getLocationById(id: number): Promise<ResponseModel<Location>>;
987
795
  /**
988
- * Crea un nuevo módulo.
989
- * @param request - Datos del módulo a crear
796
+ * Crea una nueva ubicación.
797
+ * @param request - Datos de la ubicación a crear
990
798
  */
991
- createModule(request: ModuleRequest): Promise<ResponseModel<Module>>;
799
+ createLocation(request: LocationsRequest): Promise<ResponseModel<Location>>;
992
800
  /**
993
- * Actualiza un módulo existente.
994
- * @param id - ID del módulo a actualizar
995
- * @param request - Nuevos datos del módulo
801
+ * Actualiza una ubicación existente.
802
+ * @param id - ID de la ubicación a actualizar
803
+ * @param request - Nuevos datos de la ubicación
996
804
  */
997
- updateModule(id: number, request: ModuleRequest): Promise<ResponseModel<Module>>;
805
+ updateLocation(id: number, request: LocationsRequest): Promise<ResponseModel<Location>>;
998
806
  /**
999
- * Activa o desactiva un módulo.
1000
- * @param id - ID del módulo
807
+ * Activa o desactiva una ubicación.
808
+ * @param id - ID de la ubicación
1001
809
  */
1002
- toggleModuleStatus(id: number): Promise<ResponseModel<Module>>;
810
+ toggleLocationStatus(id: number): Promise<ResponseModel<Location>>;
1003
811
  /**
1004
- * Elimina un módulo.
1005
- * @param id - ID del módulo a eliminar
812
+ * Elimina una ubicación.
813
+ * @param id - ID de la ubicación a eliminar
1006
814
  */
1007
- deleteModule(id: number): Promise<ResponseModel<void>>;
815
+ deleteLocation(id: number): Promise<ResponseModel<void>>;
1008
816
  /**
1009
- * Obtiene todos los endpoints con filtros opcionales.
817
+ * Obtiene todos los estatus de inventario con filtros opcionales.
1010
818
  * @param filter - Filtros opcionales para la búsqueda
1011
819
  */
1012
- getEndpoints(filter?: EndpointsFilter): Promise<ResponseModel<Endpoint[]>>;
820
+ getStatuses(filter?: InventoryStatusesFilter): Promise<ResponseModel<InventoryStatus[]>>;
1013
821
  /**
1014
- * Obtiene el modelo de filtros disponibles para endpoints.
822
+ * Obtiene el modelo de filtros disponibles para estatus de inventario.
1015
823
  */
1016
- getEndpointsFilters(): Promise<ResponseModel<FilterGroupsModel>>;
824
+ getStatusFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1017
825
  /**
1018
- * Obtiene los módulos disponibles (valores únicos del primer segmento del path).
826
+ * Obtiene un estatus de inventario por su ID.
827
+ * @param id - ID del estatus
1019
828
  */
1020
- getEndpointModules(): Promise<ResponseModel<string[]>>;
829
+ getStatusById(id: number): Promise<ResponseModel<InventoryStatus>>;
1021
830
  /**
1022
- * Obtiene un endpoint por su ID.
1023
- * @param id - ID del endpoint
831
+ * Crea un nuevo estatus de inventario.
832
+ * @param request - Datos del estatus a crear
1024
833
  */
1025
- getEndpointById(id: number): Promise<ResponseModel<Endpoint>>;
834
+ createStatus(request: InventoryStatusRequest): Promise<ResponseModel<InventoryStatus>>;
1026
835
  /**
1027
- * Crea un nuevo endpoint.
1028
- * @param request - Datos del endpoint a crear
836
+ * Actualiza un estatus de inventario existente.
837
+ * @param id - ID del estatus a actualizar
838
+ * @param request - Nuevos datos del estatus
1029
839
  */
1030
- createEndpoint(request: EndpointRequest): Promise<ResponseModel<Endpoint>>;
840
+ updateStatus(id: number, request: InventoryStatusRequest): Promise<ResponseModel<InventoryStatus>>;
1031
841
  /**
1032
- * Actualiza un endpoint existente.
1033
- * @param id - ID del endpoint a actualizar
1034
- * @param request - Nuevos datos del endpoint
842
+ * Elimina un estatus de inventario.
843
+ * @param id - ID del estatus a eliminar
1035
844
  */
1036
- updateEndpoint(id: number, request: EndpointRequest): Promise<ResponseModel<Endpoint>>;
845
+ deleteStatus(id: number): Promise<ResponseModel<void>>;
1037
846
  /**
1038
- * Activa o desactiva un endpoint.
1039
- * @param id - ID del endpoint
847
+ * Obtiene todos los empaques con filtros opcionales.
848
+ * @param filter - Filtros opcionales para la búsqueda
1040
849
  */
1041
- toggleEndpointStatus(id: number): Promise<ResponseModel<Endpoint>>;
850
+ getPackings(filter?: PackingsFilter): Promise<ResponseModel<Packing[]>>;
1042
851
  /**
1043
- * Elimina un endpoint.
1044
- * @param id - ID del endpoint a eliminar
852
+ * Obtiene el modelo de filtros disponibles para empaques.
1045
853
  */
1046
- deleteEndpoint(id: number): Promise<ResponseModel<void>>;
854
+ getPackingFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1047
855
  /**
1048
- * Obtiene todas las rutas de UI con filtros opcionales.
1049
- * @param filter - Filtros opcionales para la búsqueda
856
+ * Obtiene un empaque por su ID.
857
+ * @param id - ID del empaque
1050
858
  */
1051
- getUIRoutes(filter?: UIRoutesFilter): Promise<ResponseModel<UIRoute[]>>;
859
+ getPackingById(id: number): Promise<ResponseModel<Packing>>;
1052
860
  /**
1053
- * Obtiene el modelo de filtros disponibles para rutas de UI.
861
+ * Crea un nuevo empaque.
862
+ * @param request - Datos del empaque a crear
1054
863
  */
1055
- getUIRoutesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
864
+ createPacking(request: PackingRequest): Promise<ResponseModel<Packing>>;
1056
865
  /**
1057
- * Obtiene una ruta de UI por su ID.
1058
- * @param id - ID de la ruta
866
+ * Actualiza un empaque existente.
867
+ * @param id - ID del empaque a actualizar
868
+ * @param request - Nuevos datos del empaque
1059
869
  */
1060
- getUIRouteById(id: number): Promise<ResponseModel<UIRoute>>;
870
+ updatePacking(id: number, request: PackingRequest): Promise<ResponseModel<Packing>>;
1061
871
  /**
1062
- * Crea una nueva ruta de UI.
1063
- * @param request - Datos de la ruta a crear
872
+ * Activa o desactiva un empaque.
873
+ * @param id - ID del empaque
1064
874
  */
1065
- createUIRoute(request: UIRouteRequest): Promise<ResponseModel<UIRoute>>;
875
+ togglePackingStatus(id: number): Promise<ResponseModel<Packing>>;
1066
876
  /**
1067
- * Actualiza una ruta de UI existente.
1068
- * @param id - ID de la ruta a actualizar
1069
- * @param request - Nuevos datos de la ruta
877
+ * Elimina un empaque.
878
+ * @param id - ID del empaque a eliminar
1070
879
  */
1071
- updateUIRoute(id: number, request: UIRouteRequest): Promise<ResponseModel<UIRoute>>;
880
+ deletePacking(id: number): Promise<ResponseModel<void>>;
1072
881
  /**
1073
- * Activa o desactiva una ruta de UI.
1074
- * @param id - ID de la ruta
882
+ * Obtiene todos los materiales con filtros opcionales.
883
+ * @param filter - Filtros opcionales para la búsqueda
1075
884
  */
1076
- toggleUIRouteStatus(id: number): Promise<ResponseModel<UIRoute>>;
885
+ getMaterials(filter?: MaterialsFilter): Promise<ResponseModel<Material[]>>;
1077
886
  /**
1078
- * Elimina una ruta de UI.
1079
- * @param id - ID de la ruta a eliminar
887
+ * Obtiene el modelo de filtros disponibles para materiales.
1080
888
  */
1081
- deleteUIRoute(id: number): Promise<ResponseModel<void>>;
1082
- }
1083
-
1084
- interface Location {
1085
- locationId: number;
1086
- locationName: string;
1087
- address1: string;
1088
- address2: string;
1089
- city: string;
1090
- state: string;
1091
- country: string;
1092
- postalCode: string;
1093
- contactName: string;
1094
- contactPhone: string;
1095
- contactEmail: string;
1096
- isActive: boolean | null;
1097
- createdAt: string | null;
1098
- updatedAt: string | null;
1099
- deleted: boolean | null;
1100
- }
1101
- interface LocationsRequest {
1102
- locationName: string;
1103
- address1: string;
1104
- address2?: string;
1105
- city: string;
1106
- state: string;
1107
- country: string;
1108
- postalCode: string;
1109
- contactName: string;
1110
- contactPhone: string;
1111
- contactEmail: string;
1112
- isActive?: boolean;
1113
- }
1114
- interface LocationsFilter {
1115
- Search?: string;
1116
- LocationName?: string;
1117
- City?: string;
1118
- State?: string;
1119
- Country?: string;
1120
- IsActive?: boolean;
889
+ getMaterialFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
890
+ /**
891
+ * Obtiene un material por su ID.
892
+ * @param id - ID del material
893
+ */
894
+ getMaterialById(id: number): Promise<ResponseModel<Material>>;
895
+ /**
896
+ * Crea un nuevo material.
897
+ * @param request - Datos del material a crear
898
+ */
899
+ createMaterial(request: MaterialRequest): Promise<ResponseModel<Material>>;
900
+ /**
901
+ * Actualiza un material existente.
902
+ * @param id - ID del material a actualizar
903
+ * @param request - Nuevos datos del material
904
+ */
905
+ updateMaterial(id: number, request: MaterialRequest): Promise<ResponseModel<Material>>;
906
+ /**
907
+ * Elimina un material.
908
+ * @param id - ID del material a eliminar
909
+ */
910
+ deleteMaterial(id: number): Promise<ResponseModel<void>>;
911
+ /**
912
+ * Obtiene todos los proveedores con filtros opcionales.
913
+ * @param filter - Filtros opcionales para la búsqueda
914
+ */
915
+ getProviders(filter?: ProvidersFilter): Promise<ResponseModel<Provider[]>>;
916
+ /**
917
+ * Obtiene el modelo de filtros disponibles para proveedores.
918
+ */
919
+ getProviderFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
920
+ /**
921
+ * Obtiene un proveedor por su ID.
922
+ * @param id - ID del proveedor
923
+ */
924
+ getProviderById(id: number): Promise<ResponseModel<Provider>>;
925
+ /**
926
+ * Crea un nuevo proveedor.
927
+ * @param request - Datos del proveedor a crear
928
+ */
929
+ createProvider(request: ProviderRequest): Promise<ResponseModel<Provider>>;
930
+ /**
931
+ * Actualiza un proveedor existente.
932
+ * @param id - ID del proveedor a actualizar
933
+ * @param request - Nuevos datos del proveedor
934
+ */
935
+ updateProvider(id: number, request: ProviderRequest): Promise<ResponseModel<Provider>>;
936
+ /**
937
+ * Activa o desactiva un proveedor.
938
+ * @param id - ID del proveedor
939
+ */
940
+ toggleProviderStatus(id: number): Promise<ResponseModel<Provider>>;
941
+ /**
942
+ * Elimina un proveedor.
943
+ * @param id - ID del proveedor a eliminar
944
+ */
945
+ deleteProvider(id: number): Promise<ResponseModel<void>>;
1121
946
  }
1122
947
 
1123
- interface InventoryStatus {
1124
- inventoryStatusId: number;
1125
- inventoryStatus: string;
948
+ /**
949
+ * Interfaz que representa un módulo del sistema.
950
+ */
951
+ interface Module {
952
+ module: string;
1126
953
  description: string;
1127
- createdAt: string | null;
1128
- updatedAt: string | null;
1129
- deleted: boolean | null;
954
+ isActive: boolean;
1130
955
  }
1131
- interface InventoryStatusRequest {
1132
- inventoryStatusId?: number;
1133
- inventoryStatus: string;
956
+ /**
957
+ * Request para crear o actualizar un módulo.
958
+ */
959
+ interface ModuleRequest {
960
+ module: string;
1134
961
  description: string;
1135
- createdAt?: string;
1136
- updatedAt?: string;
1137
- deleted?: boolean;
962
+ isActive?: boolean;
1138
963
  }
1139
- interface InventoryStatusesFilter {
964
+ /**
965
+ * Filtros disponibles para buscar módulos.
966
+ * Todos los campos son opcionales.
967
+ */
968
+ interface ModulesFilter {
969
+ /** Búsqueda general (busca en Module y Description) */
1140
970
  Search?: string;
1141
- InventoryStatus?: string;
971
+ /** Filtro por nombre del módulo (búsqueda parcial) */
972
+ Module?: string;
973
+ /** Filtro por descripción (búsqueda parcial) */
1142
974
  Description?: string;
975
+ /** Filtro por estado activo/inactivo */
976
+ IsActive?: boolean;
1143
977
  }
1144
978
 
1145
979
  /**
1146
- * Interfaz que representa un empaque del inventario.
980
+ * Interfaz que representa un endpoint del sistema.
1147
981
  */
1148
- interface Packing {
1149
- packingId: number;
1150
- packing: string;
1151
- materialId: number | null;
1152
- length: number | null;
1153
- width: number | null;
1154
- height: number | null;
1155
- weightLimit: number | null;
1156
- cost: number | null;
1157
- providerId: number | null;
1158
- isActive: number | null;
1159
- createdAt: string | null;
1160
- updatedAt: string | null;
1161
- deleted: boolean | null;
982
+ interface Endpoint {
983
+ endpoint: string;
984
+ httpMethod: string;
985
+ path: string;
986
+ description: string;
987
+ requiresAuth: boolean;
988
+ requiresPermission: boolean | null;
989
+ requiresSignature: boolean;
990
+ requiresHeader: boolean;
991
+ allowedOrigins: string;
992
+ isActive: boolean;
1162
993
  }
1163
994
  /**
1164
- * Request para crear o actualizar un empaque.
995
+ * Request para crear o actualizar un endpoint.
1165
996
  */
1166
- interface PackingRequest {
1167
- packing: string;
1168
- materialId?: number;
1169
- length?: number;
1170
- width?: number;
1171
- height?: number;
1172
- weightLimit?: number;
1173
- cost?: number;
1174
- providerId?: number;
997
+ interface EndpointRequest {
998
+ endpoint: string;
999
+ httpMethod: string;
1000
+ path: string;
1001
+ description: string;
1002
+ requiresAuth?: boolean;
1003
+ requiresPermission?: boolean;
1004
+ requiresSignature?: boolean;
1005
+ requiresHeader?: boolean;
1006
+ allowedOrigins?: string[];
1007
+ isActive?: boolean;
1175
1008
  }
1176
1009
  /**
1177
- * Filtros disponibles para buscar empaques.
1010
+ * Métodos HTTP disponibles para endpoints.
1178
1011
  */
1179
- interface PackingsFilter {
1012
+ type HttpMethodType = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
1013
+ /**
1014
+ * Filtros disponibles para buscar endpoints.
1015
+ * Todos los campos son opcionales.
1016
+ */
1017
+ interface EndpointsFilter {
1018
+ /** Búsqueda general (busca en Endpoint, Path y Description) */
1180
1019
  Search?: string;
1181
- Packing?: string;
1182
- MaterialId?: number;
1183
- ProviderId?: number;
1020
+ /** Filtro por nombre del endpoint (búsqueda parcial) */
1021
+ Endpoint?: string;
1022
+ /** Filtro por método HTTP (GET, POST, PUT, DELETE, PATCH) */
1023
+ HttpMethod?: HttpMethodType;
1024
+ /** Filtro por módulo (primer segmento del path, búsqueda parcial) */
1025
+ Module?: string;
1026
+ /** Filtro por path (búsqueda parcial) */
1027
+ Path?: string;
1028
+ /** Filtro por descripción (búsqueda parcial) */
1029
+ Description?: string;
1030
+ /** Filtro por endpoints que requieren autenticación */
1031
+ RequiresAuth?: boolean;
1032
+ /** Filtro por endpoints que requieren validación de permisos */
1033
+ RequiresPermission?: boolean;
1034
+ /** Filtro por endpoints que requieren firma */
1035
+ RequiresSignature?: boolean;
1036
+ /** Filtro por endpoints que requieren header específico */
1037
+ RequiresHeader?: boolean;
1038
+ /** Filtro por estado activo/inactivo */
1184
1039
  IsActive?: boolean;
1185
1040
  }
1186
1041
 
1187
1042
  /**
1188
- * Interfaz que representa un material del inventario.
1043
+ * Interfaz que representa una ruta de UI del sistema.
1189
1044
  */
1190
- interface Material {
1191
- materialId: number;
1192
- material: string;
1045
+ interface UIRoute {
1046
+ uiRoute: string;
1047
+ path: string;
1193
1048
  description: string;
1194
- isRecyclable: boolean | null;
1195
- isFragile: boolean | null;
1196
- createdAt: string | null;
1197
- updatedAt: string | null;
1198
- deleted: boolean | null;
1049
+ isActive: boolean;
1199
1050
  }
1200
1051
  /**
1201
- * Request para crear o actualizar un material.
1052
+ * Request para crear o actualizar una ruta de UI.
1202
1053
  */
1203
- interface MaterialRequest {
1204
- material: string;
1054
+ interface UIRouteRequest {
1055
+ uiRoute: string;
1056
+ path: string;
1205
1057
  description: string;
1206
- isRecyclable?: boolean;
1207
- isFragile?: boolean;
1058
+ isActive?: boolean;
1208
1059
  }
1209
1060
  /**
1210
- * Filtros disponibles para buscar materiales.
1061
+ * Filtros disponibles para buscar rutas de UI.
1062
+ * Todos los campos son opcionales.
1211
1063
  */
1212
- interface MaterialsFilter {
1064
+ interface UIRoutesFilter {
1065
+ /** Búsqueda general (busca en UIRoute, Path y Description) */
1213
1066
  Search?: string;
1214
- Material?: string;
1067
+ /** Filtro por nombre de la ruta (búsqueda parcial) */
1068
+ UIRoute?: string;
1069
+ /** Filtro por path (búsqueda parcial) */
1070
+ Path?: string;
1071
+ /** Filtro por descripción (búsqueda parcial) */
1215
1072
  Description?: string;
1216
- IsRecyclable?: boolean;
1217
- IsFragile?: boolean;
1073
+ /** Filtro por estado activo/inactivo */
1074
+ IsActive?: boolean;
1218
1075
  }
1219
1076
 
1220
1077
  /**
1221
- * Servicio para gestionar inventario: ubicaciones, estatus, empaques y materiales.
1078
+ * Servicio para gestionar las configuraciones del sistema.
1222
1079
  */
1223
- declare class InventoryService {
1080
+ declare class SystemService {
1224
1081
  private api;
1225
1082
  private readonly BASE_PATH;
1226
1083
  constructor(api: API);
1227
1084
  /**
1228
- * Obtiene todas las ubicaciones con filtros opcionales.
1085
+ * Obtiene todos los módulos con filtros opcionales.
1229
1086
  * @param filter - Filtros opcionales para la búsqueda
1230
1087
  */
1231
- getLocations(filter?: LocationsFilter): Promise<ResponseModel<Location[]>>;
1088
+ getModules(filter?: ModulesFilter): Promise<ResponseModel<Module[]>>;
1232
1089
  /**
1233
- * Obtiene el modelo de filtros disponibles para ubicaciones.
1090
+ * Obtiene el modelo de filtros disponibles para módulos.
1234
1091
  */
1235
- getLocationFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1092
+ getModulesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1236
1093
  /**
1237
- * Obtiene una ubicación por su ID.
1238
- * @param id - ID de la ubicación
1094
+ * Obtiene un módulo por su ID.
1095
+ * @param id - ID del módulo
1239
1096
  */
1240
- getLocationById(id: number): Promise<ResponseModel<Location>>;
1097
+ getModuleById(id: number): Promise<ResponseModel<Module>>;
1241
1098
  /**
1242
- * Crea una nueva ubicación.
1243
- * @param request - Datos de la ubicación a crear
1099
+ * Crea un nuevo módulo.
1100
+ * @param request - Datos del módulo a crear
1244
1101
  */
1245
- createLocation(request: LocationsRequest): Promise<ResponseModel<Location>>;
1102
+ createModule(request: ModuleRequest): Promise<ResponseModel<Module>>;
1246
1103
  /**
1247
- * Actualiza una ubicación existente.
1248
- * @param id - ID de la ubicación a actualizar
1249
- * @param request - Nuevos datos de la ubicación
1104
+ * Actualiza un módulo existente.
1105
+ * @param id - ID del módulo a actualizar
1106
+ * @param request - Nuevos datos del módulo
1250
1107
  */
1251
- updateLocation(id: number, request: LocationsRequest): Promise<ResponseModel<Location>>;
1108
+ updateModule(id: number, request: ModuleRequest): Promise<ResponseModel<Module>>;
1252
1109
  /**
1253
- * Activa o desactiva una ubicación.
1254
- * @param id - ID de la ubicación
1110
+ * Activa o desactiva un módulo.
1111
+ * @param id - ID del módulo
1255
1112
  */
1256
- toggleLocationStatus(id: number): Promise<ResponseModel<Location>>;
1113
+ toggleModuleStatus(id: number): Promise<ResponseModel<Module>>;
1257
1114
  /**
1258
- * Elimina una ubicación.
1259
- * @param id - ID de la ubicación a eliminar
1115
+ * Elimina un módulo.
1116
+ * @param id - ID del módulo a eliminar
1260
1117
  */
1261
- deleteLocation(id: number): Promise<ResponseModel<void>>;
1118
+ deleteModule(id: number): Promise<ResponseModel<void>>;
1262
1119
  /**
1263
- * Obtiene todos los estatus de inventario con filtros opcionales.
1120
+ * Obtiene todos los endpoints con filtros opcionales.
1264
1121
  * @param filter - Filtros opcionales para la búsqueda
1265
1122
  */
1266
- getStatuses(filter?: InventoryStatusesFilter): Promise<ResponseModel<InventoryStatus[]>>;
1267
- /**
1268
- * Obtiene el modelo de filtros disponibles para estatus de inventario.
1269
- */
1270
- getStatusFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1271
- /**
1272
- * Obtiene un estatus de inventario por su ID.
1273
- * @param id - ID del estatus
1274
- */
1275
- getStatusById(id: number): Promise<ResponseModel<InventoryStatus>>;
1276
- /**
1277
- * Crea un nuevo estatus de inventario.
1278
- * @param request - Datos del estatus a crear
1279
- */
1280
- createStatus(request: InventoryStatusRequest): Promise<ResponseModel<InventoryStatus>>;
1281
- /**
1282
- * Actualiza un estatus de inventario existente.
1283
- * @param id - ID del estatus a actualizar
1284
- * @param request - Nuevos datos del estatus
1285
- */
1286
- updateStatus(id: number, request: InventoryStatusRequest): Promise<ResponseModel<InventoryStatus>>;
1123
+ getEndpoints(filter?: EndpointsFilter): Promise<ResponseModel<Endpoint[]>>;
1287
1124
  /**
1288
- * Activa o desactiva un estatus de inventario.
1289
- * @param id - ID del estatus
1125
+ * Obtiene el modelo de filtros disponibles para endpoints.
1290
1126
  */
1291
- toggleStatusActive(id: number): Promise<ResponseModel<InventoryStatus>>;
1127
+ getEndpointsFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1292
1128
  /**
1293
- * Elimina un estatus de inventario.
1294
- * @param id - ID del estatus a eliminar
1129
+ * Obtiene los módulos disponibles (valores únicos del primer segmento del path).
1295
1130
  */
1296
- deleteStatus(id: number): Promise<ResponseModel<void>>;
1131
+ getEndpointModules(): Promise<ResponseModel<string[]>>;
1297
1132
  /**
1298
- * Obtiene todos los empaques con filtros opcionales.
1299
- * @param filter - Filtros opcionales para la búsqueda
1133
+ * Obtiene un endpoint por su ID.
1134
+ * @param id - ID del endpoint
1300
1135
  */
1301
- getPackings(filter?: PackingsFilter): Promise<ResponseModel<Packing[]>>;
1136
+ getEndpointById(id: number): Promise<ResponseModel<Endpoint>>;
1302
1137
  /**
1303
- * Obtiene el modelo de filtros disponibles para empaques.
1138
+ * Crea un nuevo endpoint.
1139
+ * @param request - Datos del endpoint a crear
1304
1140
  */
1305
- getPackingFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1141
+ createEndpoint(request: EndpointRequest): Promise<ResponseModel<Endpoint>>;
1306
1142
  /**
1307
- * Obtiene un empaque por su ID.
1308
- * @param id - ID del empaque
1143
+ * Actualiza un endpoint existente.
1144
+ * @param id - ID del endpoint a actualizar
1145
+ * @param request - Nuevos datos del endpoint
1309
1146
  */
1310
- getPackingById(id: number): Promise<ResponseModel<Packing>>;
1147
+ updateEndpoint(id: number, request: EndpointRequest): Promise<ResponseModel<Endpoint>>;
1311
1148
  /**
1312
- * Crea un nuevo empaque.
1313
- * @param request - Datos del empaque a crear
1149
+ * Activa o desactiva un endpoint.
1150
+ * @param id - ID del endpoint
1314
1151
  */
1315
- createPacking(request: PackingRequest): Promise<ResponseModel<Packing>>;
1152
+ toggleEndpointStatus(id: number): Promise<ResponseModel<Endpoint>>;
1316
1153
  /**
1317
- * Actualiza un empaque existente.
1318
- * @param id - ID del empaque a actualizar
1319
- * @param request - Nuevos datos del empaque
1154
+ * Elimina un endpoint.
1155
+ * @param id - ID del endpoint a eliminar
1320
1156
  */
1321
- updatePacking(id: number, request: PackingRequest): Promise<ResponseModel<Packing>>;
1157
+ deleteEndpoint(id: number): Promise<ResponseModel<void>>;
1322
1158
  /**
1323
- * Elimina un empaque.
1324
- * @param id - ID del empaque a eliminar
1159
+ * Obtiene todas las rutas de UI con filtros opcionales.
1160
+ * @param filter - Filtros opcionales para la búsqueda
1325
1161
  */
1326
- deletePacking(id: number): Promise<ResponseModel<void>>;
1162
+ getUIRoutes(filter?: UIRoutesFilter): Promise<ResponseModel<UIRoute[]>>;
1327
1163
  /**
1328
- * Obtiene todos los materiales con filtros opcionales.
1329
- * @param filter - Filtros opcionales para la búsqueda
1164
+ * Obtiene el modelo de filtros disponibles para rutas de UI.
1330
1165
  */
1331
- getMaterials(filter?: MaterialsFilter): Promise<ResponseModel<Material[]>>;
1166
+ getUIRoutesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1332
1167
  /**
1333
- * Obtiene el modelo de filtros disponibles para materiales.
1168
+ * Obtiene una ruta de UI por su ID.
1169
+ * @param id - ID de la ruta
1334
1170
  */
1335
- getMaterialFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1171
+ getUIRouteById(id: number): Promise<ResponseModel<UIRoute>>;
1336
1172
  /**
1337
- * Obtiene un material por su ID.
1338
- * @param id - ID del material
1173
+ * Crea una nueva ruta de UI.
1174
+ * @param request - Datos de la ruta a crear
1339
1175
  */
1340
- getMaterialById(id: number): Promise<ResponseModel<Material>>;
1176
+ createUIRoute(request: UIRouteRequest): Promise<ResponseModel<UIRoute>>;
1341
1177
  /**
1342
- * Crea un nuevo material.
1343
- * @param request - Datos del material a crear
1178
+ * Actualiza una ruta de UI existente.
1179
+ * @param id - ID de la ruta a actualizar
1180
+ * @param request - Nuevos datos de la ruta
1344
1181
  */
1345
- createMaterial(request: MaterialRequest): Promise<ResponseModel<Material>>;
1182
+ updateUIRoute(id: number, request: UIRouteRequest): Promise<ResponseModel<UIRoute>>;
1346
1183
  /**
1347
- * Actualiza un material existente.
1348
- * @param id - ID del material a actualizar
1349
- * @param request - Nuevos datos del material
1184
+ * Activa o desactiva una ruta de UI.
1185
+ * @param id - ID de la ruta
1350
1186
  */
1351
- updateMaterial(id: number, request: MaterialRequest): Promise<ResponseModel<Material>>;
1187
+ toggleUIRouteStatus(id: number): Promise<ResponseModel<UIRoute>>;
1352
1188
  /**
1353
- * Elimina un material.
1354
- * @param id - ID del material a eliminar
1189
+ * Elimina una ruta de UI.
1190
+ * @param id - ID de la ruta a eliminar
1355
1191
  */
1356
- deleteMaterial(id: number): Promise<ResponseModel<void>>;
1192
+ deleteUIRoute(id: number): Promise<ResponseModel<void>>;
1357
1193
  }
1358
1194
 
1359
- /**
1360
- * Interfaz que representa una imagen de producto.
1361
- */
1362
- interface ProductImage {
1363
- productImageId: number;
1364
- productImage: string;
1365
- mediaTypeId: number;
1366
- productId: number | null;
1367
- mediaRoleId: number | null;
1368
- imageURL: string;
1369
- createdAt: string | null;
1195
+ interface AdminUser {
1196
+ username: string;
1197
+ firstName: string;
1198
+ lastName: string;
1199
+ email: string;
1200
+ phone: string;
1201
+ areaCodeId: number | null;
1202
+ birthday: string | null;
1203
+ referrerUserId: number | null;
1204
+ userReferralCode: string;
1205
+ genderId: number | null;
1206
+ roleId: number | null;
1207
+ userTypeId: number | null;
1208
+ isActive: boolean;
1209
+ createdAt: string;
1370
1210
  updatedAt: string | null;
1371
- deleted: boolean | null;
1372
1211
  }
1373
- /**
1374
- * Request para crear o actualizar una imagen de producto.
1375
- */
1376
- interface ProductImageRequest {
1377
- productImage: string;
1378
- mediaTypeId: number;
1379
- productId?: number;
1380
- mediaRoleId?: number;
1381
- imageURL: string;
1212
+ interface AdminAuthentication {
1213
+ userAuthenticationId: number;
1214
+ userId: number;
1215
+ securityLevel: number;
1216
+ clientId: string;
1217
+ isTwoFactorEnabled: boolean;
1218
+ failedLoginAttempts: number;
1219
+ lastLogin: string | null;
1220
+ isActive: boolean;
1221
+ isLocked: boolean;
1222
+ emailVerified: boolean;
1223
+ phoneVerified: boolean;
1224
+ mustChangePassword: boolean;
1225
+ passwordLastChanged: string | null;
1226
+ passwordExpiresAt: string | null;
1227
+ lastLoginIP: string | null;
1228
+ lastLoginDevice: string | null;
1229
+ lastActivityAt: string | null;
1230
+ createdAt: string;
1231
+ updatedAt: string | null;
1382
1232
  }
1383
- /**
1384
- * Filtros disponibles para buscar imágenes de producto.
1385
- */
1386
- interface ProductImagesFilter {
1387
- Search?: string;
1388
- ProductImage?: string;
1389
- MediaTypeId?: number;
1390
- ProductId?: number;
1391
- MediaRoleId?: number;
1233
+
1234
+ interface UserAdminRequest {
1235
+ username: string;
1236
+ firstName: string;
1237
+ lastName: string;
1238
+ email: string;
1239
+ phone: string;
1240
+ areaCodeId: number;
1241
+ birthday: string;
1242
+ genderId: number;
1243
+ roleId: number;
1244
+ userTypeId: number;
1392
1245
  }
1393
1246
 
1394
- /**
1395
- * Interfaz que representa un bullet de producto.
1396
- */
1397
- interface ProductBullet {
1398
- productBulletId: number;
1399
- productId: number;
1400
- bulletOrder: number;
1401
- title: string;
1402
- text: string;
1403
- createdAt: string | null;
1404
- updatedAt: string | null;
1405
- deleted: boolean | null;
1247
+ interface UserAuthAdminRequest {
1248
+ userId: number;
1249
+ securityLevel: number;
1250
+ clientId: string;
1251
+ requireEmailConfirmation?: boolean;
1406
1252
  }
1407
- /**
1408
- * Request para crear o actualizar un bullet de producto.
1409
- */
1410
- interface ProductBulletRequest {
1411
- productId: number;
1412
- bulletOrder: number;
1413
- title: string;
1414
- text: string;
1253
+
1254
+ interface ChangePasswordAdminRequest {
1255
+ newPassword: string;
1415
1256
  }
1416
- /**
1417
- * Filtros disponibles para buscar bullets de producto.
1418
- */
1419
- interface ProductBulletsFilter {
1257
+
1258
+ interface UserAdminFilter {
1420
1259
  Search?: string;
1421
- ProductId?: number;
1422
- Title?: string;
1423
- Text?: string;
1260
+ Username?: string;
1261
+ FirstName?: string;
1262
+ LastName?: string;
1263
+ Email?: string;
1264
+ Phone?: string;
1265
+ RoleId?: number;
1266
+ UserTypeId?: number;
1267
+ IsActive?: boolean;
1424
1268
  }
1425
1269
 
1426
- /**
1427
- * Interfaz que representa un keyword de producto.
1428
- */
1429
- interface ProductKeyword {
1430
- productKeywordId: number;
1431
- productId: number;
1432
- keyword: string;
1433
- createdAt: string | null;
1434
- updatedAt: string | null;
1435
- deleted: boolean | null;
1270
+ interface UserAdminUpdateRequest {
1271
+ username: string;
1272
+ firstName: string;
1273
+ lastName: string;
1274
+ email: string;
1275
+ phone: string;
1276
+ areaCodeId: number;
1277
+ birthday?: string;
1278
+ genderId: number;
1279
+ roleId: number;
1280
+ userTypeId: number;
1436
1281
  }
1437
- /**
1438
- * Request para crear o actualizar un keyword de producto.
1439
- */
1440
- interface ProductKeywordRequest {
1441
- productId: number;
1442
- keyword: string;
1282
+
1283
+ interface UserAuthUpdateRequest {
1284
+ securityLevel: number;
1285
+ clientId: string;
1286
+ isTwoFactorEnabled?: boolean;
1287
+ emailVerified?: boolean;
1288
+ phoneVerified?: boolean;
1443
1289
  }
1444
- /**
1445
- * Filtros disponibles para buscar keywords de producto.
1446
- */
1447
- interface ProductKeywordsFilter {
1448
- Search?: string;
1449
- ProductId?: number;
1450
- Keyword?: string;
1290
+
1291
+ interface ChangePasswordUserRequest {
1292
+ currentPassword: string;
1293
+ newPassword: string;
1451
1294
  }
1452
1295
 
1453
1296
  /**
1454
- * Interfaz que representa un precio de producto.
1297
+ * Interfaz que representa un rol del sistema.
1455
1298
  */
1456
- interface ProductPrice {
1457
- productPriceId: number;
1458
- productId: number;
1459
- priceTypeId: number;
1460
- value: number;
1461
- currency: string;
1462
- eventId: number | null;
1463
- validFrom: string | null;
1464
- validTo: string | null;
1465
- createdAt: string | null;
1466
- updatedAt: string | null;
1467
- deleted: boolean | null;
1299
+ interface Role {
1300
+ role: string;
1301
+ key?: string;
1302
+ description?: string;
1303
+ userTypeId: number;
1304
+ isActive: boolean;
1468
1305
  }
1469
1306
  /**
1470
- * Request para crear o actualizar un precio de producto.
1307
+ * Request para crear o actualizar un rol.
1471
1308
  */
1472
- interface ProductPriceRequest {
1473
- productId: number;
1474
- priceTypeId: number;
1475
- value: number;
1476
- currency: string;
1477
- eventId?: number;
1478
- validFrom?: string;
1479
- validTo?: string;
1309
+ interface RoleRequest {
1310
+ role: string;
1311
+ userTypeId: number;
1312
+ key?: string;
1313
+ description?: string;
1314
+ isActive?: boolean;
1480
1315
  }
1481
1316
  /**
1482
- * Filtros disponibles para buscar precios de producto.
1317
+ * Filtros disponibles para buscar roles.
1483
1318
  */
1484
- interface ProductPricesFilter {
1319
+ interface RolesFilter {
1320
+ /** Búsqueda general */
1485
1321
  Search?: string;
1486
- ProductId?: number;
1487
- PriceTypeId?: number;
1488
- Currency?: string;
1489
- EventId?: number;
1322
+ /** Filtro por nombre del rol (búsqueda parcial) */
1323
+ Role?: string;
1324
+ /** Filtro por descripción (búsqueda parcial) */
1325
+ Description?: string;
1326
+ /** Filtro por estado activo/inactivo */
1327
+ IsActive?: boolean;
1490
1328
  }
1491
-
1492
- /**
1493
- * Interfaz que representa un producto en blanco.
1494
- */
1495
- interface BlankProduct {
1496
- blankProductId: number;
1497
- sku: string;
1498
- providerId: number | null;
1499
- materialId: number | null;
1500
- color: string;
1501
- sizeId: number | null;
1502
- price: number | null;
1503
- createdAt: string | null;
1504
- updatedAt: string | null;
1505
- deleted: boolean | null;
1506
- }
1507
- /**
1508
- * Request para crear o actualizar un producto en blanco.
1509
- */
1510
- interface BlankProductRequest {
1511
- sku: string;
1512
- providerId?: number;
1513
- materialId?: number;
1514
- color: string;
1515
- sizeId?: number;
1516
- price?: number;
1517
- }
1518
- /**
1519
- * Filtros disponibles para buscar productos en blanco.
1520
- */
1521
- interface BlankProductsFilter {
1522
- Search?: string;
1523
- SKU?: string;
1524
- ProviderId?: number;
1525
- MaterialId?: number;
1526
- Color?: string;
1527
- SizeId?: number;
1528
- }
1529
-
1530
- /**
1531
- * Interfaz que representa un detalle de producto POD (Print on Demand).
1532
- */
1533
- interface DetailProductPOD {
1534
- detailProductPODId: number;
1535
- productId: number | null;
1536
- blankProductId: number | null;
1537
- mokup: string;
1538
- frontPrint: string;
1539
- backPrint: string;
1540
- sidePrint: string;
1541
- detailPrint: string;
1542
- neckLabel: string;
1543
- handTag: string;
1544
- royalty: number | null;
1545
- colorVariant: string;
1546
- createdAt: string | null;
1547
- updatedAt: string | null;
1548
- deleted: boolean | null;
1549
- }
1550
- /**
1551
- * Request para crear o actualizar un detalle de producto POD.
1552
- */
1553
- interface DetailProductPODRequest {
1554
- productId?: number;
1555
- blankProductId?: number;
1556
- mokup: string;
1557
- frontPrint: string;
1558
- backPrint: string;
1559
- sidePrint: string;
1560
- detailPrint: string;
1561
- neckLabel: string;
1562
- handTag: string;
1563
- royalty?: number;
1564
- colorVariant: string;
1565
- }
1566
- /**
1567
- * Filtros disponibles para buscar detalles de producto POD.
1568
- */
1569
- interface DetailProductPODFilter {
1570
- Search?: string;
1571
- ProductId?: number;
1572
- BlankProductId?: number;
1573
- ColorVariant?: string;
1574
- }
1575
-
1576
- /**
1577
- * Interfaz que representa una talla.
1578
- */
1579
- interface Size {
1580
- sizeId: number;
1581
- size: string;
1582
- description: string;
1583
- sizeGroupId: number | null;
1584
- width: string;
1585
- length: string;
1586
- createdAt: string | null;
1587
- updatedAt: string | null;
1588
- deleted: boolean | null;
1589
- }
1590
- /**
1591
- * Request para crear o actualizar una talla.
1592
- */
1593
- interface SizeRequest {
1594
- size: string;
1595
- description: string;
1596
- sizeGroupId?: number;
1597
- width: string;
1598
- length: string;
1599
- }
1600
- /**
1601
- * Filtros disponibles para buscar tallas.
1602
- */
1603
- interface SizesFilter {
1604
- Search?: string;
1605
- Size?: string;
1606
- Description?: string;
1607
- SizeGroupId?: number;
1608
- }
1609
-
1610
- /**
1611
- * Interfaz que representa un grupo de tallas.
1612
- */
1613
- interface SizeGroup {
1614
- sizeGroupId: number;
1615
- sizeGroup: string;
1616
- description: string;
1617
- createdAt: string | null;
1618
- updatedAt: string | null;
1619
- deleted: boolean | null;
1620
- }
1621
- /**
1622
- * Request para crear o actualizar un grupo de tallas.
1623
- */
1624
- interface SizeGroupRequest {
1625
- sizeGroup: string;
1626
- description: string;
1627
- }
1628
- /**
1629
- * Filtros disponibles para buscar grupos de tallas.
1630
- */
1631
- interface SizeGroupsFilter {
1632
- Search?: string;
1633
- SizeGroup?: string;
1634
- Description?: string;
1635
- }
1636
-
1637
- /**
1638
- * Interfaz que representa un tipo de producto.
1639
- */
1640
- interface ProductType {
1641
- productTypeId: number;
1642
- productType: string;
1643
- description: string;
1644
- createdAt: string | null;
1645
- updatedAt: string | null;
1646
- deleted: boolean | null;
1647
- }
1648
- /**
1649
- * Request para crear o actualizar un tipo de producto.
1650
- */
1651
- interface ProductTypeRequest {
1652
- productType: string;
1653
- description: string;
1654
- }
1655
- /**
1656
- * Filtros disponibles para buscar tipos de producto.
1657
- */
1658
- interface ProductTypesFilter {
1659
- Search?: string;
1660
- ProductType?: string;
1661
- Description?: string;
1662
- }
1663
-
1664
- /**
1665
- * Interfaz que representa una categoría de producto.
1666
- */
1667
- interface ProductCategory {
1668
- productCategoryId: number;
1669
- productCategory: string;
1670
- description: string;
1671
- isActive: boolean | null;
1672
- createdAt: string | null;
1673
- updatedAt: string | null;
1674
- deleted: boolean | null;
1675
- }
1676
- /**
1677
- * Request para crear o actualizar una categoría de producto.
1678
- */
1679
- interface ProductCategoryRequest {
1680
- productCategory: string;
1681
- description: string;
1682
- isActive?: boolean;
1683
- }
1684
- /**
1685
- * Filtros disponibles para buscar categorías de producto.
1686
- */
1687
- interface ProductCategoriesFilter {
1688
- Search?: string;
1689
- ProductCategory?: string;
1690
- Description?: string;
1691
- IsActive?: boolean;
1692
- }
1693
-
1694
- /**
1695
- * Interfaz que representa un estatus de producto.
1696
- */
1697
- interface ProductStatus {
1698
- productStatusId: number;
1699
- productStatus: string;
1700
- description: string;
1701
- isSellable: boolean | null;
1702
- createdAt: string | null;
1703
- updatedAt: string | null;
1704
- deleted: boolean | null;
1705
- }
1706
- /**
1707
- * Request para crear o actualizar un estatus de producto.
1708
- */
1709
- interface ProductStatusRequest {
1710
- productStatus: string;
1711
- description: string;
1712
- isSellable?: boolean;
1713
- }
1714
- /**
1715
- * Filtros disponibles para buscar estatus de producto.
1716
- */
1717
- interface ProductStatusesFilter {
1718
- Search?: string;
1719
- ProductStatus?: string;
1720
- Description?: string;
1721
- IsSellable?: boolean;
1329
+ interface RoleUserProfile {
1330
+ roleId: number;
1331
+ role: string;
1722
1332
  }
1723
1333
 
1724
- /**
1725
- * Interfaz que representa un estudio.
1726
- */
1727
- interface Studio {
1728
- studioId: number;
1729
- studio: string;
1730
- logo: string;
1731
- isActive: boolean | null;
1732
- createdAt: string | null;
1733
- updatedAt: string | null;
1734
- deleted: boolean | null;
1334
+ interface UserBasicResponse {
1335
+ username: string;
1336
+ firstName: string;
1337
+ lastName: string;
1338
+ fullName: string;
1339
+ email: string;
1340
+ phone: string;
1341
+ role: UserRole;
1342
+ userType: UserType$1;
1343
+ isActive: boolean;
1344
+ securityLevel: number;
1735
1345
  }
1736
- /**
1737
- * Request para crear o actualizar un estudio.
1738
- */
1739
- interface StudioRequest {
1740
- studio: string;
1741
- logo: string;
1742
- isActive?: boolean;
1346
+ interface UserRole {
1347
+ roleId: number;
1348
+ key: string;
1349
+ role: string;
1743
1350
  }
1744
- /**
1745
- * Filtros disponibles para buscar estudios.
1746
- */
1747
- interface StudiosFilter {
1748
- Search?: string;
1749
- Studio?: string;
1750
- IsActive?: boolean;
1351
+ interface UserType$1 {
1352
+ userTypeId: number;
1353
+ key: string;
1354
+ userType: string;
1751
1355
  }
1752
1356
 
1753
- /**
1754
- * Interfaz que representa una licencia.
1755
- */
1756
- interface License {
1757
- licenseId: number;
1758
- license: string;
1759
- studioId: number | null;
1760
- region: string;
1761
- isActive: boolean | null;
1762
- createdAt: string | null;
1763
- updatedAt: string | null;
1764
- deleted: boolean | null;
1765
- }
1766
- /**
1767
- * Request para crear o actualizar una licencia.
1768
- */
1769
- interface LicenseRequest {
1770
- license: string;
1771
- studioId?: number;
1772
- region: string;
1773
- isActive?: boolean;
1774
- }
1775
- /**
1776
- * Filtros disponibles para buscar licencias.
1777
- */
1778
- interface LicensesFilter {
1779
- Search?: string;
1780
- License?: string;
1781
- StudioId?: number;
1782
- Region?: string;
1783
- IsActive?: boolean;
1357
+ interface UserDataUpdateRequest {
1358
+ username: string;
1359
+ firstName: string;
1360
+ lastName: string;
1361
+ areaCodeId: number;
1362
+ phone: string;
1363
+ birthday: Date;
1364
+ profilePhoto: string;
1784
1365
  }
1785
1366
 
1786
1367
  /**
1787
- * Interfaz que representa un proveedor.
1368
+ * Interfaz que representa un tipo de usuario.
1788
1369
  */
1789
- interface Provider {
1790
- providerId: number;
1791
- provider: string;
1792
- contactName: string;
1793
- areaCodeId: number;
1794
- contactNumber: string;
1795
- contactEmail: string;
1796
- isActive: boolean;
1797
- createdAt: string;
1798
- updatedAt: string;
1799
- deleted: boolean;
1370
+ interface UserType {
1371
+ userType: string;
1372
+ key?: string;
1373
+ description?: string;
1800
1374
  }
1801
1375
  /**
1802
- * Request para crear o actualizar un proveedor.
1376
+ * Request para crear o actualizar un tipo de usuario.
1803
1377
  */
1804
- interface ProviderRequest {
1805
- provider: string;
1806
- contactName: string;
1807
- areaCodeId: number;
1808
- contactNumber: string;
1809
- contactEmail: string;
1810
- isActive?: boolean;
1378
+ interface UserTypeRequest {
1379
+ userType: string;
1380
+ key?: string;
1381
+ description?: string;
1811
1382
  }
1812
1383
  /**
1813
- * Filtros disponibles para buscar proveedores.
1384
+ * Filtros disponibles para buscar tipos de usuario.
1814
1385
  */
1815
- interface ProvidersFilter {
1386
+ interface UserTypesFilter {
1387
+ /** Búsqueda general */
1816
1388
  Search?: string;
1817
- Provider?: string;
1818
- IsActive?: boolean;
1819
- }
1820
-
1821
- /**
1822
- * Servicio para gestionar productos y catálogos de productos.
1823
- */
1824
- declare class ProductService {
1825
- private api;
1826
- private readonly BASE_PATH;
1827
- constructor(api: API);
1828
- /**
1829
- * Obtiene todas las imágenes de producto con filtros opcionales.
1830
- * @param filter - Filtros opcionales para la búsqueda
1831
- */
1832
- getImages(filter?: ProductImagesFilter): Promise<ResponseModel<ProductImage[]>>;
1833
- /**
1834
- * Obtiene el modelo de filtros disponibles para imágenes de producto.
1835
- */
1836
- getImageFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1837
- /**
1838
- * Obtiene una imagen de producto por su ID.
1839
- * @param id - ID de la imagen
1840
- */
1841
- getImageById(id: number): Promise<ResponseModel<ProductImage>>;
1842
- /**
1843
- * Crea una nueva imagen de producto.
1844
- * @param request - Datos de la imagen a crear
1845
- */
1846
- createImage(request: ProductImageRequest): Promise<ResponseModel<ProductImage>>;
1847
- /**
1848
- * Actualiza una imagen de producto existente.
1849
- * @param id - ID de la imagen a actualizar
1850
- * @param request - Nuevos datos de la imagen
1851
- */
1852
- updateImage(id: number, request: ProductImageRequest): Promise<ResponseModel<ProductImage>>;
1853
- /**
1854
- * Elimina una imagen de producto.
1855
- * @param id - ID de la imagen a eliminar
1856
- */
1857
- deleteImage(id: number): Promise<ResponseModel<void>>;
1858
- /**
1859
- * Obtiene todos los bullets de producto con filtros opcionales.
1860
- * @param filter - Filtros opcionales para la búsqueda
1861
- */
1862
- getBullets(filter?: ProductBulletsFilter): Promise<ResponseModel<ProductBullet[]>>;
1863
- /**
1864
- * Obtiene el modelo de filtros disponibles para bullets de producto.
1865
- */
1866
- getBulletFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1867
- /**
1868
- * Obtiene un bullet de producto por su ID.
1869
- * @param id - ID del bullet
1870
- */
1871
- getBulletById(id: number): Promise<ResponseModel<ProductBullet>>;
1872
- /**
1873
- * Crea un nuevo bullet de producto.
1874
- * @param request - Datos del bullet a crear
1875
- */
1876
- createBullet(request: ProductBulletRequest): Promise<ResponseModel<ProductBullet>>;
1877
- /**
1878
- * Actualiza un bullet de producto existente.
1879
- * @param id - ID del bullet a actualizar
1880
- * @param request - Nuevos datos del bullet
1881
- */
1882
- updateBullet(id: number, request: ProductBulletRequest): Promise<ResponseModel<ProductBullet>>;
1883
- /**
1884
- * Elimina un bullet de producto.
1885
- * @param id - ID del bullet a eliminar
1886
- */
1887
- deleteBullet(id: number): Promise<ResponseModel<void>>;
1888
- /**
1889
- * Obtiene todos los keywords de producto con filtros opcionales.
1890
- * @param filter - Filtros opcionales para la búsqueda
1891
- */
1892
- getKeywords(filter?: ProductKeywordsFilter): Promise<ResponseModel<ProductKeyword[]>>;
1893
- /**
1894
- * Obtiene el modelo de filtros disponibles para keywords de producto.
1895
- */
1896
- getKeywordFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1897
- /**
1898
- * Obtiene un keyword de producto por su ID.
1899
- * @param id - ID del keyword
1900
- */
1901
- getKeywordById(id: number): Promise<ResponseModel<ProductKeyword>>;
1902
- /**
1903
- * Crea un nuevo keyword de producto.
1904
- * @param request - Datos del keyword a crear
1905
- */
1906
- createKeyword(request: ProductKeywordRequest): Promise<ResponseModel<ProductKeyword>>;
1907
- /**
1908
- * Actualiza un keyword de producto existente.
1909
- * @param id - ID del keyword a actualizar
1910
- * @param request - Nuevos datos del keyword
1911
- */
1912
- updateKeyword(id: number, request: ProductKeywordRequest): Promise<ResponseModel<ProductKeyword>>;
1913
- /**
1914
- * Elimina un keyword de producto.
1915
- * @param id - ID del keyword a eliminar
1916
- */
1917
- deleteKeyword(id: number): Promise<ResponseModel<void>>;
1918
- /**
1919
- * Obtiene todos los precios de producto con filtros opcionales.
1920
- * @param filter - Filtros opcionales para la búsqueda
1921
- */
1922
- getPrices(filter?: ProductPricesFilter): Promise<ResponseModel<ProductPrice[]>>;
1923
- /**
1924
- * Obtiene el modelo de filtros disponibles para precios de producto.
1925
- */
1926
- getPriceFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1927
- /**
1928
- * Obtiene un precio de producto por su ID.
1929
- * @param id - ID del precio
1930
- */
1931
- getPriceById(id: number): Promise<ResponseModel<ProductPrice>>;
1932
- /**
1933
- * Crea un nuevo precio de producto.
1934
- * @param request - Datos del precio a crear
1935
- */
1936
- createPrice(request: ProductPriceRequest): Promise<ResponseModel<ProductPrice>>;
1937
- /**
1938
- * Actualiza un precio de producto existente.
1939
- * @param id - ID del precio a actualizar
1940
- * @param request - Nuevos datos del precio
1941
- */
1942
- updatePrice(id: number, request: ProductPriceRequest): Promise<ResponseModel<ProductPrice>>;
1943
- /**
1944
- * Elimina un precio de producto.
1945
- * @param id - ID del precio a eliminar
1946
- */
1947
- deletePrice(id: number): Promise<ResponseModel<void>>;
1948
- /**
1949
- * Obtiene todos los productos en blanco con filtros opcionales.
1950
- * @param filter - Filtros opcionales para la búsqueda
1951
- */
1952
- getBlankProducts(filter?: BlankProductsFilter): Promise<ResponseModel<BlankProduct[]>>;
1953
- /**
1954
- * Obtiene el modelo de filtros disponibles para productos en blanco.
1955
- */
1956
- getBlankProductFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1957
- /**
1958
- * Obtiene un producto en blanco por su ID.
1959
- * @param id - ID del producto en blanco
1960
- */
1961
- getBlankProductById(id: number): Promise<ResponseModel<BlankProduct>>;
1962
- /**
1963
- * Crea un nuevo producto en blanco.
1964
- * @param request - Datos del producto en blanco a crear
1965
- */
1966
- createBlankProduct(request: BlankProductRequest): Promise<ResponseModel<BlankProduct>>;
1967
- /**
1968
- * Actualiza un producto en blanco existente.
1969
- * @param id - ID del producto en blanco a actualizar
1970
- * @param request - Nuevos datos del producto en blanco
1971
- */
1972
- updateBlankProduct(id: number, request: BlankProductRequest): Promise<ResponseModel<BlankProduct>>;
1973
- /**
1974
- * Elimina un producto en blanco.
1975
- * @param id - ID del producto en blanco a eliminar
1976
- */
1977
- deleteBlankProduct(id: number): Promise<ResponseModel<void>>;
1978
- /**
1979
- * Obtiene todos los detalles de producto POD con filtros opcionales.
1980
- * @param filter - Filtros opcionales para la búsqueda
1981
- */
1982
- getPODDetails(filter?: DetailProductPODFilter): Promise<ResponseModel<DetailProductPOD[]>>;
1983
- /**
1984
- * Obtiene el modelo de filtros disponibles para detalles de producto POD.
1985
- */
1986
- getPODDetailFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1987
- /**
1988
- * Obtiene un detalle de producto POD por su ID.
1989
- * @param id - ID del detalle POD
1990
- */
1991
- getPODDetailById(id: number): Promise<ResponseModel<DetailProductPOD>>;
1992
- /**
1993
- * Crea un nuevo detalle de producto POD.
1994
- * @param request - Datos del detalle POD a crear
1995
- */
1996
- createPODDetail(request: DetailProductPODRequest): Promise<ResponseModel<DetailProductPOD>>;
1997
- /**
1998
- * Actualiza un detalle de producto POD existente.
1999
- * @param id - ID del detalle POD a actualizar
2000
- * @param request - Nuevos datos del detalle POD
2001
- */
2002
- updatePODDetail(id: number, request: DetailProductPODRequest): Promise<ResponseModel<DetailProductPOD>>;
2003
- /**
2004
- * Elimina un detalle de producto POD.
2005
- * @param id - ID del detalle POD a eliminar
2006
- */
2007
- deletePODDetail(id: number): Promise<ResponseModel<void>>;
2008
- /**
2009
- * Obtiene todas las tallas con filtros opcionales.
2010
- * @param filter - Filtros opcionales para la búsqueda
2011
- */
2012
- getSizes(filter?: SizesFilter): Promise<ResponseModel<Size[]>>;
2013
- /**
2014
- * Obtiene el modelo de filtros disponibles para tallas.
2015
- */
2016
- getSizeFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
2017
- /**
2018
- * Obtiene una talla por su ID.
2019
- * @param id - ID de la talla
2020
- */
2021
- getSizeById(id: number): Promise<ResponseModel<Size>>;
2022
- /**
2023
- * Crea una nueva talla.
2024
- * @param request - Datos de la talla a crear
2025
- */
2026
- createSize(request: SizeRequest): Promise<ResponseModel<Size>>;
2027
- /**
2028
- * Actualiza una talla existente.
2029
- * @param id - ID de la talla a actualizar
2030
- * @param request - Nuevos datos de la talla
2031
- */
2032
- updateSize(id: number, request: SizeRequest): Promise<ResponseModel<Size>>;
2033
- /**
2034
- * Elimina una talla.
2035
- * @param id - ID de la talla a eliminar
2036
- */
2037
- deleteSize(id: number): Promise<ResponseModel<void>>;
2038
- /**
2039
- * Obtiene todos los grupos de tallas con filtros opcionales.
2040
- * @param filter - Filtros opcionales para la búsqueda
2041
- */
2042
- getSizeGroups(filter?: SizeGroupsFilter): Promise<ResponseModel<SizeGroup[]>>;
2043
- /**
2044
- * Obtiene el modelo de filtros disponibles para grupos de tallas.
2045
- */
2046
- getSizeGroupFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
2047
- /**
2048
- * Obtiene un grupo de tallas por su ID.
2049
- * @param id - ID del grupo de tallas
2050
- */
2051
- getSizeGroupById(id: number): Promise<ResponseModel<SizeGroup>>;
2052
- /**
2053
- * Crea un nuevo grupo de tallas.
2054
- * @param request - Datos del grupo de tallas a crear
2055
- */
2056
- createSizeGroup(request: SizeGroupRequest): Promise<ResponseModel<SizeGroup>>;
2057
- /**
2058
- * Actualiza un grupo de tallas existente.
2059
- * @param id - ID del grupo de tallas a actualizar
2060
- * @param request - Nuevos datos del grupo de tallas
2061
- */
2062
- updateSizeGroup(id: number, request: SizeGroupRequest): Promise<ResponseModel<SizeGroup>>;
2063
- /**
2064
- * Elimina un grupo de tallas.
2065
- * @param id - ID del grupo de tallas a eliminar
2066
- */
2067
- deleteSizeGroup(id: number): Promise<ResponseModel<void>>;
2068
- /**
2069
- * Obtiene todos los tipos de producto con filtros opcionales.
2070
- * @param filter - Filtros opcionales para la búsqueda
2071
- */
2072
- getProductTypes(filter?: ProductTypesFilter): Promise<ResponseModel<ProductType[]>>;
2073
- /**
2074
- * Obtiene el modelo de filtros disponibles para tipos de producto.
2075
- */
2076
- getProductTypeFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
2077
- /**
2078
- * Obtiene un tipo de producto por su ID.
2079
- * @param id - ID del tipo de producto
2080
- */
2081
- getProductTypeById(id: number): Promise<ResponseModel<ProductType>>;
2082
- /**
2083
- * Crea un nuevo tipo de producto.
2084
- * @param request - Datos del tipo de producto a crear
2085
- */
2086
- createProductType(request: ProductTypeRequest): Promise<ResponseModel<ProductType>>;
2087
- /**
2088
- * Actualiza un tipo de producto existente.
2089
- * @param id - ID del tipo de producto a actualizar
2090
- * @param request - Nuevos datos del tipo de producto
2091
- */
2092
- updateProductType(id: number, request: ProductTypeRequest): Promise<ResponseModel<ProductType>>;
2093
- /**
2094
- * Elimina un tipo de producto.
2095
- * @param id - ID del tipo de producto a eliminar
2096
- */
2097
- deleteProductType(id: number): Promise<ResponseModel<void>>;
2098
- /**
2099
- * Obtiene todas las categorías de producto con filtros opcionales.
2100
- * @param filter - Filtros opcionales para la búsqueda
2101
- */
2102
- getProductCategories(filter?: ProductCategoriesFilter): Promise<ResponseModel<ProductCategory[]>>;
2103
- /**
2104
- * Obtiene el modelo de filtros disponibles para categorías de producto.
2105
- */
2106
- getProductCategoryFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
2107
- /**
2108
- * Obtiene una categoría de producto por su ID.
2109
- * @param id - ID de la categoría
2110
- */
2111
- getProductCategoryById(id: number): Promise<ResponseModel<ProductCategory>>;
2112
- /**
2113
- * Crea una nueva categoría de producto.
2114
- * @param request - Datos de la categoría a crear
2115
- */
2116
- createProductCategory(request: ProductCategoryRequest): Promise<ResponseModel<ProductCategory>>;
2117
- /**
2118
- * Actualiza una categoría de producto existente.
2119
- * @param id - ID de la categoría a actualizar
2120
- * @param request - Nuevos datos de la categoría
2121
- */
2122
- updateProductCategory(id: number, request: ProductCategoryRequest): Promise<ResponseModel<ProductCategory>>;
2123
- /**
2124
- * Activa o desactiva una categoría de producto.
2125
- * @param id - ID de la categoría
2126
- */
2127
- toggleProductCategoryStatus(id: number): Promise<ResponseModel<ProductCategory>>;
2128
- /**
2129
- * Elimina una categoría de producto.
2130
- * @param id - ID de la categoría a eliminar
2131
- */
2132
- deleteProductCategory(id: number): Promise<ResponseModel<void>>;
2133
- /**
2134
- * Obtiene todos los estatus de producto con filtros opcionales.
2135
- * @param filter - Filtros opcionales para la búsqueda
2136
- */
2137
- getProductStatuses(filter?: ProductStatusesFilter): Promise<ResponseModel<ProductStatus[]>>;
2138
- /**
2139
- * Obtiene el modelo de filtros disponibles para estatus de producto.
2140
- */
2141
- getProductStatusFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
2142
- /**
2143
- * Obtiene un estatus de producto por su ID.
2144
- * @param id - ID del estatus
2145
- */
2146
- getProductStatusById(id: number): Promise<ResponseModel<ProductStatus>>;
2147
- /**
2148
- * Crea un nuevo estatus de producto.
2149
- * @param request - Datos del estatus a crear
2150
- */
2151
- createProductStatus(request: ProductStatusRequest): Promise<ResponseModel<ProductStatus>>;
2152
- /**
2153
- * Actualiza un estatus de producto existente.
2154
- * @param id - ID del estatus a actualizar
2155
- * @param request - Nuevos datos del estatus
2156
- */
2157
- updateProductStatus(id: number, request: ProductStatusRequest): Promise<ResponseModel<ProductStatus>>;
2158
- /**
2159
- * Elimina un estatus de producto.
2160
- * @param id - ID del estatus a eliminar
2161
- */
2162
- deleteProductStatus(id: number): Promise<ResponseModel<void>>;
2163
- /**
2164
- * Obtiene todos los estudios con filtros opcionales.
2165
- * @param filter - Filtros opcionales para la búsqueda
2166
- */
2167
- getStudios(filter?: StudiosFilter): Promise<ResponseModel<Studio[]>>;
2168
- /**
2169
- * Obtiene el modelo de filtros disponibles para estudios.
2170
- */
2171
- getStudioFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1389
+ /** Filtro por tipo de usuario (búsqueda parcial) */
1390
+ UserType?: string;
1391
+ /** Filtro por key (búsqueda parcial) */
1392
+ Key?: string;
1393
+ /** Filtro por descripción (búsqueda parcial) */
1394
+ Description?: string;
1395
+ }
1396
+ interface UserTypeUserProfile {
1397
+ userTypeId: number;
1398
+ userType: string;
1399
+ }
1400
+
1401
+ interface UserProfileResponse {
1402
+ username: string;
1403
+ firstName: string;
1404
+ lastName: string;
1405
+ fullName: string;
1406
+ email: string;
1407
+ phone: string;
1408
+ profilePhoto: string;
1409
+ areaCode: AreaCodeUserProfile;
1410
+ birthday: Date;
1411
+ gender: GenderUserProfile;
1412
+ role: RoleUserProfile;
1413
+ userType: UserTypeUserProfile;
1414
+ userReferralCode: string;
1415
+ securityLevel: number;
1416
+ emailVerified: boolean;
1417
+ phoneVerified: boolean;
1418
+ lastLogin: Date;
1419
+ mustChangePassword: boolean;
1420
+ passwordExpiresAt: Date;
1421
+ isActive: boolean;
1422
+ createdAt: Date;
1423
+ updatedAt: Date;
1424
+ }
1425
+
1426
+ declare class UserService {
1427
+ private api;
1428
+ private readonly BASE_PATH;
1429
+ constructor(api: API);
2172
1430
  /**
2173
- * Obtiene un estudio por su ID.
2174
- * @param id - ID del estudio
2175
- */
2176
- getStudioById(id: number): Promise<ResponseModel<Studio>>;
1431
+ * Obtiene la información básica del usuario.
1432
+ * @returns retorna un objeto con la información básica del usuario
1433
+ */
1434
+ me(): Promise<ResponseModel<UserBasicResponse>>;
2177
1435
  /**
2178
- * Crea un nuevo estudio.
2179
- * @param request - Datos del estudio a crear
1436
+ * Obtiene la información general del usuario para la vista de perfil.
1437
+ * @returns
2180
1438
  */
2181
- createStudio(request: StudioRequest): Promise<ResponseModel<Studio>>;
1439
+ profile(): Promise<ResponseModel<UserProfileResponse>>;
1440
+ changePasswordUser(request: ChangePasswordUserRequest): Promise<ResponseModel>;
1441
+ updateUserData(request: UserDataUpdateRequest): Promise<ResponseModel>;
2182
1442
  /**
2183
- * Actualiza un estudio existente.
2184
- * @param id - ID del estudio a actualizar
2185
- * @param request - Nuevos datos del estudio
1443
+ * Crea un nuevo usuario administrador.
1444
+ * @param request - Datos del nuevo administrador
2186
1445
  */
2187
- updateStudio(id: number, request: StudioRequest): Promise<ResponseModel<Studio>>;
1446
+ newAdminUser(request: UserAdminRequest): Promise<ResponseModel<AdminUser>>;
2188
1447
  /**
2189
- * Activa o desactiva un estudio.
2190
- * @param id - ID del estudio
1448
+ * Crea la autenticación para un usuario.
1449
+ * @param request - Datos de autenticación del usuario
2191
1450
  */
2192
- toggleStudioStatus(id: number): Promise<ResponseModel<Studio>>;
1451
+ createUserAuthentication(request: UserAuthAdminRequest): Promise<ResponseModel<AdminAuthentication>>;
2193
1452
  /**
2194
- * Elimina un estudio.
2195
- * @param id - ID del estudio a eliminar
1453
+ * Cambia la contraseña de un administrador.
1454
+ * @param id - ID del usuario
1455
+ * @param request - Nueva contraseña
2196
1456
  */
2197
- deleteStudio(id: number): Promise<ResponseModel<void>>;
1457
+ changePasswordAdmin(id: number, request: ChangePasswordAdminRequest): Promise<ResponseModel>;
2198
1458
  /**
2199
- * Obtiene todas las licencias con filtros opcionales.
1459
+ * Obtiene todos los administradores con filtros opcionales.
2200
1460
  * @param filter - Filtros opcionales para la búsqueda
2201
1461
  */
2202
- getLicenses(filter?: LicensesFilter): Promise<ResponseModel<License[]>>;
1462
+ getAllAdmins(filter?: UserAdminFilter): Promise<ResponseModel<AdminUser[]>>;
2203
1463
  /**
2204
- * Obtiene el modelo de filtros disponibles para licencias.
1464
+ * Obtiene el modelo de filtros disponibles para administradores.
2205
1465
  */
2206
- getLicenseFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1466
+ getAdminFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
2207
1467
  /**
2208
- * Obtiene una licencia por su ID.
2209
- * @param id - ID de la licencia
1468
+ * Obtiene un administrador por su ID.
1469
+ * @param id - ID del administrador
2210
1470
  */
2211
- getLicenseById(id: number): Promise<ResponseModel<License>>;
1471
+ getAdminById(id: number): Promise<ResponseModel<AdminUser>>;
2212
1472
  /**
2213
- * Crea una nueva licencia.
2214
- * @param request - Datos de la licencia a crear
1473
+ * Obtiene la autenticación de un administrador.
1474
+ * @param id - ID del usuario
2215
1475
  */
2216
- createLicense(request: LicenseRequest): Promise<ResponseModel<License>>;
1476
+ getAdminAuthentication(id: number): Promise<ResponseModel<AdminAuthentication>>;
2217
1477
  /**
2218
- * Actualiza una licencia existente.
2219
- * @param id - ID de la licencia a actualizar
2220
- * @param request - Nuevos datos de la licencia
1478
+ * Actualiza un administrador existente.
1479
+ * @param id - ID del administrador
1480
+ * @param request - Nuevos datos del administrador
2221
1481
  */
2222
- updateLicense(id: number, request: LicenseRequest): Promise<ResponseModel<License>>;
1482
+ updateAdmin(id: number, request: UserAdminUpdateRequest): Promise<ResponseModel<AdminUser>>;
2223
1483
  /**
2224
- * Activa o desactiva una licencia.
2225
- * @param id - ID de la licencia
1484
+ * Activa o desactiva un administrador.
1485
+ * @param id - ID del administrador
2226
1486
  */
2227
- toggleLicenseStatus(id: number): Promise<ResponseModel<License>>;
1487
+ toggleAdminStatus(id: number): Promise<ResponseModel<AdminUser>>;
2228
1488
  /**
2229
- * Elimina una licencia.
2230
- * @param id - ID de la licencia a eliminar
1489
+ * Actualiza la autenticación de un administrador.
1490
+ * @param id - ID del usuario
1491
+ * @param request - Nuevos datos de autenticación
2231
1492
  */
2232
- deleteLicense(id: number): Promise<ResponseModel<void>>;
1493
+ updateAdminAuthentication(id: number, request: UserAuthUpdateRequest): Promise<ResponseModel<AdminAuthentication>>;
2233
1494
  /**
2234
- * Obtiene todos los proveedores con filtros opcionales.
1495
+ * Obtiene todos los tipos de usuario con filtros opcionales.
2235
1496
  * @param filter - Filtros opcionales para la búsqueda
2236
1497
  */
2237
- getProviders(filter?: ProvidersFilter): Promise<ResponseModel<Provider[]>>;
2238
- /**
2239
- * Obtiene el modelo de filtros disponibles para proveedores.
2240
- */
2241
- getProviderFiltersModel(): Promise<ResponseModel<FilterGroupsModel>>;
1498
+ getUserTypes(filter?: UserTypesFilter): Promise<ResponseModel<UserType[]>>;
2242
1499
  /**
2243
- * Obtiene un proveedor por su ID.
2244
- * @param id - ID del proveedor
1500
+ * Obtiene el modelo de filtros disponibles para tipos de usuario.
2245
1501
  */
2246
- getProviderById(id: number): Promise<ResponseModel<Provider>>;
1502
+ getUserTypesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
2247
1503
  /**
2248
- * Crea un nuevo proveedor.
2249
- * @param request - Datos del proveedor a crear
1504
+ * Obtiene un tipo de usuario por su ID.
1505
+ * @param id - ID del tipo de usuario
2250
1506
  */
2251
- createProvider(request: ProviderRequest): Promise<ResponseModel<Provider>>;
1507
+ getUserTypeById(id: number): Promise<ResponseModel<UserType>>;
2252
1508
  /**
2253
- * Actualiza un proveedor existente.
2254
- * @param id - ID del proveedor a actualizar
2255
- * @param request - Nuevos datos del proveedor
1509
+ * Crea un nuevo tipo de usuario.
1510
+ * @param request - Datos del tipo de usuario a crear
2256
1511
  */
2257
- updateProvider(id: number, request: ProviderRequest): Promise<ResponseModel<Provider>>;
1512
+ createUserType(request: UserTypeRequest): Promise<ResponseModel<UserType>>;
2258
1513
  /**
2259
- * Activa o desactiva un proveedor.
2260
- * @param id - ID del proveedor
1514
+ * Actualiza un tipo de usuario existente.
1515
+ * @param id - ID del tipo de usuario a actualizar
1516
+ * @param request - Nuevos datos del tipo de usuario
2261
1517
  */
2262
- toggleProviderStatus(id: number): Promise<ResponseModel<Provider>>;
1518
+ updateUserType(id: number, request: UserTypeRequest): Promise<ResponseModel<UserType>>;
2263
1519
  /**
2264
- * Elimina un proveedor.
2265
- * @param id - ID del proveedor a eliminar
1520
+ * Elimina un tipo de usuario.
1521
+ * @param id - ID del tipo de usuario a eliminar
2266
1522
  */
2267
- deleteProvider(id: number): Promise<ResponseModel<void>>;
2268
- }
2269
-
2270
- /**
2271
- * Interfaz que representa un género del catálogo.
2272
- */
2273
- interface Gender {
2274
- genderId: number;
2275
- gender: string;
2276
- createdAt: string;
2277
- updatedAt: string | null;
2278
- deleted: boolean;
2279
- }
2280
- /**
2281
- * Request para crear o actualizar un género.
2282
- */
2283
- interface GenderRequest {
2284
- gender: string;
2285
- }
2286
- /**
2287
- * Filtros disponibles para buscar géneros.
2288
- */
2289
- interface GendersFilter {
2290
- /** Búsqueda general */
2291
- Search?: string;
2292
- /** Filtro por nombre del género (búsqueda parcial) */
2293
- Gender?: string;
2294
- }
2295
-
2296
- /**
2297
- * Interfaz que representa un código de área del catálogo.
2298
- */
2299
- interface AreaCode {
2300
- areaCodeId: number;
2301
- countryCode: string;
2302
- iso: string;
2303
- countryName: string;
2304
- isActive: boolean;
2305
- createdAt: string;
2306
- updatedAt: string | null;
2307
- deleted: boolean;
2308
- }
2309
- /**
2310
- * Request para crear o actualizar un código de área.
2311
- */
2312
- interface AreaCodeRequest {
2313
- countryCode: string;
2314
- iso: string;
2315
- countryName: string;
2316
- isActive?: boolean;
2317
- }
2318
- /**
2319
- * Filtros disponibles para buscar códigos de área.
2320
- */
2321
- interface AreaCodesFilter {
2322
- /** Búsqueda general */
2323
- Search?: string;
2324
- /** Filtro por código de país (búsqueda parcial) */
2325
- CountryCode?: string;
2326
- /** Filtro por ISO (búsqueda parcial) */
2327
- ISO?: string;
2328
- /** Filtro por nombre de país (búsqueda parcial) */
2329
- CountryName?: string;
2330
- /** Filtro por estado activo/inactivo */
2331
- IsActive?: boolean;
2332
- }
2333
-
2334
- /**
2335
- * Servicio para gestionar catálogos públicos.
2336
- * No requiere autenticación.
2337
- */
2338
- declare class CatalogService {
2339
- private api;
2340
- private readonly BASE_PATH;
2341
- constructor(api: API);
1523
+ deleteUserType(id: number): Promise<ResponseModel<void>>;
2342
1524
  /**
2343
- * Obtiene todos los géneros con filtros opcionales.
1525
+ * Obtiene todos los roles con filtros opcionales.
2344
1526
  * @param filter - Filtros opcionales para la búsqueda
2345
1527
  */
2346
- getGenders(filter?: GendersFilter): Promise<ResponseModel<Gender[]>>;
2347
- /**
2348
- * Obtiene el modelo de filtros disponibles para géneros.
2349
- */
2350
- getGendersFilters(): Promise<ResponseModel<FilterGroupsModel>>;
2351
- /**
2352
- * Obtiene un género por su ID.
2353
- * @param id - ID del género
2354
- */
2355
- getGenderById(id: number): Promise<ResponseModel<Gender>>;
2356
- /**
2357
- * Crea un nuevo género.
2358
- * @param request - Datos del género a crear
2359
- */
2360
- createGender(request: GenderRequest): Promise<ResponseModel<Gender>>;
2361
- /**
2362
- * Actualiza un género existente.
2363
- * @param id - ID del género a actualizar
2364
- * @param request - Nuevos datos del género
2365
- */
2366
- updateGender(id: number, request: GenderRequest): Promise<ResponseModel<Gender>>;
2367
- /**
2368
- * Elimina un género.
2369
- * @param id - ID del género a eliminar
2370
- */
2371
- deleteGender(id: number): Promise<ResponseModel<void>>;
1528
+ getRoles(filter?: RolesFilter): Promise<ResponseModel<Role[]>>;
2372
1529
  /**
2373
- * Obtiene todos los códigos de área con filtros opcionales.
2374
- * @param filter - Filtros opcionales para la búsqueda
1530
+ * Obtiene el modelo de filtros disponibles para roles.
2375
1531
  */
2376
- getAreaCodes(filter?: AreaCodesFilter): Promise<ResponseModel<AreaCode[]>>;
1532
+ getRolesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
2377
1533
  /**
2378
- * Obtiene el modelo de filtros disponibles para códigos de área.
1534
+ * Obtiene un rol por su ID.
1535
+ * @param id - ID del rol
2379
1536
  */
2380
- getAreaCodesFilters(): Promise<ResponseModel<FilterGroupsModel>>;
1537
+ getRoleById(id: number): Promise<ResponseModel<Role>>;
2381
1538
  /**
2382
- * Obtiene un código de área por su ID.
2383
- * @param id - ID del código de área
1539
+ * Obtiene los roles asociados a un tipo de usuario.
1540
+ * @param userTypeId - ID del tipo de usuario
2384
1541
  */
2385
- getAreaCodeById(id: number): Promise<ResponseModel<AreaCode>>;
1542
+ getRolesByUserType(userTypeId: number): Promise<ResponseModel<Role[]>>;
2386
1543
  /**
2387
- * Crea un nuevo código de área.
2388
- * @param request - Datos del código de área a crear
1544
+ * Crea un nuevo rol.
1545
+ * @param request - Datos del rol a crear
2389
1546
  */
2390
- createAreaCode(request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
1547
+ createRole(request: RoleRequest): Promise<ResponseModel<Role>>;
2391
1548
  /**
2392
- * Actualiza un código de área existente.
2393
- * @param id - ID del código de área a actualizar
2394
- * @param request - Nuevos datos del código de área
1549
+ * Actualiza un rol existente.
1550
+ * @param id - ID del rol a actualizar
1551
+ * @param request - Nuevos datos del rol
2395
1552
  */
2396
- updateAreaCode(id: number, request: AreaCodeRequest): Promise<ResponseModel<AreaCode>>;
1553
+ updateRole(id: number, request: RoleRequest): Promise<ResponseModel<Role>>;
2397
1554
  /**
2398
- * Activa o desactiva un código de área.
2399
- * @param id - ID del código de área
1555
+ * Activa o desactiva un rol.
1556
+ * @param id - ID del rol
2400
1557
  */
2401
- toggleAreaCodeStatus(id: number): Promise<ResponseModel<AreaCode>>;
1558
+ toggleRoleStatus(id: number): Promise<ResponseModel<Role>>;
2402
1559
  /**
2403
- * Elimina un código de área.
2404
- * @param id - ID del código de área a eliminar
1560
+ * Elimina un rol.
1561
+ * @param id - ID del rol a eliminar
2405
1562
  */
2406
- deleteAreaCode(id: number): Promise<ResponseModel<void>>;
1563
+ deleteRole(id: number): Promise<ResponseModel<void>>;
2407
1564
  }
2408
1565
 
2409
1566
  /**
@@ -2414,7 +1571,6 @@ declare class FalconHUBSDK {
2414
1571
  user: UserService;
2415
1572
  system: SystemService;
2416
1573
  inventory: InventoryService;
2417
- product: ProductService;
2418
1574
  catalog: CatalogService;
2419
1575
  private serviceProperties;
2420
1576
  private cryptoService;
@@ -2448,4 +1604,4 @@ declare class FalconHUBSDK {
2448
1604
 
2449
1605
  declare function decrypt(encryptedBase64: string, secret: string, timestamp: string): string;
2450
1606
 
2451
- export { API, type AdminAuthentication, type AdminUser, type AreaCode, type AreaCodeRequest, type AreaCodesFilter, AuthInterceptor, type AuthInterceptorConfig, AuthService, type BlankProduct, type BlankProductRequest, type BlankProductsFilter, CatalogService, type ChangePasswordAdminRequest, type ChangePasswordRequest, type ChangePasswordUserRequest, type ConfirmEmailRequest, CryptoService, type DetailProductPOD, type DetailProductPODFilter, type DetailProductPODRequest, 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 GendersFilter, type HttpMethodType, type InterceptorContext, InventoryService, type InventoryStatus, type InventoryStatusRequest, type InventoryStatusesFilter, type License, type LicenseRequest, type LicensesFilter, 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 ProductBullet, type ProductBulletRequest, type ProductBulletsFilter, type ProductCategoriesFilter, type ProductCategory, type ProductCategoryRequest, type ProductImage, type ProductImageRequest, type ProductImagesFilter, type ProductKeyword, type ProductKeywordRequest, type ProductKeywordsFilter, type ProductPrice, type ProductPriceRequest, type ProductPricesFilter, ProductService, type ProductStatus, type ProductStatusRequest, type ProductStatusesFilter, type ProductType, type ProductTypeRequest, type ProductTypesFilter, type Provider, type ProviderRequest, type ProvidersFilter, type RefreshTokenRequest, type RefreshTokenResponse, type RequestConfig, type RequestInterceptor, type RequestOptions, type ResponseModel, type Role, type RoleRequest, type RolesFilter, type SendOtpRequest, type ServiceProperties, type Size, type SizeGroup, type SizeGroupRequest, type SizeGroupsFilter, type SizeRequest, type SizesFilter, type Studio, type StudioRequest, type StudiosFilter, 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 UserTypesFilter, type ValidateOtpRequest, type ValidateSessionRenewedResponse, type ValidateSessionResponse, decrypt };
1607
+ 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, type Provider as InventoryProvider, type ProviderRequest as InventoryProviderRequest, type ProvidersFilter as InventoryProvidersFilter, 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 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 };