@fiado/type-kit 3.118.0 → 3.120.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/_test_/unit/platformRbac/dtos/CreateTenantRequest.test.ts +4 -11
  2. package/_test_/unit/platformRbac/dtos/UpdateTenantAutoregisterRequest.test.ts +71 -0
  3. package/_test_/unit/platformRbac/enums/__snapshots__/permissionBits.test.ts.snap +2 -1
  4. package/_test_/unit/platformRbac/enums/autoregisterPermission.test.ts +15 -0
  5. package/bin/index.d.ts +2 -0
  6. package/bin/index.js +4 -2
  7. package/bin/offices/dtos/CreateOfficeRequest.d.ts +15 -0
  8. package/bin/offices/dtos/CreateOfficeRequest.js +58 -0
  9. package/bin/offices/dtos/OfficeDto.d.ts +16 -0
  10. package/bin/offices/dtos/OfficeDto.js +10 -0
  11. package/bin/offices/dtos/UpdateOfficeRequest.d.ts +15 -0
  12. package/bin/offices/dtos/UpdateOfficeRequest.js +60 -0
  13. package/bin/offices/enums/OfficeStatusEnum.d.ts +4 -0
  14. package/bin/offices/enums/OfficeStatusEnum.js +8 -0
  15. package/bin/offices/index.d.ts +4 -0
  16. package/bin/offices/index.js +22 -0
  17. package/bin/places/dtos/EstablishmentDto.d.ts +20 -0
  18. package/bin/places/dtos/EstablishmentDto.js +10 -0
  19. package/bin/places/dtos/GetNearbyPlacesRequest.d.ts +10 -0
  20. package/bin/places/dtos/GetNearbyPlacesRequest.js +39 -0
  21. package/bin/places/dtos/GetNearbyPlacesResponse.d.ts +9 -0
  22. package/bin/places/dtos/GetNearbyPlacesResponse.js +9 -0
  23. package/bin/places/dtos/ReportPlaceRequest.d.ts +12 -0
  24. package/bin/places/dtos/ReportPlaceRequest.js +44 -0
  25. package/bin/places/dtos/ReportedPlaceDto.d.ts +14 -0
  26. package/bin/places/dtos/ReportedPlaceDto.js +10 -0
  27. package/bin/places/dtos/ResolveReportedPlaceRequest.d.ts +10 -0
  28. package/bin/places/dtos/ResolveReportedPlaceRequest.js +35 -0
  29. package/bin/places/enums/EstablishmentBrandEnum.d.ts +6 -0
  30. package/bin/places/enums/EstablishmentBrandEnum.js +11 -0
  31. package/bin/places/enums/PlaceTypeEnum.d.ts +4 -0
  32. package/bin/places/enums/PlaceTypeEnum.js +8 -0
  33. package/bin/places/enums/ReportReasonEnum.d.ts +5 -0
  34. package/bin/places/enums/ReportReasonEnum.js +9 -0
  35. package/bin/places/enums/ResolveReportedActionEnum.d.ts +4 -0
  36. package/bin/places/enums/ResolveReportedActionEnum.js +8 -0
  37. package/bin/places/index.d.ts +10 -0
  38. package/bin/places/index.js +28 -0
  39. package/bin/platformRbac/application/Application.d.ts +0 -10
  40. package/bin/platformRbac/dtos/CreateTenantRequest.d.ts +0 -2
  41. package/bin/platformRbac/dtos/CreateTenantRequest.js +0 -13
  42. package/bin/platformRbac/dtos/UpdateTenantAutoregisterRequest.d.ts +26 -0
  43. package/bin/platformRbac/dtos/UpdateTenantAutoregisterRequest.js +73 -0
  44. package/bin/platformRbac/enums/Permission.d.ts +1 -0
  45. package/bin/platformRbac/enums/Permission.js +6 -0
  46. package/bin/platformRbac/index.d.ts +1 -0
  47. package/bin/platformRbac/index.js +4 -0
  48. package/package.json +1 -1
  49. package/src/index.ts +2 -0
  50. package/src/offices/dtos/CreateOfficeRequest.ts +39 -0
  51. package/src/offices/dtos/OfficeDto.ts +17 -0
  52. package/src/offices/dtos/UpdateOfficeRequest.ts +41 -0
  53. package/src/offices/enums/OfficeStatusEnum.ts +4 -0
  54. package/src/offices/index.ts +7 -0
  55. package/src/places/dtos/EstablishmentDto.ts +21 -0
  56. package/src/places/dtos/GetNearbyPlacesRequest.ts +23 -0
  57. package/src/places/dtos/GetNearbyPlacesResponse.ts +10 -0
  58. package/src/places/dtos/ReportPlaceRequest.ts +27 -0
  59. package/src/places/dtos/ReportedPlaceDto.ts +14 -0
  60. package/src/places/dtos/ResolveReportedPlaceRequest.ts +19 -0
  61. package/src/places/enums/EstablishmentBrandEnum.ts +7 -0
  62. package/src/places/enums/PlaceTypeEnum.ts +4 -0
  63. package/src/places/enums/ReportReasonEnum.ts +5 -0
  64. package/src/places/enums/ResolveReportedActionEnum.ts +4 -0
  65. package/src/places/index.ts +13 -0
  66. package/src/platformRbac/application/Application.ts +4 -5
  67. package/src/platformRbac/dtos/CreateTenantRequest.ts +4 -3
  68. package/src/platformRbac/dtos/UpdateTenantAutoregisterRequest.ts +46 -0
  69. package/src/platformRbac/enums/Permission.ts +6 -0
  70. package/src/platformRbac/index.ts +5 -0
@@ -13,8 +13,6 @@ describe('CreateTenantRequest', () => {
13
13
  adminEmail: 'admin@acme.com',
14
14
  adminName: 'Admin Acme',
15
15
  region: 'us-east-1',
16
- mfaRequired: true,
17
- passwordMinLength: 12,
18
16
  };
19
17
 
20
18
  it('valida happy path (0 errores)', async () => {
@@ -23,9 +21,10 @@ describe('CreateTenantRequest', () => {
23
21
  expect(errors).toEqual([]);
24
22
  });
25
23
 
26
- it('valida sin campos opcionales (mfaRequired / passwordMinLength)', async () => {
27
- const { mfaRequired, passwordMinLength, ...sinOpcionales } = valid;
28
- const dto = plainToInstance(CreateTenantRequest, sinOpcionales);
24
+ it('valida solo con los campos obligatorios (sin ningún opcional)', async () => {
25
+ // valid ya no incluye opcionales (mfaRequired/passwordMinLength purgados DEC-RBAC-051/052);
26
+ // este caso confirma que el contrato valida con el set mínimo obligatorio.
27
+ const dto = plainToInstance(CreateTenantRequest, valid);
29
28
  const errors = await validate(dto);
30
29
  expect(errors).toEqual([]);
31
30
  });
@@ -48,12 +47,6 @@ describe('CreateTenantRequest', () => {
48
47
  expect(errors.some(e => e.property === 'tenantId')).toBe(true);
49
48
  });
50
49
 
51
- it('falla si passwordMinLength es menor a 8', async () => {
52
- const dto = plainToInstance(CreateTenantRequest, { ...valid, passwordMinLength: 6 });
53
- const errors = await validate(dto);
54
- expect(errors.some(e => e.property === 'passwordMinLength')).toBe(true);
55
- });
56
-
57
50
  it('valida con tenantType opcional = agents', async () => {
58
51
  const dto = plainToInstance(CreateTenantRequest, { ...valid, tenantType: 'agents' });
59
52
  const errors = await validate(dto);
@@ -0,0 +1,71 @@
1
+ import 'reflect-metadata';
2
+ import { plainToInstance } from 'class-transformer';
3
+ import { validate } from 'class-validator';
4
+ import {
5
+ UpdateTenantAutoregisterRequest,
6
+ UpdateTenantAutoregisterAllowedRole,
7
+ } from '../../../../src/platformRbac/dtos/UpdateTenantAutoregisterRequest';
8
+ import { PermissionScope } from '../../../../src/platformRbac/enums/PermissionScope';
9
+
10
+ describe('UpdateTenantAutoregisterRequest', () => {
11
+ const valid = {
12
+ enabled: true,
13
+ allowedRoles: [
14
+ { roleId: 'role-agente', scope: 'GROUP', allowedScopeRefs: ['grp-1'] },
15
+ { roleId: 'role-rrhh', scope: 'GROUP' },
16
+ ],
17
+ otpTtlSeconds: 300,
18
+ };
19
+
20
+ it('valida happy path (0 errores)', async () => {
21
+ const dto = plainToInstance(UpdateTenantAutoregisterRequest, valid);
22
+ const errors = await validate(dto);
23
+ expect(errors).toEqual([]);
24
+ });
25
+
26
+ it('valida sin otpTtlSeconds (opcional) y con allowedRoles vacío', async () => {
27
+ const dto = plainToInstance(UpdateTenantAutoregisterRequest, {
28
+ enabled: false,
29
+ allowedRoles: [],
30
+ });
31
+ const errors = await validate(dto);
32
+ expect(errors).toEqual([]);
33
+ });
34
+
35
+ it('falla si enabled falta', async () => {
36
+ const { enabled, ...sinEnabled } = valid;
37
+ const dto = plainToInstance(UpdateTenantAutoregisterRequest, sinEnabled);
38
+ const errors = await validate(dto);
39
+ expect(errors.some(e => e.property === 'enabled')).toBe(true);
40
+ });
41
+
42
+ it('falla si allowedRoles no es array', async () => {
43
+ const dto = plainToInstance(UpdateTenantAutoregisterRequest, {
44
+ ...valid,
45
+ allowedRoles: 'no-array',
46
+ });
47
+ const errors = await validate(dto);
48
+ expect(errors.some(e => e.property === 'allowedRoles')).toBe(true);
49
+ });
50
+
51
+ it('falla (nested) si un allowedRole tiene scope inválido', async () => {
52
+ const dto = plainToInstance(UpdateTenantAutoregisterRequest, {
53
+ ...valid,
54
+ allowedRoles: [{ roleId: 'r1', scope: 'INEXISTENTE' }],
55
+ });
56
+ const errors = await validate(dto);
57
+ expect(errors.some(e => e.property === 'allowedRoles')).toBe(true);
58
+ });
59
+
60
+ it('falla si otpTtlSeconds no es entero positivo', async () => {
61
+ const dto = plainToInstance(UpdateTenantAutoregisterRequest, { ...valid, otpTtlSeconds: 0 });
62
+ const errors = await validate(dto);
63
+ expect(errors.some(e => e.property === 'otpTtlSeconds')).toBe(true);
64
+ });
65
+
66
+ it('hidrata cada allowedRole a UpdateTenantAutoregisterAllowedRole con su scope enum', async () => {
67
+ const dto = plainToInstance(UpdateTenantAutoregisterRequest, valid);
68
+ expect(dto.allowedRoles[0]).toBeInstanceOf(UpdateTenantAutoregisterAllowedRole);
69
+ expect(dto.allowedRoles[0].scope).toBe(PermissionScope.GROUP);
70
+ });
71
+ });
@@ -1,6 +1,6 @@
1
1
  // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
2
2
 
3
- exports[`PERMISSION_BIT_ORDER PERMS_VERSION es número estable 1`] = `643213674`;
3
+ exports[`PERMISSION_BIT_ORDER PERMS_VERSION es número estable 1`] = `288024102`;
4
4
 
5
5
  exports[`PERMISSION_BIT_ORDER append-only: snapshot del ORDEN COMPLETO (rompe ante cualquier reorden/inserción) 1`] = `
6
6
  [
@@ -125,5 +125,6 @@ exports[`PERMISSION_BIT_ORDER append-only: snapshot del ORDEN COMPLETO (rompe an
125
125
  "platform.user.create.lateral",
126
126
  "platform.application.manage",
127
127
  "tenant.level.manage",
128
+ "platform.tenant.autoregister.manage",
128
129
  ]
129
130
  `;
@@ -0,0 +1,15 @@
1
+ import { Permission, PERMISSION_BIT_ORDER } from '../../../../src/platformRbac/enums/Permission';
2
+
3
+ describe('Permission.PLATFORM_TENANT_AUTOREGISTER_MANAGE', () => {
4
+ it('existe en el enum con el value canónico', () => {
5
+ expect(Permission.PLATFORM_TENANT_AUTOREGISTER_MANAGE).toBe('platform.tenant.autoregister.manage');
6
+ });
7
+
8
+ it('está en PERMISSION_BIT_ORDER (espejo de USERFIELDS_MANAGE)', () => {
9
+ expect(PERMISSION_BIT_ORDER).toContain(Permission.PLATFORM_TENANT_AUTOREGISTER_MANAGE);
10
+ });
11
+
12
+ it('es scope PLATFORM por convención de naming (platform.*)', () => {
13
+ expect(Permission.PLATFORM_TENANT_AUTOREGISTER_MANAGE.startsWith('platform.')).toBe(true);
14
+ });
15
+ });
package/bin/index.d.ts CHANGED
@@ -3,6 +3,8 @@ export * as Account from './account';
3
3
  export * as Activity from './activity';
4
4
  export * as Beneficiary from './beneficiary';
5
5
  export * as Address from './address';
6
+ export * as Places from './places';
7
+ export * as Offices from './offices';
6
8
  export * as App from './app';
7
9
  export * as Authentication from './authentication';
8
10
  export * as Card from './card';
package/bin/index.js CHANGED
@@ -36,13 +36,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
36
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.Company = exports.Services = exports.AccountIssuanceBusiness = exports.AppSelectionData = exports.Device = exports.Observations = exports.IssuanceBusiness = exports.Blacklist = exports.CentralPayments = exports.Helpdesk = exports.FiadoApiResponse = exports.Auth = exports.LegalDocumentsBusiness = exports.Role = exports.STPAccount = exports.RiskProfile = exports.FraudPreventionEngine = exports.BBVARst = exports.Stp = exports.BenefitCenter = exports.BankAccount = exports.P2pContact = exports.CreditContract = exports.Contract = exports.ProductCatalog = exports.ContactInfo = exports.TransactionAnalytics = exports.Transaction = exports.TransactionProcessor = exports.GenericMessage = exports.EventBridgeMessage = exports.SessionActivity = exports.NotificationMessages = exports.ServicePayment = exports.Header = exports.Identity = exports.Group = exports.File = exports.ExchangeRate = exports.Directory = exports.Currency = exports.Country = exports.Card = exports.Authentication = exports.App = exports.Address = exports.Beneficiary = exports.Activity = exports.Account = exports.Crypto = void 0;
40
- exports.EmailVerification = exports.NetworkConnector = exports.TotpSecurity = exports.WalletFunding = exports.Remittance = exports.PlatformRbac = exports.CognitoBackofficeConnector = exports.TwilioConnector = exports.MessagesConnector = exports.Mdm = exports.MilestoneBusiness = exports.CirculoCredito = exports.CreditStatements = exports.Sentry = exports.AiEngine = exports.Funnel = exports.TeamsConnector = exports.PlatformErrorEvents = exports.CustomerFile = exports.CreditBackoffice = exports.CreditDashboard = exports.CreditEngine = exports.Credit = exports.ComissionBusiness = exports.ReferralBusiness = exports.ZendeskMessaging = exports.NotificationWS = exports.Event = exports.PayrollBusiness = exports.Cnbv = exports.DirectorySetting = exports.InvoiceCollector = exports.Collector = exports.Pricelist = void 0;
39
+ exports.AccountIssuanceBusiness = exports.AppSelectionData = exports.Device = exports.Observations = exports.IssuanceBusiness = exports.Blacklist = exports.CentralPayments = exports.Helpdesk = exports.FiadoApiResponse = exports.Auth = exports.LegalDocumentsBusiness = exports.Role = exports.STPAccount = exports.RiskProfile = exports.FraudPreventionEngine = exports.BBVARst = exports.Stp = exports.BenefitCenter = exports.BankAccount = exports.P2pContact = exports.CreditContract = exports.Contract = exports.ProductCatalog = exports.ContactInfo = exports.TransactionAnalytics = exports.Transaction = exports.TransactionProcessor = exports.GenericMessage = exports.EventBridgeMessage = exports.SessionActivity = exports.NotificationMessages = exports.ServicePayment = exports.Header = exports.Identity = exports.Group = exports.File = exports.ExchangeRate = exports.Directory = exports.Currency = exports.Country = exports.Card = exports.Authentication = exports.App = exports.Offices = exports.Places = exports.Address = exports.Beneficiary = exports.Activity = exports.Account = exports.Crypto = void 0;
40
+ exports.EmailVerification = exports.NetworkConnector = exports.TotpSecurity = exports.WalletFunding = exports.Remittance = exports.PlatformRbac = exports.CognitoBackofficeConnector = exports.TwilioConnector = exports.MessagesConnector = exports.Mdm = exports.MilestoneBusiness = exports.CirculoCredito = exports.CreditStatements = exports.Sentry = exports.AiEngine = exports.Funnel = exports.TeamsConnector = exports.PlatformErrorEvents = exports.CustomerFile = exports.CreditBackoffice = exports.CreditDashboard = exports.CreditEngine = exports.Credit = exports.ComissionBusiness = exports.ReferralBusiness = exports.ZendeskMessaging = exports.NotificationWS = exports.Event = exports.PayrollBusiness = exports.Cnbv = exports.DirectorySetting = exports.InvoiceCollector = exports.Collector = exports.Pricelist = exports.Company = exports.Services = void 0;
41
41
  exports.Crypto = __importStar(require("./crypto"));
42
42
  exports.Account = __importStar(require("./account"));
43
43
  exports.Activity = __importStar(require("./activity"));
44
44
  exports.Beneficiary = __importStar(require("./beneficiary"));
45
45
  exports.Address = __importStar(require("./address"));
46
+ exports.Places = __importStar(require("./places"));
47
+ exports.Offices = __importStar(require("./offices"));
46
48
  exports.App = __importStar(require("./app"));
47
49
  exports.Authentication = __importStar(require("./authentication"));
48
50
  exports.Card = __importStar(require("./card"));
@@ -0,0 +1,15 @@
1
+ import { OperationSchedule } from '../../address/dtos/OperationSchedule';
2
+ import { OfficeStatusEnum } from '../enums/OfficeStatusEnum';
3
+ /**
4
+ * Alta de oficina desde backoffice. El backoffice envía lat/lng directo (Opción A);
5
+ * el lambda calcula el h3Cell. NO se geocodifica.
6
+ */
7
+ export declare class CreateOfficeRequest {
8
+ name: string;
9
+ address: string;
10
+ latitude: number;
11
+ longitude: number;
12
+ phone?: string;
13
+ schedule?: OperationSchedule[];
14
+ status?: OfficeStatusEnum;
15
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateOfficeRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const OfficeStatusEnum_1 = require("../enums/OfficeStatusEnum");
15
+ /**
16
+ * Alta de oficina desde backoffice. El backoffice envía lat/lng directo (Opción A);
17
+ * el lambda calcula el h3Cell. NO se geocodifica.
18
+ */
19
+ class CreateOfficeRequest {
20
+ }
21
+ exports.CreateOfficeRequest = CreateOfficeRequest;
22
+ __decorate([
23
+ (0, class_validator_1.IsString)(),
24
+ (0, class_validator_1.IsNotEmpty)(),
25
+ __metadata("design:type", String)
26
+ ], CreateOfficeRequest.prototype, "name", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsString)(),
29
+ (0, class_validator_1.IsNotEmpty)(),
30
+ __metadata("design:type", String)
31
+ ], CreateOfficeRequest.prototype, "address", void 0);
32
+ __decorate([
33
+ (0, class_validator_1.IsNumber)(),
34
+ (0, class_validator_1.Min)(-90),
35
+ (0, class_validator_1.Max)(90),
36
+ __metadata("design:type", Number)
37
+ ], CreateOfficeRequest.prototype, "latitude", void 0);
38
+ __decorate([
39
+ (0, class_validator_1.IsNumber)(),
40
+ (0, class_validator_1.Min)(-180),
41
+ (0, class_validator_1.Max)(180),
42
+ __metadata("design:type", Number)
43
+ ], CreateOfficeRequest.prototype, "longitude", void 0);
44
+ __decorate([
45
+ (0, class_validator_1.IsOptional)(),
46
+ (0, class_validator_1.IsString)(),
47
+ __metadata("design:type", String)
48
+ ], CreateOfficeRequest.prototype, "phone", void 0);
49
+ __decorate([
50
+ (0, class_validator_1.IsOptional)(),
51
+ (0, class_validator_1.IsArray)(),
52
+ __metadata("design:type", Array)
53
+ ], CreateOfficeRequest.prototype, "schedule", void 0);
54
+ __decorate([
55
+ (0, class_validator_1.IsOptional)(),
56
+ (0, class_validator_1.IsEnum)(OfficeStatusEnum_1.OfficeStatusEnum),
57
+ __metadata("design:type", String)
58
+ ], CreateOfficeRequest.prototype, "status", void 0);
@@ -0,0 +1,16 @@
1
+ import { OperationSchedule } from '../../address/dtos/OperationSchedule';
2
+ import { OfficeStatusEnum } from '../enums/OfficeStatusEnum';
3
+ /**
4
+ * Oficina de Fiado, gestionada por el backoffice (fuente de verdad, no HERE).
5
+ * Response DTO — sin decoradores.
6
+ */
7
+ export declare class OfficeDto {
8
+ officeId: string;
9
+ name: string;
10
+ address: string;
11
+ latitude: number;
12
+ longitude: number;
13
+ phone?: string;
14
+ schedule?: OperationSchedule[];
15
+ status: OfficeStatusEnum;
16
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OfficeDto = void 0;
4
+ /**
5
+ * Oficina de Fiado, gestionada por el backoffice (fuente de verdad, no HERE).
6
+ * Response DTO — sin decoradores.
7
+ */
8
+ class OfficeDto {
9
+ }
10
+ exports.OfficeDto = OfficeDto;
@@ -0,0 +1,15 @@
1
+ import { OperationSchedule } from '../../address/dtos/OperationSchedule';
2
+ import { OfficeStatusEnum } from '../enums/OfficeStatusEnum';
3
+ /**
4
+ * Edición de oficina desde backoffice. Todos los campos opcionales.
5
+ * Si cambian lat/lng, el lambda recalcula el h3Cell.
6
+ */
7
+ export declare class UpdateOfficeRequest {
8
+ name?: string;
9
+ address?: string;
10
+ latitude?: number;
11
+ longitude?: number;
12
+ phone?: string;
13
+ schedule?: OperationSchedule[];
14
+ status?: OfficeStatusEnum;
15
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpdateOfficeRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const OfficeStatusEnum_1 = require("../enums/OfficeStatusEnum");
15
+ /**
16
+ * Edición de oficina desde backoffice. Todos los campos opcionales.
17
+ * Si cambian lat/lng, el lambda recalcula el h3Cell.
18
+ */
19
+ class UpdateOfficeRequest {
20
+ }
21
+ exports.UpdateOfficeRequest = UpdateOfficeRequest;
22
+ __decorate([
23
+ (0, class_validator_1.IsOptional)(),
24
+ (0, class_validator_1.IsString)(),
25
+ __metadata("design:type", String)
26
+ ], UpdateOfficeRequest.prototype, "name", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsOptional)(),
29
+ (0, class_validator_1.IsString)(),
30
+ __metadata("design:type", String)
31
+ ], UpdateOfficeRequest.prototype, "address", void 0);
32
+ __decorate([
33
+ (0, class_validator_1.IsOptional)(),
34
+ (0, class_validator_1.IsNumber)(),
35
+ (0, class_validator_1.Min)(-90),
36
+ (0, class_validator_1.Max)(90),
37
+ __metadata("design:type", Number)
38
+ ], UpdateOfficeRequest.prototype, "latitude", void 0);
39
+ __decorate([
40
+ (0, class_validator_1.IsOptional)(),
41
+ (0, class_validator_1.IsNumber)(),
42
+ (0, class_validator_1.Min)(-180),
43
+ (0, class_validator_1.Max)(180),
44
+ __metadata("design:type", Number)
45
+ ], UpdateOfficeRequest.prototype, "longitude", void 0);
46
+ __decorate([
47
+ (0, class_validator_1.IsOptional)(),
48
+ (0, class_validator_1.IsString)(),
49
+ __metadata("design:type", String)
50
+ ], UpdateOfficeRequest.prototype, "phone", void 0);
51
+ __decorate([
52
+ (0, class_validator_1.IsOptional)(),
53
+ (0, class_validator_1.IsArray)(),
54
+ __metadata("design:type", Array)
55
+ ], UpdateOfficeRequest.prototype, "schedule", void 0);
56
+ __decorate([
57
+ (0, class_validator_1.IsOptional)(),
58
+ (0, class_validator_1.IsEnum)(OfficeStatusEnum_1.OfficeStatusEnum),
59
+ __metadata("design:type", String)
60
+ ], UpdateOfficeRequest.prototype, "status", void 0);
@@ -0,0 +1,4 @@
1
+ export declare enum OfficeStatusEnum {
2
+ ACTIVE = "ACTIVE",
3
+ INACTIVE = "INACTIVE"
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OfficeStatusEnum = void 0;
4
+ var OfficeStatusEnum;
5
+ (function (OfficeStatusEnum) {
6
+ OfficeStatusEnum["ACTIVE"] = "ACTIVE";
7
+ OfficeStatusEnum["INACTIVE"] = "INACTIVE";
8
+ })(OfficeStatusEnum || (exports.OfficeStatusEnum = OfficeStatusEnum = {}));
@@ -0,0 +1,4 @@
1
+ export * from './dtos/OfficeDto';
2
+ export * from './dtos/CreateOfficeRequest';
3
+ export * from './dtos/UpdateOfficeRequest';
4
+ export * from './enums/OfficeStatusEnum';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ //dtos
18
+ __exportStar(require("./dtos/OfficeDto"), exports);
19
+ __exportStar(require("./dtos/CreateOfficeRequest"), exports);
20
+ __exportStar(require("./dtos/UpdateOfficeRequest"), exports);
21
+ //enums
22
+ __exportStar(require("./enums/OfficeStatusEnum"), exports);
@@ -0,0 +1,20 @@
1
+ import { EstablishmentBrandEnum } from '../enums/EstablishmentBrandEnum';
2
+ /**
3
+ * Establecimiento (tienda de cash-in) servido desde el cache de HERE.
4
+ * Response DTO — sin decoradores de validación.
5
+ */
6
+ export declare class EstablishmentDto {
7
+ placeId: string;
8
+ name: string;
9
+ brand: EstablishmentBrandEnum;
10
+ latitude: number;
11
+ longitude: number;
12
+ address: string;
13
+ categories: string[];
14
+ isOpen: boolean | null;
15
+ /** epoch ms del último refresco desde HERE (UI "verificado hace X días") */
16
+ lastRefreshed: number;
17
+ /** true si la celda alcanzó el umbral de reportes de "no existe" */
18
+ reportedMissing?: boolean;
19
+ reportCount?: number;
20
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EstablishmentDto = void 0;
4
+ /**
5
+ * Establecimiento (tienda de cash-in) servido desde el cache de HERE.
6
+ * Response DTO — sin decoradores de validación.
7
+ */
8
+ class EstablishmentDto {
9
+ }
10
+ exports.EstablishmentDto = EstablishmentDto;
@@ -0,0 +1,10 @@
1
+ import { PlaceTypeEnum } from '../enums/PlaceTypeEnum';
2
+ /**
3
+ * Búsqueda unificada de lugares cercanos.
4
+ * `types` indica qué devolver: CashInUs (tiendas) y/o OfficeFiado (oficinas).
5
+ */
6
+ export declare class GetNearbyPlacesRequest {
7
+ latitude: number;
8
+ longitude: number;
9
+ types: PlaceTypeEnum[];
10
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GetNearbyPlacesRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const PlaceTypeEnum_1 = require("../enums/PlaceTypeEnum");
15
+ /**
16
+ * Búsqueda unificada de lugares cercanos.
17
+ * `types` indica qué devolver: CashInUs (tiendas) y/o OfficeFiado (oficinas).
18
+ */
19
+ class GetNearbyPlacesRequest {
20
+ }
21
+ exports.GetNearbyPlacesRequest = GetNearbyPlacesRequest;
22
+ __decorate([
23
+ (0, class_validator_1.IsNumber)(),
24
+ (0, class_validator_1.Min)(-90),
25
+ (0, class_validator_1.Max)(90),
26
+ __metadata("design:type", Number)
27
+ ], GetNearbyPlacesRequest.prototype, "latitude", void 0);
28
+ __decorate([
29
+ (0, class_validator_1.IsNumber)(),
30
+ (0, class_validator_1.Min)(-180),
31
+ (0, class_validator_1.Max)(180),
32
+ __metadata("design:type", Number)
33
+ ], GetNearbyPlacesRequest.prototype, "longitude", void 0);
34
+ __decorate([
35
+ (0, class_validator_1.IsArray)(),
36
+ (0, class_validator_1.ArrayNotEmpty)(),
37
+ (0, class_validator_1.IsEnum)(PlaceTypeEnum_1.PlaceTypeEnum, { each: true }),
38
+ __metadata("design:type", Array)
39
+ ], GetNearbyPlacesRequest.prototype, "types", void 0);
@@ -0,0 +1,9 @@
1
+ import { EstablishmentDto } from './EstablishmentDto';
2
+ import { OfficeDto } from '../../offices/dtos/OfficeDto';
3
+ /**
4
+ * Respuesta de la búsqueda unificada. Solo se incluyen los tipos pedidos en `types`.
5
+ */
6
+ export declare class GetNearbyPlacesResponse {
7
+ cashInUs?: EstablishmentDto[];
8
+ officeFiado?: OfficeDto[];
9
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetNearbyPlacesResponse = void 0;
4
+ /**
5
+ * Respuesta de la búsqueda unificada. Solo se incluyen los tipos pedidos en `types`.
6
+ */
7
+ class GetNearbyPlacesResponse {
8
+ }
9
+ exports.GetNearbyPlacesResponse = GetNearbyPlacesResponse;
@@ -0,0 +1,12 @@
1
+ import { ReportReasonEnum } from '../enums/ReportReasonEnum';
2
+ /**
3
+ * Reporte del usuario de que una tienda no existe / está cerrada.
4
+ * Se cuenta solo si el usuario está cerca del lugar (validado en el lambda).
5
+ * El identificador del usuario sale del token (directoryId), NO de este request.
6
+ */
7
+ export declare class ReportPlaceRequest {
8
+ placeId: string;
9
+ latitude: number;
10
+ longitude: number;
11
+ reason?: ReportReasonEnum;
12
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ReportPlaceRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const ReportReasonEnum_1 = require("../enums/ReportReasonEnum");
15
+ /**
16
+ * Reporte del usuario de que una tienda no existe / está cerrada.
17
+ * Se cuenta solo si el usuario está cerca del lugar (validado en el lambda).
18
+ * El identificador del usuario sale del token (directoryId), NO de este request.
19
+ */
20
+ class ReportPlaceRequest {
21
+ }
22
+ exports.ReportPlaceRequest = ReportPlaceRequest;
23
+ __decorate([
24
+ (0, class_validator_1.IsString)(),
25
+ (0, class_validator_1.IsNotEmpty)(),
26
+ __metadata("design:type", String)
27
+ ], ReportPlaceRequest.prototype, "placeId", void 0);
28
+ __decorate([
29
+ (0, class_validator_1.IsNumber)(),
30
+ (0, class_validator_1.Min)(-90),
31
+ (0, class_validator_1.Max)(90),
32
+ __metadata("design:type", Number)
33
+ ], ReportPlaceRequest.prototype, "latitude", void 0);
34
+ __decorate([
35
+ (0, class_validator_1.IsNumber)(),
36
+ (0, class_validator_1.Min)(-180),
37
+ (0, class_validator_1.Max)(180),
38
+ __metadata("design:type", Number)
39
+ ], ReportPlaceRequest.prototype, "longitude", void 0);
40
+ __decorate([
41
+ (0, class_validator_1.IsOptional)(),
42
+ (0, class_validator_1.IsEnum)(ReportReasonEnum_1.ReportReasonEnum),
43
+ __metadata("design:type", String)
44
+ ], ReportPlaceRequest.prototype, "reason", void 0);
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Tienda reportada como inexistente, para revisión en backoffice.
3
+ * Response DTO — sin decoradores.
4
+ */
5
+ export declare class ReportedPlaceDto {
6
+ placeId: string;
7
+ h3Cell: string;
8
+ name: string;
9
+ reportCount: number;
10
+ flagged: boolean;
11
+ suppressed: boolean;
12
+ /** epoch ms del último reporte */
13
+ lastReportAt: number;
14
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReportedPlaceDto = void 0;
4
+ /**
5
+ * Tienda reportada como inexistente, para revisión en backoffice.
6
+ * Response DTO — sin decoradores.
7
+ */
8
+ class ReportedPlaceDto {
9
+ }
10
+ exports.ReportedPlaceDto = ReportedPlaceDto;
@@ -0,0 +1,10 @@
1
+ import { ResolveReportedActionEnum } from '../enums/ResolveReportedActionEnum';
2
+ /**
3
+ * Resolución del backoffice sobre una tienda reportada.
4
+ * CONFIRM = ocultar definitivo (sobrevive al refresco de HERE); DISMISS = limpiar.
5
+ */
6
+ export declare class ResolveReportedPlaceRequest {
7
+ placeId: string;
8
+ h3Cell: string;
9
+ action: ResolveReportedActionEnum;
10
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ResolveReportedPlaceRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const ResolveReportedActionEnum_1 = require("../enums/ResolveReportedActionEnum");
15
+ /**
16
+ * Resolución del backoffice sobre una tienda reportada.
17
+ * CONFIRM = ocultar definitivo (sobrevive al refresco de HERE); DISMISS = limpiar.
18
+ */
19
+ class ResolveReportedPlaceRequest {
20
+ }
21
+ exports.ResolveReportedPlaceRequest = ResolveReportedPlaceRequest;
22
+ __decorate([
23
+ (0, class_validator_1.IsString)(),
24
+ (0, class_validator_1.IsNotEmpty)(),
25
+ __metadata("design:type", String)
26
+ ], ResolveReportedPlaceRequest.prototype, "placeId", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsString)(),
29
+ (0, class_validator_1.IsNotEmpty)(),
30
+ __metadata("design:type", String)
31
+ ], ResolveReportedPlaceRequest.prototype, "h3Cell", void 0);
32
+ __decorate([
33
+ (0, class_validator_1.IsEnum)(ResolveReportedActionEnum_1.ResolveReportedActionEnum),
34
+ __metadata("design:type", String)
35
+ ], ResolveReportedPlaceRequest.prototype, "action", void 0);
@@ -0,0 +1,6 @@
1
+ export declare enum EstablishmentBrandEnum {
2
+ WALMART = "WALMART",
3
+ SEVEN_ELEVEN = "SEVEN_ELEVEN",
4
+ CVS = "CVS",
5
+ DOLLAR_TREE = "DOLLAR_TREE"
6
+ }