@veruna/api-contracts 6.16.0 → 6.18.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 (103) hide show
  1. package/build/controllers/index.d.ts +1 -0
  2. package/build/controllers/index.js +4 -1
  3. package/build/controllers/index.js.map +1 -1
  4. package/build/controllers/promo.controllers.d.ts +2 -0
  5. package/build/controllers/promo.controllers.js +6 -0
  6. package/build/controllers/promo.controllers.js.map +1 -0
  7. package/build/locales/validation.d.ts +298 -0
  8. package/build/locales/validation.js +204 -0
  9. package/build/locales/validation.js.map +1 -1
  10. package/build/rest-api.d.ts +15 -0
  11. package/build/rest-api.js +15 -0
  12. package/build/rest-api.js.map +1 -1
  13. package/build/routes/index.d.ts +1 -0
  14. package/build/routes/index.js +4 -1
  15. package/build/routes/index.js.map +1 -1
  16. package/build/routes/promo.routes.d.ts +12 -0
  17. package/build/routes/promo.routes.js +16 -0
  18. package/build/routes/promo.routes.js.map +1 -0
  19. package/build/routes/subscription.routes.d.ts +1 -0
  20. package/build/routes/subscription.routes.js +1 -0
  21. package/build/routes/subscription.routes.js.map +1 -1
  22. package/build/tsconfig.tsbuildinfo +1 -1
  23. package/build/v1/index.d.ts +1 -0
  24. package/build/v1/index.js +1 -0
  25. package/build/v1/index.js.map +1 -1
  26. package/build/v1/promo/commands/admin-create-promo.command.d.ts +50 -0
  27. package/build/v1/promo/commands/admin-create-promo.command.js +14 -0
  28. package/build/v1/promo/commands/admin-create-promo.command.js.map +1 -0
  29. package/build/v1/promo/commands/admin-delete-promo.command.d.ts +12 -0
  30. package/build/v1/promo/commands/admin-delete-promo.command.js +15 -0
  31. package/build/v1/promo/commands/admin-delete-promo.command.js.map +1 -0
  32. package/build/v1/promo/commands/admin-update-promo.command.d.ts +44 -0
  33. package/build/v1/promo/commands/admin-update-promo.command.js +14 -0
  34. package/build/v1/promo/commands/admin-update-promo.command.js.map +1 -0
  35. package/build/v1/promo/commands/check-promo.command.d.ts +26 -0
  36. package/build/v1/promo/commands/check-promo.command.js +14 -0
  37. package/build/v1/promo/commands/check-promo.command.js.map +1 -0
  38. package/build/v1/promo/commands/index.d.ts +5 -0
  39. package/build/v1/promo/commands/index.js +22 -0
  40. package/build/v1/promo/commands/index.js.map +1 -0
  41. package/build/v1/promo/commands/redeem-promo.command.d.ts +16 -0
  42. package/build/v1/promo/commands/redeem-promo.command.js +14 -0
  43. package/build/v1/promo/commands/redeem-promo.command.js.map +1 -0
  44. package/build/v1/promo/index.d.ts +6 -0
  45. package/build/v1/promo/index.js +28 -0
  46. package/build/v1/promo/index.js.map +1 -0
  47. package/build/v1/promo/promo.errors.d.ts +16 -0
  48. package/build/v1/promo/promo.errors.js +69 -0
  49. package/build/v1/promo/promo.errors.js.map +1 -0
  50. package/build/v1/promo/queries/admin-get-promo-by-id.query.d.ts +33 -0
  51. package/build/v1/promo/queries/admin-get-promo-by-id.query.js +15 -0
  52. package/build/v1/promo/queries/admin-get-promo-by-id.query.js.map +1 -0
  53. package/build/v1/promo/queries/admin-list-promo-redemptions.query.d.ts +23 -0
  54. package/build/v1/promo/queries/admin-list-promo-redemptions.query.js +14 -0
  55. package/build/v1/promo/queries/admin-list-promo-redemptions.query.js.map +1 -0
  56. package/build/v1/promo/queries/admin-list-promos.query.d.ts +41 -0
  57. package/build/v1/promo/queries/admin-list-promos.query.js +14 -0
  58. package/build/v1/promo/queries/admin-list-promos.query.js.map +1 -0
  59. package/build/v1/promo/queries/index.d.ts +3 -0
  60. package/build/v1/promo/queries/index.js +20 -0
  61. package/build/v1/promo/queries/index.js.map +1 -0
  62. package/build/v1/promo/schemas/admin-promo-redemptions.schema.d.ts +28 -0
  63. package/build/v1/promo/schemas/admin-promo-redemptions.schema.js +32 -0
  64. package/build/v1/promo/schemas/admin-promo-redemptions.schema.js.map +1 -0
  65. package/build/v1/promo/schemas/check-promo.schema.d.ts +22 -0
  66. package/build/v1/promo/schemas/check-promo.schema.js +34 -0
  67. package/build/v1/promo/schemas/check-promo.schema.js.map +1 -0
  68. package/build/v1/promo/schemas/index.d.ts +7 -0
  69. package/build/v1/promo/schemas/index.js +24 -0
  70. package/build/v1/promo/schemas/index.js.map +1 -0
  71. package/build/v1/promo/schemas/promo-code.schema.d.ts +103 -0
  72. package/build/v1/promo/schemas/promo-code.schema.js +216 -0
  73. package/build/v1/promo/schemas/promo-code.schema.js.map +1 -0
  74. package/build/v1/promo/schemas/promo-kind.enum.d.ts +4 -0
  75. package/build/v1/promo/schemas/promo-kind.enum.js +9 -0
  76. package/build/v1/promo/schemas/promo-kind.enum.js.map +1 -0
  77. package/build/v1/promo/schemas/promo-redemption-status.enum.d.ts +5 -0
  78. package/build/v1/promo/schemas/promo-redemption-status.enum.js +10 -0
  79. package/build/v1/promo/schemas/promo-redemption-status.enum.js.map +1 -0
  80. package/build/v1/promo/schemas/promo-status.enum.d.ts +4 -0
  81. package/build/v1/promo/schemas/promo-status.enum.js +9 -0
  82. package/build/v1/promo/schemas/promo-status.enum.js.map +1 -0
  83. package/build/v1/promo/schemas/redeem-promo.schema.d.ts +9 -0
  84. package/build/v1/promo/schemas/redeem-promo.schema.js +18 -0
  85. package/build/v1/promo/schemas/redeem-promo.schema.js.map +1 -0
  86. package/build/v1/subscription/commands/buy-package.command.d.ts +4 -0
  87. package/build/v1/subscription/commands/checkout.command.d.ts +4 -0
  88. package/build/v1/subscription/commands/index.d.ts +1 -0
  89. package/build/v1/subscription/commands/index.js +1 -0
  90. package/build/v1/subscription/commands/index.js.map +1 -1
  91. package/build/v1/subscription/commands/promo-quote.command.d.ts +19 -0
  92. package/build/v1/subscription/commands/promo-quote.command.js +14 -0
  93. package/build/v1/subscription/commands/promo-quote.command.js.map +1 -0
  94. package/build/v1/subscription/schemas/subscription.schema.d.ts +22 -0
  95. package/build/v1/subscription/schemas/subscription.schema.js +35 -1
  96. package/build/v1/subscription/schemas/subscription.schema.js.map +1 -1
  97. package/build/v1/subscription/subscription.errors.d.ts +3 -1
  98. package/build/v1/subscription/subscription.errors.js +10 -0
  99. package/build/v1/subscription/subscription.errors.js.map +1 -1
  100. package/build/v1/wallet/schemas/balance-type-code.enum.d.ts +2 -1
  101. package/build/v1/wallet/schemas/balance-type-code.enum.js +1 -0
  102. package/build/v1/wallet/schemas/balance-type-code.enum.js.map +1 -1
  103. package/package.json +1 -1
@@ -0,0 +1,20 @@
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
+ __exportStar(require("./admin-get-promo-by-id.query"), exports);
18
+ __exportStar(require("./admin-list-promos.query"), exports);
19
+ __exportStar(require("./admin-list-promo-redemptions.query"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../v1/promo/queries/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,4DAA0C;AAC1C,uEAAqD"}
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+ import { PromoRedemptionStatus } from './promo-redemption-status.enum';
3
+ export declare const AdminListPromoRedemptionsRequestSchema: z.ZodObject<{
4
+ page: z.ZodDefault<z.ZodNumber>;
5
+ limit: z.ZodDefault<z.ZodNumber>;
6
+ }, z.core.$strip>;
7
+ export type AdminListPromoRedemptionsRequest = z.infer<typeof AdminListPromoRedemptionsRequestSchema>;
8
+ export declare const PromoRedemptionSchema: z.ZodObject<{
9
+ id: z.ZodString;
10
+ userId: z.ZodString;
11
+ status: z.ZodEnum<typeof PromoRedemptionStatus>;
12
+ orderId: z.ZodNullable<z.ZodString>;
13
+ grantedAmount: z.ZodString;
14
+ redeemedAt: z.ZodString;
15
+ }, z.core.$strip>;
16
+ export type PromoRedemptionDto = z.infer<typeof PromoRedemptionSchema>;
17
+ export declare const AdminPromoRedemptionsResponseSchema: z.ZodObject<{
18
+ items: z.ZodArray<z.ZodObject<{
19
+ id: z.ZodString;
20
+ userId: z.ZodString;
21
+ status: z.ZodEnum<typeof PromoRedemptionStatus>;
22
+ orderId: z.ZodNullable<z.ZodString>;
23
+ grantedAmount: z.ZodString;
24
+ redeemedAt: z.ZodString;
25
+ }, z.core.$strip>>;
26
+ total: z.ZodNumber;
27
+ }, z.core.$strip>;
28
+ export type AdminPromoRedemptionsResponse = z.infer<typeof AdminPromoRedemptionsResponseSchema>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdminPromoRedemptionsResponseSchema = exports.PromoRedemptionSchema = exports.AdminListPromoRedemptionsRequestSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const shared_1 = require("../../../shared");
6
+ const promo_redemption_status_enum_1 = require("./promo-redemption-status.enum");
7
+ exports.AdminListPromoRedemptionsRequestSchema = zod_1.z.object({
8
+ page: zod_1.z
9
+ .number({ error: 'AdminListPromoRedemptionsRequest.page.invalid' })
10
+ .int({ message: 'AdminListPromoRedemptionsRequest.page.invalid' })
11
+ .positive({ message: 'AdminListPromoRedemptionsRequest.page.min' })
12
+ .default(1),
13
+ limit: zod_1.z
14
+ .number({ error: 'AdminListPromoRedemptionsRequest.limit.invalid' })
15
+ .int({ message: 'AdminListPromoRedemptionsRequest.limit.invalid' })
16
+ .positive({ message: 'AdminListPromoRedemptionsRequest.limit.min' })
17
+ .max(100, { message: 'AdminListPromoRedemptionsRequest.limit.max' })
18
+ .default(20),
19
+ });
20
+ exports.PromoRedemptionSchema = zod_1.z.object({
21
+ id: zod_1.z.string().regex(shared_1.UUID_REGEX),
22
+ userId: zod_1.z.string().regex(shared_1.UUID_REGEX),
23
+ status: zod_1.z.nativeEnum(promo_redemption_status_enum_1.PromoRedemptionStatus),
24
+ orderId: zod_1.z.string().regex(shared_1.UUID_REGEX).nullable(),
25
+ grantedAmount: zod_1.z.string(),
26
+ redeemedAt: zod_1.z.string().datetime({ offset: true }),
27
+ });
28
+ exports.AdminPromoRedemptionsResponseSchema = zod_1.z.object({
29
+ items: zod_1.z.array(exports.PromoRedemptionSchema),
30
+ total: zod_1.z.number().int().nonnegative(),
31
+ });
32
+ //# sourceMappingURL=admin-promo-redemptions.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-promo-redemptions.schema.js","sourceRoot":"","sources":["../../../../v1/promo/schemas/admin-promo-redemptions.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,4CAA6C;AAC7C,iFAAuE;AAE1D,QAAA,sCAAsC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3D,IAAI,EAAE,OAAC;SACF,MAAM,CAAC,EAAE,KAAK,EAAE,+CAA+C,EAAE,CAAC;SAClE,GAAG,CAAC,EAAE,OAAO,EAAE,+CAA+C,EAAE,CAAC;SACjE,QAAQ,CAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;SAClE,OAAO,CAAC,CAAC,CAAC;IACf,KAAK,EAAE,OAAC;SACH,MAAM,CAAC,EAAE,KAAK,EAAE,gDAAgD,EAAE,CAAC;SACnE,GAAG,CAAC,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC;SAClE,QAAQ,CAAC,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;SACnE,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;SACnE,OAAO,CAAC,EAAE,CAAC;CACnB,CAAC,CAAC;AAIU,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAU,CAAC;IAChC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAU,CAAC;IACpC,MAAM,EAAE,OAAC,CAAC,UAAU,CAAC,oDAAqB,CAAC;IAE3C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAU,CAAC,CAAC,QAAQ,EAAE;IAEhD,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;IACzB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;CACpD,CAAC,CAAC;AAIU,QAAA,mCAAmC,GAAG,OAAC,CAAC,MAAM,CAAC;IACxD,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,6BAAqB,CAAC;IACrC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACxC,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ import { PromoKind } from './promo-kind.enum';
3
+ import { PromoErrorCode } from '../promo.errors';
4
+ export declare const CheckPromoRequestSchema: z.ZodObject<{
5
+ code: z.ZodString;
6
+ }, z.core.$strip>;
7
+ export declare const CheckPromoResponseSchema: z.ZodObject<{
8
+ code: z.ZodString;
9
+ kind: z.ZodNullable<z.ZodEnum<typeof PromoKind>>;
10
+ valid: z.ZodBoolean;
11
+ reason: z.ZodNullable<z.ZodEnum<typeof PromoErrorCode>>;
12
+ validUntil: z.ZodNullable<z.ZodString>;
13
+ accountBonus: z.ZodNullable<z.ZodObject<{
14
+ amount: z.ZodString;
15
+ grantTtlDays: z.ZodNumber;
16
+ }, z.core.$strip>>;
17
+ purchaseMultiplier: z.ZodNullable<z.ZodObject<{
18
+ bonusPercent: z.ZodNumber;
19
+ maxBonusAmount: z.ZodString;
20
+ }, z.core.$strip>>;
21
+ }, z.core.$strip>;
22
+ export type CheckPromoResponse = z.infer<typeof CheckPromoResponseSchema>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CheckPromoResponseSchema = exports.CheckPromoRequestSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const promo_kind_enum_1 = require("./promo-kind.enum");
6
+ const promo_errors_1 = require("../promo.errors");
7
+ const promo_code_schema_1 = require("./promo-code.schema");
8
+ exports.CheckPromoRequestSchema = zod_1.z.object({
9
+ code: zod_1.z
10
+ .string({ error: 'CheckPromoRequest.code.required' })
11
+ .trim()
12
+ .min(1, { message: 'CheckPromoRequest.code.required' })
13
+ .max(promo_code_schema_1.PROMO_CODE_MAX_LENGTH, { message: 'CheckPromoRequest.code.max' }),
14
+ });
15
+ exports.CheckPromoResponseSchema = zod_1.z.object({
16
+ code: zod_1.z.string(),
17
+ kind: zod_1.z.nativeEnum(promo_kind_enum_1.PromoKind).nullable(),
18
+ valid: zod_1.z.boolean(),
19
+ reason: zod_1.z.nativeEnum(promo_errors_1.PromoErrorCode).nullable(),
20
+ validUntil: zod_1.z.string().datetime({ offset: true }).nullable(),
21
+ accountBonus: zod_1.z
22
+ .object({
23
+ amount: zod_1.z.string(),
24
+ grantTtlDays: zod_1.z.number().int().positive(),
25
+ })
26
+ .nullable(),
27
+ purchaseMultiplier: zod_1.z
28
+ .object({
29
+ bonusPercent: zod_1.z.number().int(),
30
+ maxBonusAmount: zod_1.z.string(),
31
+ })
32
+ .nullable(),
33
+ });
34
+ //# sourceMappingURL=check-promo.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-promo.schema.js","sourceRoot":"","sources":["../../../../v1/promo/schemas/check-promo.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,uDAA8C;AAC9C,kDAAiD;AACjD,2DAA4D;AAE/C,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,OAAC;SACF,MAAM,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC;SACpD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;SACtD,GAAG,CAAC,yCAAqB,EAAE,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;CAC7E,CAAC,CAAC;AAOU,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,OAAC,CAAC,UAAU,CAAC,2BAAS,CAAC,CAAC,QAAQ,EAAE;IACxC,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE;IAElB,MAAM,EAAE,OAAC,CAAC,UAAU,CAAC,6BAAc,CAAC,CAAC,QAAQ,EAAE;IAE/C,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAE5D,YAAY,EAAE,OAAC;SACV,MAAM,CAAC;QAEJ,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;QAClB,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KAC5C,CAAC;SACD,QAAQ,EAAE;IAEf,kBAAkB,EAAE,OAAC;SAChB,MAAM,CAAC;QACJ,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;QAE9B,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE;KAC7B,CAAC;SACD,QAAQ,EAAE;CAClB,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './promo-kind.enum';
2
+ export * from './promo-status.enum';
3
+ export * from './promo-redemption-status.enum';
4
+ export * from './promo-code.schema';
5
+ export * from './redeem-promo.schema';
6
+ export * from './check-promo.schema';
7
+ export * from './admin-promo-redemptions.schema';
@@ -0,0 +1,24 @@
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
+ __exportStar(require("./promo-kind.enum"), exports);
18
+ __exportStar(require("./promo-status.enum"), exports);
19
+ __exportStar(require("./promo-redemption-status.enum"), exports);
20
+ __exportStar(require("./promo-code.schema"), exports);
21
+ __exportStar(require("./redeem-promo.schema"), exports);
22
+ __exportStar(require("./check-promo.schema"), exports);
23
+ __exportStar(require("./admin-promo-redemptions.schema"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../v1/promo/schemas/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,sDAAoC;AACpC,iEAA+C;AAC/C,sDAAoC;AACpC,wDAAsC;AACtC,uDAAqC;AACrC,mEAAiD"}
@@ -0,0 +1,103 @@
1
+ import { z } from 'zod';
2
+ import { PromoKind } from './promo-kind.enum';
3
+ import { PromoStatus } from './promo-status.enum';
4
+ import { PlanType } from '../../plans/schemas/plan-type.enum';
5
+ export declare const PROMO_CODE_MAX_LENGTH: 50;
6
+ export declare const PROMO_BONUS_PERCENT_MIN: 1;
7
+ export declare const PROMO_BONUS_PERCENT_MAX: 100;
8
+ export declare const PromoCodeSchema: z.ZodObject<{
9
+ id: z.ZodString;
10
+ code: z.ZodString;
11
+ kind: z.ZodEnum<typeof PromoKind>;
12
+ status: z.ZodEnum<typeof PromoStatus>;
13
+ bonusAmount: z.ZodNullable<z.ZodString>;
14
+ grantTtlDays: z.ZodNullable<z.ZodNumber>;
15
+ bonusPercent: z.ZodNullable<z.ZodNumber>;
16
+ maxBonusAmount: z.ZodNullable<z.ZodString>;
17
+ eligibleUserIds: z.ZodNullable<z.ZodArray<z.ZodString>>;
18
+ validFrom: z.ZodNullable<z.ZodString>;
19
+ validUntil: z.ZodNullable<z.ZodString>;
20
+ maxRedemptions: z.ZodNullable<z.ZodNumber>;
21
+ maxRedemptionsPerUser: z.ZodNumber;
22
+ firstPurchaseOnly: z.ZodBoolean;
23
+ applicablePlanTypes: z.ZodNullable<z.ZodArray<z.ZodEnum<typeof PlanType>>>;
24
+ applicablePlanIds: z.ZodNullable<z.ZodArray<z.ZodString>>;
25
+ minPurchaseAmount: z.ZodNullable<z.ZodString>;
26
+ redeemedCount: z.ZodNumber;
27
+ createdBy: z.ZodNullable<z.ZodString>;
28
+ createdAt: z.ZodString;
29
+ updatedAt: z.ZodString;
30
+ deletedAt: z.ZodNullable<z.ZodString>;
31
+ }, z.core.$strip>;
32
+ export type PromoCodeDto = z.infer<typeof PromoCodeSchema>;
33
+ export declare const PromoCodeListResponseSchema: z.ZodObject<{
34
+ items: z.ZodArray<z.ZodObject<{
35
+ id: z.ZodString;
36
+ code: z.ZodString;
37
+ kind: z.ZodEnum<typeof PromoKind>;
38
+ status: z.ZodEnum<typeof PromoStatus>;
39
+ bonusAmount: z.ZodNullable<z.ZodString>;
40
+ grantTtlDays: z.ZodNullable<z.ZodNumber>;
41
+ bonusPercent: z.ZodNullable<z.ZodNumber>;
42
+ maxBonusAmount: z.ZodNullable<z.ZodString>;
43
+ eligibleUserIds: z.ZodNullable<z.ZodArray<z.ZodString>>;
44
+ validFrom: z.ZodNullable<z.ZodString>;
45
+ validUntil: z.ZodNullable<z.ZodString>;
46
+ maxRedemptions: z.ZodNullable<z.ZodNumber>;
47
+ maxRedemptionsPerUser: z.ZodNumber;
48
+ firstPurchaseOnly: z.ZodBoolean;
49
+ applicablePlanTypes: z.ZodNullable<z.ZodArray<z.ZodEnum<typeof PlanType>>>;
50
+ applicablePlanIds: z.ZodNullable<z.ZodArray<z.ZodString>>;
51
+ minPurchaseAmount: z.ZodNullable<z.ZodString>;
52
+ redeemedCount: z.ZodNumber;
53
+ createdBy: z.ZodNullable<z.ZodString>;
54
+ createdAt: z.ZodString;
55
+ updatedAt: z.ZodString;
56
+ deletedAt: z.ZodNullable<z.ZodString>;
57
+ }, z.core.$strip>>;
58
+ total: z.ZodNumber;
59
+ }, z.core.$strip>;
60
+ export type PromoCodeListResponseDto = z.infer<typeof PromoCodeListResponseSchema>;
61
+ export declare const AdminCreatePromoRequestSchema: z.ZodObject<{
62
+ code: z.ZodString;
63
+ kind: z.ZodEnum<typeof PromoKind>;
64
+ status: z.ZodDefault<z.ZodEnum<typeof PromoStatus>>;
65
+ bonusAmount: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
66
+ grantTtlDays: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
67
+ bonusPercent: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
68
+ maxBonusAmount: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
69
+ eligibleUserIds: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>>;
70
+ validFrom: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
71
+ validUntil: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
72
+ maxRedemptions: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
73
+ maxRedemptionsPerUser: z.ZodDefault<z.ZodNumber>;
74
+ firstPurchaseOnly: z.ZodDefault<z.ZodBoolean>;
75
+ applicablePlanTypes: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodEnum<typeof PlanType>>>>>;
76
+ applicablePlanIds: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>>;
77
+ minPurchaseAmount: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
78
+ }, z.core.$strip>;
79
+ export type AdminCreatePromoRequest = z.infer<typeof AdminCreatePromoRequestSchema>;
80
+ export declare const AdminUpdatePromoRequestSchema: z.ZodObject<{
81
+ status: z.ZodOptional<z.ZodEnum<typeof PromoStatus>>;
82
+ eligibleUserIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
83
+ validFrom: z.ZodOptional<z.ZodNullable<z.ZodString>>;
84
+ validUntil: z.ZodOptional<z.ZodNullable<z.ZodString>>;
85
+ maxRedemptions: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
86
+ maxRedemptionsPerUser: z.ZodOptional<z.ZodNumber>;
87
+ firstPurchaseOnly: z.ZodOptional<z.ZodBoolean>;
88
+ applicablePlanTypes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodEnum<typeof PlanType>>>>;
89
+ applicablePlanIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
90
+ minPurchaseAmount: z.ZodOptional<z.ZodNullable<z.ZodString>>;
91
+ }, z.core.$strip>;
92
+ export type AdminUpdatePromoRequest = z.infer<typeof AdminUpdatePromoRequestSchema>;
93
+ export declare const AdminDeletePromoResponseSchema: z.ZodObject<{
94
+ id: z.ZodString;
95
+ }, z.core.$strip>;
96
+ export type AdminDeletePromoResponse = z.infer<typeof AdminDeletePromoResponseSchema>;
97
+ export declare const AdminListPromosRequestSchema: z.ZodObject<{
98
+ status: z.ZodOptional<z.ZodEnum<typeof PromoStatus>>;
99
+ kind: z.ZodOptional<z.ZodEnum<typeof PromoKind>>;
100
+ page: z.ZodDefault<z.ZodNumber>;
101
+ limit: z.ZodDefault<z.ZodNumber>;
102
+ }, z.core.$strip>;
103
+ export type AdminListPromosRequest = z.infer<typeof AdminListPromosRequestSchema>;
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdminListPromosRequestSchema = exports.AdminDeletePromoResponseSchema = exports.AdminUpdatePromoRequestSchema = exports.AdminCreatePromoRequestSchema = exports.PromoCodeListResponseSchema = exports.PromoCodeSchema = exports.PROMO_BONUS_PERCENT_MAX = exports.PROMO_BONUS_PERCENT_MIN = exports.PROMO_CODE_MAX_LENGTH = void 0;
4
+ const zod_1 = require("zod");
5
+ const shared_1 = require("../../../shared");
6
+ const promo_kind_enum_1 = require("./promo-kind.enum");
7
+ const promo_status_enum_1 = require("./promo-status.enum");
8
+ const plan_type_enum_1 = require("../../plans/schemas/plan-type.enum");
9
+ exports.PROMO_CODE_MAX_LENGTH = 50;
10
+ exports.PROMO_BONUS_PERCENT_MIN = 1;
11
+ exports.PROMO_BONUS_PERCENT_MAX = 100;
12
+ exports.PromoCodeSchema = zod_1.z.object({
13
+ id: zod_1.z.string().regex(shared_1.UUID_REGEX),
14
+ code: zod_1.z.string(),
15
+ kind: zod_1.z.nativeEnum(promo_kind_enum_1.PromoKind),
16
+ status: zod_1.z.nativeEnum(promo_status_enum_1.PromoStatus),
17
+ bonusAmount: zod_1.z.string().nullable(),
18
+ grantTtlDays: zod_1.z.number().int().positive().nullable(),
19
+ bonusPercent: zod_1.z.number().int().min(1).max(100).nullable(),
20
+ maxBonusAmount: zod_1.z.string().nullable(),
21
+ eligibleUserIds: zod_1.z.array(zod_1.z.string().regex(shared_1.UUID_REGEX)).nullable(),
22
+ validFrom: zod_1.z.string().datetime().nullable(),
23
+ validUntil: zod_1.z.string().datetime().nullable(),
24
+ maxRedemptions: zod_1.z.number().int().positive().nullable(),
25
+ maxRedemptionsPerUser: zod_1.z.number().int().positive(),
26
+ firstPurchaseOnly: zod_1.z.boolean(),
27
+ applicablePlanTypes: zod_1.z.array(zod_1.z.nativeEnum(plan_type_enum_1.PlanType)).nullable(),
28
+ applicablePlanIds: zod_1.z.array(zod_1.z.string().regex(shared_1.UUID_REGEX)).nullable(),
29
+ minPurchaseAmount: zod_1.z.string().nullable(),
30
+ redeemedCount: zod_1.z.number().int().nonnegative(),
31
+ createdBy: zod_1.z.string().regex(shared_1.UUID_REGEX).nullable(),
32
+ createdAt: zod_1.z.string().datetime(),
33
+ updatedAt: zod_1.z.string().datetime(),
34
+ deletedAt: zod_1.z.string().datetime().nullable(),
35
+ });
36
+ exports.PromoCodeListResponseSchema = zod_1.z.object({
37
+ items: zod_1.z.array(exports.PromoCodeSchema),
38
+ total: zod_1.z.number().int().nonnegative(),
39
+ });
40
+ exports.AdminCreatePromoRequestSchema = zod_1.z
41
+ .object({
42
+ code: zod_1.z
43
+ .string({ error: 'AdminCreatePromoRequest.code.required' })
44
+ .min(1, { message: 'AdminCreatePromoRequest.code.min' })
45
+ .max(exports.PROMO_CODE_MAX_LENGTH, { message: 'AdminCreatePromoRequest.code.max' }),
46
+ kind: zod_1.z.nativeEnum(promo_kind_enum_1.PromoKind, { error: 'AdminCreatePromoRequest.kind.invalid' }),
47
+ status: zod_1.z
48
+ .nativeEnum(promo_status_enum_1.PromoStatus, { error: 'AdminCreatePromoRequest.status.invalid' })
49
+ .default(promo_status_enum_1.PromoStatus.ACTIVE),
50
+ bonusAmount: zod_1.z
51
+ .string({ error: 'AdminCreatePromoRequest.bonusAmount.invalid' })
52
+ .regex(/^\d+$/, { message: 'AdminCreatePromoRequest.bonusAmount.invalid' })
53
+ .nullable()
54
+ .optional()
55
+ .default(null),
56
+ grantTtlDays: zod_1.z
57
+ .number({ error: 'AdminCreatePromoRequest.grantTtlDays.invalid' })
58
+ .int({ message: 'AdminCreatePromoRequest.grantTtlDays.invalid' })
59
+ .positive({ message: 'AdminCreatePromoRequest.grantTtlDays.min' })
60
+ .nullable()
61
+ .optional()
62
+ .default(null),
63
+ bonusPercent: zod_1.z
64
+ .number({ error: 'AdminCreatePromoRequest.bonusPercent.invalid' })
65
+ .int({ message: 'AdminCreatePromoRequest.bonusPercent.invalid' })
66
+ .min(exports.PROMO_BONUS_PERCENT_MIN, { message: 'AdminCreatePromoRequest.bonusPercent.min' })
67
+ .max(exports.PROMO_BONUS_PERCENT_MAX, { message: 'AdminCreatePromoRequest.bonusPercent.max' })
68
+ .nullable()
69
+ .optional()
70
+ .default(null),
71
+ maxBonusAmount: zod_1.z
72
+ .string({ error: 'AdminCreatePromoRequest.maxBonusAmount.invalid' })
73
+ .regex(/^\d+$/, { message: 'AdminCreatePromoRequest.maxBonusAmount.invalid' })
74
+ .nullable()
75
+ .optional()
76
+ .default(null),
77
+ eligibleUserIds: zod_1.z
78
+ .array(zod_1.z
79
+ .string({ error: 'AdminCreatePromoRequest.eligibleUserIds.invalid' })
80
+ .regex(shared_1.UUID_REGEX, { message: 'AdminCreatePromoRequest.eligibleUserIds.invalid' }))
81
+ .nullable()
82
+ .optional()
83
+ .default(null),
84
+ validFrom: zod_1.z
85
+ .string({ error: 'AdminCreatePromoRequest.validFrom.invalid' })
86
+ .datetime({ message: 'AdminCreatePromoRequest.validFrom.invalid' })
87
+ .nullable()
88
+ .optional()
89
+ .default(null),
90
+ validUntil: zod_1.z
91
+ .string({ error: 'AdminCreatePromoRequest.validUntil.invalid' })
92
+ .datetime({ message: 'AdminCreatePromoRequest.validUntil.invalid' })
93
+ .nullable()
94
+ .optional()
95
+ .default(null),
96
+ maxRedemptions: zod_1.z
97
+ .number({ error: 'AdminCreatePromoRequest.maxRedemptions.invalid' })
98
+ .int({ message: 'AdminCreatePromoRequest.maxRedemptions.invalid' })
99
+ .positive({ message: 'AdminCreatePromoRequest.maxRedemptions.min' })
100
+ .nullable()
101
+ .optional()
102
+ .default(null),
103
+ maxRedemptionsPerUser: zod_1.z
104
+ .number({ error: 'AdminCreatePromoRequest.maxRedemptionsPerUser.invalid' })
105
+ .int({ message: 'AdminCreatePromoRequest.maxRedemptionsPerUser.invalid' })
106
+ .positive({ message: 'AdminCreatePromoRequest.maxRedemptionsPerUser.min' })
107
+ .default(1),
108
+ firstPurchaseOnly: zod_1.z
109
+ .boolean({ error: 'AdminCreatePromoRequest.firstPurchaseOnly.invalid' })
110
+ .default(false),
111
+ applicablePlanTypes: zod_1.z
112
+ .array(zod_1.z.nativeEnum(plan_type_enum_1.PlanType, { error: 'AdminCreatePromoRequest.applicablePlanTypes.invalid' }))
113
+ .nullable()
114
+ .optional()
115
+ .default(null),
116
+ applicablePlanIds: zod_1.z
117
+ .array(zod_1.z
118
+ .string({ error: 'AdminCreatePromoRequest.applicablePlanIds.invalid' })
119
+ .regex(shared_1.UUID_REGEX, { message: 'AdminCreatePromoRequest.applicablePlanIds.invalid' }))
120
+ .nullable()
121
+ .optional()
122
+ .default(null),
123
+ minPurchaseAmount: zod_1.z
124
+ .string({ error: 'AdminCreatePromoRequest.minPurchaseAmount.invalid' })
125
+ .regex(/^\d+$/, { message: 'AdminCreatePromoRequest.minPurchaseAmount.invalid' })
126
+ .nullable()
127
+ .optional()
128
+ .default(null),
129
+ })
130
+ .refine((v) => {
131
+ if (v.kind === promo_kind_enum_1.PromoKind.ACCOUNT_BONUS) {
132
+ return v.bonusAmount !== null && v.bonusAmount !== undefined &&
133
+ v.grantTtlDays !== null && v.grantTtlDays !== undefined;
134
+ }
135
+ return true;
136
+ }, {
137
+ message: 'AdminCreatePromoRequest.bonusAmount.requiredForAccountBonus',
138
+ path: ['bonusAmount'],
139
+ })
140
+ .refine((v) => {
141
+ if (v.kind === promo_kind_enum_1.PromoKind.PURCHASE_MULTIPLIER) {
142
+ return v.bonusPercent !== null && v.bonusPercent !== undefined &&
143
+ v.maxBonusAmount !== null && v.maxBonusAmount !== undefined;
144
+ }
145
+ return true;
146
+ }, {
147
+ message: 'AdminCreatePromoRequest.bonusPercent.requiredForPurchaseMultiplier',
148
+ path: ['bonusPercent'],
149
+ });
150
+ exports.AdminUpdatePromoRequestSchema = zod_1.z.object({
151
+ status: zod_1.z.nativeEnum(promo_status_enum_1.PromoStatus, { error: 'AdminUpdatePromoRequest.status.invalid' }).optional(),
152
+ eligibleUserIds: zod_1.z
153
+ .array(zod_1.z
154
+ .string({ error: 'AdminUpdatePromoRequest.eligibleUserIds.invalid' })
155
+ .regex(shared_1.UUID_REGEX, { message: 'AdminUpdatePromoRequest.eligibleUserIds.invalid' }))
156
+ .nullable()
157
+ .optional(),
158
+ validFrom: zod_1.z
159
+ .string({ error: 'AdminUpdatePromoRequest.validFrom.invalid' })
160
+ .datetime({ message: 'AdminUpdatePromoRequest.validFrom.invalid' })
161
+ .nullable()
162
+ .optional(),
163
+ validUntil: zod_1.z
164
+ .string({ error: 'AdminUpdatePromoRequest.validUntil.invalid' })
165
+ .datetime({ message: 'AdminUpdatePromoRequest.validUntil.invalid' })
166
+ .nullable()
167
+ .optional(),
168
+ maxRedemptions: zod_1.z
169
+ .number({ error: 'AdminUpdatePromoRequest.maxRedemptions.invalid' })
170
+ .int({ message: 'AdminUpdatePromoRequest.maxRedemptions.invalid' })
171
+ .positive({ message: 'AdminUpdatePromoRequest.maxRedemptions.min' })
172
+ .nullable()
173
+ .optional(),
174
+ maxRedemptionsPerUser: zod_1.z
175
+ .number({ error: 'AdminUpdatePromoRequest.maxRedemptionsPerUser.invalid' })
176
+ .int({ message: 'AdminUpdatePromoRequest.maxRedemptionsPerUser.invalid' })
177
+ .positive({ message: 'AdminUpdatePromoRequest.maxRedemptionsPerUser.min' })
178
+ .optional(),
179
+ firstPurchaseOnly: zod_1.z
180
+ .boolean({ error: 'AdminUpdatePromoRequest.firstPurchaseOnly.invalid' })
181
+ .optional(),
182
+ applicablePlanTypes: zod_1.z
183
+ .array(zod_1.z.nativeEnum(plan_type_enum_1.PlanType, { error: 'AdminUpdatePromoRequest.applicablePlanTypes.invalid' }))
184
+ .nullable()
185
+ .optional(),
186
+ applicablePlanIds: zod_1.z
187
+ .array(zod_1.z
188
+ .string({ error: 'AdminUpdatePromoRequest.applicablePlanIds.invalid' })
189
+ .regex(shared_1.UUID_REGEX, { message: 'AdminUpdatePromoRequest.applicablePlanIds.invalid' }))
190
+ .nullable()
191
+ .optional(),
192
+ minPurchaseAmount: zod_1.z
193
+ .string({ error: 'AdminUpdatePromoRequest.minPurchaseAmount.invalid' })
194
+ .regex(/^\d+$/, { message: 'AdminUpdatePromoRequest.minPurchaseAmount.invalid' })
195
+ .nullable()
196
+ .optional(),
197
+ });
198
+ exports.AdminDeletePromoResponseSchema = zod_1.z.object({
199
+ id: zod_1.z.string().regex(shared_1.UUID_REGEX),
200
+ });
201
+ exports.AdminListPromosRequestSchema = zod_1.z.object({
202
+ status: zod_1.z.nativeEnum(promo_status_enum_1.PromoStatus, { error: 'AdminListPromosRequest.status.invalid' }).optional(),
203
+ kind: zod_1.z.nativeEnum(promo_kind_enum_1.PromoKind, { error: 'AdminListPromosRequest.kind.invalid' }).optional(),
204
+ page: zod_1.z
205
+ .number({ error: 'AdminListPromosRequest.page.invalid' })
206
+ .int({ message: 'AdminListPromosRequest.page.invalid' })
207
+ .positive({ message: 'AdminListPromosRequest.page.min' })
208
+ .default(1),
209
+ limit: zod_1.z
210
+ .number({ error: 'AdminListPromosRequest.limit.invalid' })
211
+ .int({ message: 'AdminListPromosRequest.limit.invalid' })
212
+ .positive({ message: 'AdminListPromosRequest.limit.min' })
213
+ .max(100, { message: 'AdminListPromosRequest.limit.max' })
214
+ .default(20),
215
+ });
216
+ //# sourceMappingURL=promo-code.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promo-code.schema.js","sourceRoot":"","sources":["../../../../v1/promo/schemas/promo-code.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare enum PromoKind {
2
+ ACCOUNT_BONUS = "ACCOUNT_BONUS",
3
+ PURCHASE_MULTIPLIER = "PURCHASE_MULTIPLIER"
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromoKind = void 0;
4
+ var PromoKind;
5
+ (function (PromoKind) {
6
+ PromoKind["ACCOUNT_BONUS"] = "ACCOUNT_BONUS";
7
+ PromoKind["PURCHASE_MULTIPLIER"] = "PURCHASE_MULTIPLIER";
8
+ })(PromoKind || (exports.PromoKind = PromoKind = {}));
9
+ //# sourceMappingURL=promo-kind.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promo-kind.enum.js","sourceRoot":"","sources":["../../../../v1/promo/schemas/promo-kind.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,4CAA+B,CAAA;IAC/B,wDAA2C,CAAA;AAC/C,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB"}
@@ -0,0 +1,5 @@
1
+ export declare enum PromoRedemptionStatus {
2
+ RESERVED = "RESERVED",
3
+ CONFIRMED = "CONFIRMED",
4
+ RELEASED = "RELEASED"
5
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromoRedemptionStatus = void 0;
4
+ var PromoRedemptionStatus;
5
+ (function (PromoRedemptionStatus) {
6
+ PromoRedemptionStatus["RESERVED"] = "RESERVED";
7
+ PromoRedemptionStatus["CONFIRMED"] = "CONFIRMED";
8
+ PromoRedemptionStatus["RELEASED"] = "RELEASED";
9
+ })(PromoRedemptionStatus || (exports.PromoRedemptionStatus = PromoRedemptionStatus = {}));
10
+ //# sourceMappingURL=promo-redemption-status.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promo-redemption-status.enum.js","sourceRoot":"","sources":["../../../../v1/promo/schemas/promo-redemption-status.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC7B,8CAAqB,CAAA;IACrB,gDAAuB,CAAA;IACvB,8CAAqB,CAAA;AACzB,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC"}
@@ -0,0 +1,4 @@
1
+ export declare enum PromoStatus {
2
+ ACTIVE = "ACTIVE",
3
+ DISABLED = "DISABLED"
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromoStatus = void 0;
4
+ var PromoStatus;
5
+ (function (PromoStatus) {
6
+ PromoStatus["ACTIVE"] = "ACTIVE";
7
+ PromoStatus["DISABLED"] = "DISABLED";
8
+ })(PromoStatus || (exports.PromoStatus = PromoStatus = {}));
9
+ //# sourceMappingURL=promo-status.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promo-status.enum.js","sourceRoot":"","sources":["../../../../v1/promo/schemas/promo-status.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;AACzB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export declare const RedeemPromoRequestSchema: z.ZodObject<{
3
+ code: z.ZodString;
4
+ }, z.core.$strip>;
5
+ export declare const RedeemPromoResponseSchema: z.ZodObject<{
6
+ code: z.ZodString;
7
+ grantedAmount: z.ZodString;
8
+ expiresAt: z.ZodNullable<z.ZodString>;
9
+ }, z.core.$strip>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedeemPromoResponseSchema = exports.RedeemPromoRequestSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const promo_code_schema_1 = require("./promo-code.schema");
6
+ exports.RedeemPromoRequestSchema = zod_1.z.object({
7
+ code: zod_1.z
8
+ .string({ error: 'RedeemPromoRequest.code.required' })
9
+ .trim()
10
+ .min(1, { message: 'RedeemPromoRequest.code.required' })
11
+ .max(promo_code_schema_1.PROMO_CODE_MAX_LENGTH, { message: 'RedeemPromoRequest.code.max' }),
12
+ });
13
+ exports.RedeemPromoResponseSchema = zod_1.z.object({
14
+ code: zod_1.z.string(),
15
+ grantedAmount: zod_1.z.string(),
16
+ expiresAt: zod_1.z.string().datetime({ offset: true }).nullable(),
17
+ });
18
+ //# sourceMappingURL=redeem-promo.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redeem-promo.schema.js","sourceRoot":"","sources":["../../../../v1/promo/schemas/redeem-promo.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,2DAA4D;AAE/C,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,OAAC;SACF,MAAM,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;SACrD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;SACvD,GAAG,CAAC,yCAAqB,EAAE,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;CAC9E,CAAC,CAAC;AAEU,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAEhB,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;IAEzB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC9D,CAAC,CAAC"}