@fiado/type-kit 3.596.0 → 3.598.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 (67) hide show
  1. package/_test_/unit/customerMessages/customerMessagesContract.test.ts +71 -0
  2. package/_test_/unit/messageMoments/MessageMomentClassification.test.ts +85 -0
  3. package/_test_/unit/retailPromotions/constants.test.ts +1 -2
  4. package/_test_/unit/rules/segmentRelation.test.ts +62 -0
  5. package/bin/customerMessages/constants/CustomerMessageLimits.d.ts +7 -0
  6. package/bin/customerMessages/constants/CustomerMessageLimits.js +13 -0
  7. package/bin/customerMessages/dtos/requests/CustomerManualMessageRequest.d.ts +6 -0
  8. package/bin/customerMessages/dtos/requests/CustomerManualMessageRequest.js +31 -0
  9. package/bin/customerMessages/dtos/requests/CustomerMessageHistoryQuery.d.ts +8 -0
  10. package/bin/customerMessages/dtos/requests/CustomerMessageHistoryQuery.js +40 -0
  11. package/bin/customerMessages/dtos/responses/CollectionQuotaDay.d.ts +9 -0
  12. package/bin/customerMessages/dtos/responses/CollectionQuotaDay.js +7 -0
  13. package/bin/customerMessages/dtos/responses/CollectionQuotaResponse.d.ts +8 -0
  14. package/bin/customerMessages/dtos/responses/CollectionQuotaResponse.js +7 -0
  15. package/bin/customerMessages/dtos/responses/CustomerManualMessageResponse.d.ts +4 -0
  16. package/bin/customerMessages/dtos/responses/CustomerManualMessageResponse.js +7 -0
  17. package/bin/customerMessages/dtos/responses/CustomerMessageHistoryItem.d.ts +19 -0
  18. package/bin/customerMessages/dtos/responses/CustomerMessageHistoryItem.js +7 -0
  19. package/bin/customerMessages/dtos/responses/CustomerMessageHistoryResponse.d.ts +8 -0
  20. package/bin/customerMessages/dtos/responses/CustomerMessageHistoryResponse.js +7 -0
  21. package/bin/customerMessages/index.d.ts +8 -0
  22. package/bin/customerMessages/index.js +24 -0
  23. package/bin/index.d.ts +1 -0
  24. package/bin/index.js +3 -1
  25. package/bin/messageMoments/constants/MessageMomentCatalog.d.ts +11 -0
  26. package/bin/messageMoments/constants/MessageMomentCatalog.js +13 -1
  27. package/bin/messageMoments/constants/MessageMomentClassification.d.ts +19 -0
  28. package/bin/messageMoments/constants/MessageMomentClassification.js +51 -0
  29. package/bin/messageMoments/enums/MessageMomentCategoryEnum.d.ts +5 -0
  30. package/bin/messageMoments/enums/MessageMomentCategoryEnum.js +9 -0
  31. package/bin/messageMoments/index.d.ts +2 -0
  32. package/bin/messageMoments/index.js +2 -0
  33. package/bin/retailPromotions/constants/retailPromotionsErrorHttpStatus.js +0 -1
  34. package/bin/retailPromotions/enums/RetailPromotionsErrorCodeEnum.d.ts +0 -2
  35. package/bin/retailPromotions/enums/RetailPromotionsErrorCodeEnum.js +0 -2
  36. package/bin/rules/dtos/population/SegmentGroup.d.ts +2 -1
  37. package/bin/rules/dtos/population/SegmentGroup.js +2 -0
  38. package/bin/rules/dtos/population/SegmentRelationCondition.d.ts +18 -0
  39. package/bin/rules/dtos/population/SegmentRelationCondition.js +69 -0
  40. package/bin/rules/enums/SegmentConditionKindEnum.d.ts +2 -1
  41. package/bin/rules/enums/SegmentConditionKindEnum.js +1 -0
  42. package/bin/rules/enums/SegmentRelationQuantifierKindEnum.d.ts +5 -0
  43. package/bin/rules/enums/SegmentRelationQuantifierKindEnum.js +9 -0
  44. package/bin/rules/index.d.ts +2 -0
  45. package/bin/rules/index.js +2 -0
  46. package/package.json +1 -1
  47. package/src/customerMessages/constants/CustomerMessageLimits.ts +13 -0
  48. package/src/customerMessages/dtos/requests/CustomerManualMessageRequest.ts +16 -0
  49. package/src/customerMessages/dtos/requests/CustomerMessageHistoryQuery.ts +25 -0
  50. package/src/customerMessages/dtos/responses/CollectionQuotaDay.ts +10 -0
  51. package/src/customerMessages/dtos/responses/CollectionQuotaResponse.ts +9 -0
  52. package/src/customerMessages/dtos/responses/CustomerManualMessageResponse.ts +4 -0
  53. package/src/customerMessages/dtos/responses/CustomerMessageHistoryItem.ts +20 -0
  54. package/src/customerMessages/dtos/responses/CustomerMessageHistoryResponse.ts +9 -0
  55. package/src/customerMessages/index.ts +8 -0
  56. package/src/index.ts +3 -0
  57. package/src/messageMoments/constants/MessageMomentCatalog.ts +20 -1
  58. package/src/messageMoments/constants/MessageMomentClassification.ts +56 -0
  59. package/src/messageMoments/enums/MessageMomentCategoryEnum.ts +5 -0
  60. package/src/messageMoments/index.ts +2 -0
  61. package/src/retailPromotions/constants/retailPromotionsErrorHttpStatus.ts +0 -1
  62. package/src/retailPromotions/enums/RetailPromotionsErrorCodeEnum.ts +0 -2
  63. package/src/rules/dtos/population/SegmentGroup.ts +3 -1
  64. package/src/rules/dtos/population/SegmentRelationCondition.ts +25 -0
  65. package/src/rules/enums/SegmentConditionKindEnum.ts +1 -0
  66. package/src/rules/enums/SegmentRelationQuantifierKindEnum.ts +5 -0
  67. package/src/rules/index.ts +2 -0
@@ -0,0 +1,25 @@
1
+ import { Expose, Type } from 'class-transformer';
2
+ import { ArrayMaxSize, Equals, IsArray, IsEnum, IsNumber, IsOptional, Matches, ValidateIf, ValidateNested } from 'class-validator';
3
+ import { RULES_RELATION_NAME_PATTERN } from '../../constants/RulesRelationLimits';
4
+ import { SegmentConditionKindEnum } from '../../enums/SegmentConditionKindEnum';
5
+ import { SegmentOperatorEnum } from '../../enums/SegmentOperatorEnum';
6
+ import { SegmentRelationQuantifierKindEnum } from '../../enums/SegmentRelationQuantifierKindEnum';
7
+ import { SegmentColumnCondition } from './SegmentColumnCondition';
8
+
9
+ /** Cuantificador de una relacion 1:N. COUNT exige `op` y `value`; ANY/ALL no los llevan. */
10
+ export class SegmentRelationQuantifier {
11
+ @Expose() @IsEnum(SegmentRelationQuantifierKindEnum) kind: SegmentRelationQuantifierKindEnum;
12
+ @Expose() @ValidateIf((q: SegmentRelationQuantifier) => q.kind === SegmentRelationQuantifierKindEnum.COUNT || q.op !== undefined)
13
+ @IsEnum(SegmentOperatorEnum) op?: SegmentOperatorEnum;
14
+ @Expose() @ValidateIf((q: SegmentRelationQuantifier) => q.kind === SegmentRelationQuantifierKindEnum.COUNT || q.value !== undefined)
15
+ @IsNumber() value?: number;
16
+ }
17
+
18
+ /** (c) Condicion sobre los relacionados de la persona (referidor / referidos). `filters` se aplica a cada relacionado. */
19
+ export class SegmentRelationCondition {
20
+ @Expose() @Equals(SegmentConditionKindEnum.RELATION) kind: SegmentConditionKindEnum.RELATION;
21
+ @Expose() @Matches(RULES_RELATION_NAME_PATTERN) relation: string;
22
+ /** MANY: obligatorio; ONE: ausente (lo valida el compilador, no el DTO). */
23
+ @Expose() @IsOptional() @ValidateNested() @Type(() => SegmentRelationQuantifier) quantifier?: SegmentRelationQuantifier;
24
+ @Expose() @IsArray() @ArrayMaxSize(10) @ValidateNested({ each: true }) @Type(() => SegmentColumnCondition) filters: SegmentColumnCondition[];
25
+ }
@@ -1,4 +1,5 @@
1
1
  export enum SegmentConditionKindEnum {
2
2
  COLUMN = 'COLUMN',
3
3
  AGGREGATE = 'AGGREGATE',
4
+ RELATION = 'RELATION',
4
5
  }
@@ -0,0 +1,5 @@
1
+ export enum SegmentRelationQuantifierKindEnum {
2
+ ANY = 'ANY',
3
+ ALL = 'ALL',
4
+ COUNT = 'COUNT',
5
+ }
@@ -27,6 +27,7 @@ export * from './dtos/EvaluateRulesResponse';
27
27
  export * from './enums/SegmentMatchEnum';
28
28
  export * from './enums/SegmentOutputEnum';
29
29
  export * from './enums/SegmentConditionKindEnum';
30
+ export * from './enums/SegmentRelationQuantifierKindEnum';
30
31
  export * from './enums/SegmentAggregateFnEnum';
31
32
  export * from './enums/SegmentOperatorEnum';
32
33
  export * from './enums/SegmentParamTypeEnum';
@@ -35,6 +36,7 @@ export * from './constants/SegmentLimits';
35
36
  export * from './dtos/population/SegmentWindow';
36
37
  export * from './dtos/population/SegmentColumnCondition';
37
38
  export * from './dtos/population/SegmentAggregateCondition';
39
+ export * from './dtos/population/SegmentRelationCondition';
38
40
  export * from './dtos/population/SegmentGroup';
39
41
  export * from './dtos/population/PopulationSegmentDefinition';
40
42
  export * from './dtos/population/SegmentParam';