@veruna/api-contracts 6.17.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 (100) 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/wallet/schemas/balance-type-code.enum.d.ts +2 -1
  98. package/build/v1/wallet/schemas/balance-type-code.enum.js +1 -0
  99. package/build/v1/wallet/schemas/balance-type-code.enum.js.map +1 -1
  100. package/package.json +1 -1
@@ -50,6 +50,7 @@ export { PLANS_CONTROLLER, PLANS_UNREG_CONTROLLER, PLANS_ADMIN_CONTROLLER } from
50
50
  export { SUBSCRIPTION_CONTROLLER } from './subscription.controllers';
51
51
  export { SUBSCRIPTION_ADMIN_CONTROLLER, PACKAGE_ADMIN_CONTROLLER, } from './subscription-admin.controllers';
52
52
  export { PAYMENT_CONTROLLER, PAYMENT_WEBHOOKS_CONTROLLER } from './payment.controllers';
53
+ export { PROMO_ADMIN_CONTROLLER, PROMO_CONTROLLER } from './promo.controllers';
53
54
  export { PAYMENT_ADMIN_CONTROLLER } from './payment-admin.controllers';
54
55
  export { FULFILLMENT_ADMIN_CONTROLLER } from './fulfillment-admin.controllers';
55
56
  export { PAYMENT_METHODS_ADMIN_CONTROLLER } from './payment-methods-admin.controllers';
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.S2S_CONTROLLER = exports.ANALYTICS_CONTROLLER = exports.ADMIN_BILLING_CONTROLLER = exports.WALLET_UNREG_CONTROLLER = exports.WALLET_CONTROLLER = exports.SITEMAP_CONTROLLER = exports.VERIFICATION_CONTROLLER = exports.ATTRIBUTION_CONTROLLER = exports.WEB_NOTIFICATIONS_CONTROLLER = exports.NOTIFICATIONS_CONTROLLER = exports.MESSAGE_REG_CONTROLLER = exports.MESSAGE_UNREG_CONTROLLER = exports.CHAT_HISTORY_CONTROLLER = exports.CHAT_REG_CONTROLLER = exports.CHAT_UNREG_CONTROLLER = exports.CHAT_PROJECT_CONTROLLER = exports.AVATAR_CONTROLLER = exports.USER_FILES_CONTROLLER = exports.CLIENT_FILE_UNREG_CONTROLLER = exports.CLIENT_FILE_REG_CONTROLLER = exports.CLIENT_FILE_CONTROLLER = exports.ADMIN_FILE_CONTROLLER = exports.AI_MODEL_TOOLS_ADMIN_CONTROLLER = exports.TOOLS_ADMIN_CONTROLLER = exports.TOOLS_UNREG_CONTROLLER = exports.TOOLS_PUBLIC_CONTROLLER = exports.AI_MODEL_UNREG_CONTROLLER = exports.AI_MODEL_USER_CONTROLLER = exports.AI_MODEL_PUBLIC_CONTROLLER = exports.AI_MODEL_ADMIN_DEFAULT_FAVORITES_CONTROLLER = exports.AI_MODEL_ADMIN_CONTROLLER = exports.AI_PROVIDER_PUBLIC_CONTROLLER = exports.AI_PROVIDER_ADMIN_CONTROLLER = exports.SEO_PAGES_PUBLIC_CONTROLLER = exports.SEO_PAGES_ADMIN_CONTROLLER = exports.ASSISTANTS_CATALOG_UNREG_CONTROLLER = exports.ASSISTANTS_CATALOG_CONTROLLER = exports.ASSISTANT_HINTS_ADMIN_CONTROLLER = exports.ASSISTANT_CATEGORIES_PUBLIC_CONTROLLER = exports.ASSISTANT_CATEGORIES_ADMIN_CONTROLLER = exports.ASSISTANTS_USER_CONTROLLER = exports.ASSISTANTS_PUBLIC_CONTROLLER = exports.ASSISTANTS_ADMIN_CONTROLLER = exports.BLOG_PUBLIC_POSTS_CONTROLLER = exports.BLOG_PUBLIC_CATEGORIES_CONTROLLER = exports.BLOG_ADMIN_POSTS_CONTROLLER = exports.BLOG_ADMIN_CATEGORIES_CONTROLLER = exports.UNREG_USERS_CONTROLLER = exports.USERS_CONTROLLER = exports.AUTH_CONTROLLER = void 0;
4
- exports.PAYMENT_METHODS_ADMIN_CONTROLLER = exports.FULFILLMENT_ADMIN_CONTROLLER = exports.PAYMENT_ADMIN_CONTROLLER = exports.PAYMENT_WEBHOOKS_CONTROLLER = exports.PAYMENT_CONTROLLER = exports.PACKAGE_ADMIN_CONTROLLER = exports.SUBSCRIPTION_ADMIN_CONTROLLER = exports.SUBSCRIPTION_CONTROLLER = exports.PLANS_ADMIN_CONTROLLER = exports.PLANS_UNREG_CONTROLLER = exports.PLANS_CONTROLLER = exports.SETTINGS_CONTROLLER = exports.WALLET_ADMIN_CONTROLLER = exports.ANTIFRAUD_ADMIN_CONTROLLER = exports.YANDEX_PROFILE_ADMIN_CONTROLLER = exports.VK_PROFILE_ADMIN_CONTROLLER = exports.TELEGRAM_PROFILE_ADMIN_CONTROLLER = exports.AUTH_ADMIN_SESSIONS_CONTROLLER = exports.EMAIL_PROFILE_ADMIN_CONTROLLER = exports.USERS_ADMIN_CONTROLLER = exports.MODEL_ROUTE_ADMIN_CONTROLLER = exports.KIE_INTEGRATION_CONTROLLER = exports.TASKS_ADMIN_CONTROLLER = exports.TASKS_UNREG_CONTROLLER = exports.TASKS_CONTROLLER = exports.DAILY_REWARDS_ADMIN_CONTROLLER = exports.DAILY_REWARDS_UNREG_CONTROLLER = exports.DAILY_REWARDS_CONTROLLER = exports.OPEN_GRAPH_UNREG_CONTROLLER = exports.OPEN_GRAPH_REG_CONTROLLER = exports.FORMS_UNREG_CONTROLLER = exports.FORMS_CONTROLLER = exports.YANDEX_PROFILE_CONTROLLER = exports.YANDEX_AUTH_CONTROLLER = exports.VK_PROFILE_CONTROLLER = exports.VK_AUTH_CONTROLLER = exports.TELEGRAM_PROFILE_CONTROLLER = exports.TELEGRAM_AUTH_CONTROLLER = void 0;
4
+ exports.PAYMENT_METHODS_ADMIN_CONTROLLER = exports.FULFILLMENT_ADMIN_CONTROLLER = exports.PAYMENT_ADMIN_CONTROLLER = exports.PROMO_CONTROLLER = exports.PROMO_ADMIN_CONTROLLER = exports.PAYMENT_WEBHOOKS_CONTROLLER = exports.PAYMENT_CONTROLLER = exports.PACKAGE_ADMIN_CONTROLLER = exports.SUBSCRIPTION_ADMIN_CONTROLLER = exports.SUBSCRIPTION_CONTROLLER = exports.PLANS_ADMIN_CONTROLLER = exports.PLANS_UNREG_CONTROLLER = exports.PLANS_CONTROLLER = exports.SETTINGS_CONTROLLER = exports.WALLET_ADMIN_CONTROLLER = exports.ANTIFRAUD_ADMIN_CONTROLLER = exports.YANDEX_PROFILE_ADMIN_CONTROLLER = exports.VK_PROFILE_ADMIN_CONTROLLER = exports.TELEGRAM_PROFILE_ADMIN_CONTROLLER = exports.AUTH_ADMIN_SESSIONS_CONTROLLER = exports.EMAIL_PROFILE_ADMIN_CONTROLLER = exports.USERS_ADMIN_CONTROLLER = exports.MODEL_ROUTE_ADMIN_CONTROLLER = exports.KIE_INTEGRATION_CONTROLLER = exports.TASKS_ADMIN_CONTROLLER = exports.TASKS_UNREG_CONTROLLER = exports.TASKS_CONTROLLER = exports.DAILY_REWARDS_ADMIN_CONTROLLER = exports.DAILY_REWARDS_UNREG_CONTROLLER = exports.DAILY_REWARDS_CONTROLLER = exports.OPEN_GRAPH_UNREG_CONTROLLER = exports.OPEN_GRAPH_REG_CONTROLLER = exports.FORMS_UNREG_CONTROLLER = exports.FORMS_CONTROLLER = exports.YANDEX_PROFILE_CONTROLLER = exports.YANDEX_AUTH_CONTROLLER = exports.VK_PROFILE_CONTROLLER = exports.VK_AUTH_CONTROLLER = exports.TELEGRAM_PROFILE_CONTROLLER = exports.TELEGRAM_AUTH_CONTROLLER = void 0;
5
5
  var auth_controllers_1 = require("./auth.controllers");
6
6
  Object.defineProperty(exports, "AUTH_CONTROLLER", { enumerable: true, get: function () { return auth_controllers_1.AUTH_CONTROLLER; } });
7
7
  var users_controllers_1 = require("./users.controllers");
@@ -139,6 +139,9 @@ Object.defineProperty(exports, "PACKAGE_ADMIN_CONTROLLER", { enumerable: true, g
139
139
  var payment_controllers_1 = require("./payment.controllers");
140
140
  Object.defineProperty(exports, "PAYMENT_CONTROLLER", { enumerable: true, get: function () { return payment_controllers_1.PAYMENT_CONTROLLER; } });
141
141
  Object.defineProperty(exports, "PAYMENT_WEBHOOKS_CONTROLLER", { enumerable: true, get: function () { return payment_controllers_1.PAYMENT_WEBHOOKS_CONTROLLER; } });
142
+ var promo_controllers_1 = require("./promo.controllers");
143
+ Object.defineProperty(exports, "PROMO_ADMIN_CONTROLLER", { enumerable: true, get: function () { return promo_controllers_1.PROMO_ADMIN_CONTROLLER; } });
144
+ Object.defineProperty(exports, "PROMO_CONTROLLER", { enumerable: true, get: function () { return promo_controllers_1.PROMO_CONTROLLER; } });
142
145
  var payment_admin_controllers_1 = require("./payment-admin.controllers");
143
146
  Object.defineProperty(exports, "PAYMENT_ADMIN_CONTROLLER", { enumerable: true, get: function () { return payment_admin_controllers_1.PAYMENT_ADMIN_CONTROLLER; } });
144
147
  var fulfillment_admin_controllers_1 = require("./fulfillment-admin.controllers");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../controllers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../controllers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const PROMO_CONTROLLER: "v1/promo";
2
+ export declare const PROMO_ADMIN_CONTROLLER: "v1/admin/promo";
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROMO_ADMIN_CONTROLLER = exports.PROMO_CONTROLLER = void 0;
4
+ exports.PROMO_CONTROLLER = 'v1/promo';
5
+ exports.PROMO_ADMIN_CONTROLLER = 'v1/admin/promo';
6
+ //# sourceMappingURL=promo.controllers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promo.controllers.js","sourceRoot":"","sources":["../../controllers/promo.controllers.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,UAAmB,CAAC;AACvC,QAAA,sBAAsB,GAAG,gBAAyB,CAAC"}
@@ -1953,6 +1953,155 @@ export declare const validationMessages: {
1953
1953
  readonly range: "Custom price must be between 100000 and 10000000 units";
1954
1954
  };
1955
1955
  };
1956
+ readonly RedeemPromoRequest: {
1957
+ readonly code: {
1958
+ readonly required: "Promo code is required";
1959
+ readonly max: "Promo code must be at most 50 characters";
1960
+ };
1961
+ };
1962
+ readonly CheckPromoRequest: {
1963
+ readonly code: {
1964
+ readonly required: "Promo code is required";
1965
+ readonly max: "Promo code must be at most 50 characters";
1966
+ };
1967
+ };
1968
+ readonly PromoQuoteRequest: {
1969
+ readonly promoCode: {
1970
+ readonly required: "Promo code is required";
1971
+ readonly max: "Promo code must be at most 50 characters";
1972
+ };
1973
+ readonly planId: {
1974
+ readonly required: "Plan ID is required";
1975
+ readonly invalid: "Invalid plan ID";
1976
+ };
1977
+ readonly periodMonths: {
1978
+ readonly invalid: "Invalid period";
1979
+ };
1980
+ readonly customPrice: {
1981
+ readonly invalid: "Invalid custom price";
1982
+ };
1983
+ };
1984
+ readonly AdminCreatePromoRequest: {
1985
+ readonly code: {
1986
+ readonly required: "Promo code is required";
1987
+ readonly min: "Promo code is required";
1988
+ readonly max: "Promo code must be at most 50 characters";
1989
+ };
1990
+ readonly kind: {
1991
+ readonly invalid: "Invalid promo kind";
1992
+ };
1993
+ readonly status: {
1994
+ readonly invalid: "Invalid promo status";
1995
+ };
1996
+ readonly bonusAmount: {
1997
+ readonly invalid: "Bonus amount must be a non-negative integer string";
1998
+ readonly requiredForAccountBonus: "bonusAmount and grantTtlDays are required for ACCOUNT_BONUS";
1999
+ };
2000
+ readonly grantTtlDays: {
2001
+ readonly invalid: "Grant TTL must be a positive integer";
2002
+ readonly min: "Grant TTL must be at least 1 day";
2003
+ };
2004
+ readonly bonusPercent: {
2005
+ readonly invalid: "Bonus percent must be an integer between 1 and 100";
2006
+ readonly min: "Bonus percent must be at least 1";
2007
+ readonly max: "Bonus percent must be at most 100";
2008
+ readonly requiredForPurchaseMultiplier: "bonusPercent and maxBonusAmount are required for PURCHASE_MULTIPLIER";
2009
+ };
2010
+ readonly maxBonusAmount: {
2011
+ readonly invalid: "Max bonus amount must be a non-negative integer string";
2012
+ };
2013
+ readonly eligibleUserIds: {
2014
+ readonly invalid: "Each eligible user ID must be a valid UUID";
2015
+ };
2016
+ readonly validFrom: {
2017
+ readonly invalid: "validFrom must be a valid ISO 8601 datetime";
2018
+ };
2019
+ readonly validUntil: {
2020
+ readonly invalid: "validUntil must be a valid ISO 8601 datetime";
2021
+ };
2022
+ readonly maxRedemptions: {
2023
+ readonly invalid: "Max redemptions must be a positive integer";
2024
+ readonly min: "Max redemptions must be at least 1";
2025
+ };
2026
+ readonly maxRedemptionsPerUser: {
2027
+ readonly invalid: "Max redemptions per user must be a positive integer";
2028
+ readonly min: "Max redemptions per user must be at least 1";
2029
+ };
2030
+ readonly firstPurchaseOnly: {
2031
+ readonly invalid: "firstPurchaseOnly must be a boolean";
2032
+ };
2033
+ readonly applicablePlanTypes: {
2034
+ readonly invalid: "Invalid plan type in applicablePlanTypes";
2035
+ };
2036
+ readonly applicablePlanIds: {
2037
+ readonly invalid: "Each plan ID in applicablePlanIds must be a valid UUID";
2038
+ };
2039
+ readonly minPurchaseAmount: {
2040
+ readonly invalid: "Min purchase amount must be a non-negative integer string";
2041
+ };
2042
+ };
2043
+ readonly AdminUpdatePromoRequest: {
2044
+ readonly status: {
2045
+ readonly invalid: "Invalid promo status";
2046
+ };
2047
+ readonly eligibleUserIds: {
2048
+ readonly invalid: "Each eligible user ID must be a valid UUID";
2049
+ };
2050
+ readonly validFrom: {
2051
+ readonly invalid: "validFrom must be a valid ISO 8601 datetime";
2052
+ };
2053
+ readonly validUntil: {
2054
+ readonly invalid: "validUntil must be a valid ISO 8601 datetime";
2055
+ };
2056
+ readonly maxRedemptions: {
2057
+ readonly invalid: "Max redemptions must be a positive integer";
2058
+ readonly min: "Max redemptions must be at least 1";
2059
+ };
2060
+ readonly maxRedemptionsPerUser: {
2061
+ readonly invalid: "Max redemptions per user must be a positive integer";
2062
+ readonly min: "Max redemptions per user must be at least 1";
2063
+ };
2064
+ readonly firstPurchaseOnly: {
2065
+ readonly invalid: "firstPurchaseOnly must be a boolean";
2066
+ };
2067
+ readonly applicablePlanTypes: {
2068
+ readonly invalid: "Invalid plan type in applicablePlanTypes";
2069
+ };
2070
+ readonly applicablePlanIds: {
2071
+ readonly invalid: "Each plan ID in applicablePlanIds must be a valid UUID";
2072
+ };
2073
+ readonly minPurchaseAmount: {
2074
+ readonly invalid: "Min purchase amount must be a non-negative integer string";
2075
+ };
2076
+ };
2077
+ readonly AdminListPromosRequest: {
2078
+ readonly status: {
2079
+ readonly invalid: "Invalid promo status";
2080
+ };
2081
+ readonly kind: {
2082
+ readonly invalid: "Invalid promo kind";
2083
+ };
2084
+ readonly page: {
2085
+ readonly invalid: "Page must be a positive integer";
2086
+ readonly min: "Page must be at least 1";
2087
+ };
2088
+ readonly limit: {
2089
+ readonly invalid: "Limit must be a positive integer";
2090
+ readonly min: "Limit must be at least 1";
2091
+ readonly max: "Limit must be at most 100";
2092
+ };
2093
+ };
2094
+ readonly AdminListPromoRedemptionsRequest: {
2095
+ readonly page: {
2096
+ readonly invalid: "Page must be a positive integer";
2097
+ readonly min: "Page must be at least 1";
2098
+ };
2099
+ readonly limit: {
2100
+ readonly invalid: "Limit must be a positive integer";
2101
+ readonly min: "Limit must be at least 1";
2102
+ readonly max: "Limit must be at most 100";
2103
+ };
2104
+ };
1956
2105
  };
1957
2106
  readonly ru: {
1958
2107
  readonly UpdateUserSettingRequest: {
@@ -3908,6 +4057,155 @@ export declare const validationMessages: {
3908
4057
  readonly range: "Кастомная цена должна быть от 100000 до 10000000 единиц";
3909
4058
  };
3910
4059
  };
4060
+ readonly RedeemPromoRequest: {
4061
+ readonly code: {
4062
+ readonly required: "Введите промокод";
4063
+ readonly max: "Промокод не должен превышать 50 символов";
4064
+ };
4065
+ };
4066
+ readonly CheckPromoRequest: {
4067
+ readonly code: {
4068
+ readonly required: "Введите промокод";
4069
+ readonly max: "Промокод не должен превышать 50 символов";
4070
+ };
4071
+ };
4072
+ readonly PromoQuoteRequest: {
4073
+ readonly promoCode: {
4074
+ readonly required: "Введите промокод";
4075
+ readonly max: "Промокод не должен превышать 50 символов";
4076
+ };
4077
+ readonly planId: {
4078
+ readonly required: "Не указан тариф";
4079
+ readonly invalid: "Неверный ID тарифа";
4080
+ };
4081
+ readonly periodMonths: {
4082
+ readonly invalid: "Неверный период";
4083
+ };
4084
+ readonly customPrice: {
4085
+ readonly invalid: "Неверная цена";
4086
+ };
4087
+ };
4088
+ readonly AdminCreatePromoRequest: {
4089
+ readonly code: {
4090
+ readonly required: "Введите промокод";
4091
+ readonly min: "Введите промокод";
4092
+ readonly max: "Промокод не должен превышать 50 символов";
4093
+ };
4094
+ readonly kind: {
4095
+ readonly invalid: "Неверный тип промокода";
4096
+ };
4097
+ readonly status: {
4098
+ readonly invalid: "Неверный статус промокода";
4099
+ };
4100
+ readonly bonusAmount: {
4101
+ readonly invalid: "Сумма бонуса должна быть строкой с неотрицательным целым числом";
4102
+ readonly requiredForAccountBonus: "bonusAmount и grantTtlDays обязательны для ACCOUNT_BONUS";
4103
+ };
4104
+ readonly grantTtlDays: {
4105
+ readonly invalid: "Срок действия бонуса должен быть положительным целым числом";
4106
+ readonly min: "Срок действия бонуса должен быть не менее 1 дня";
4107
+ };
4108
+ readonly bonusPercent: {
4109
+ readonly invalid: "Процент бонуса должен быть целым числом от 1 до 100";
4110
+ readonly min: "Процент бонуса должен быть не менее 1";
4111
+ readonly max: "Процент бонуса не должен превышать 100";
4112
+ readonly requiredForPurchaseMultiplier: "bonusPercent и maxBonusAmount обязательны для PURCHASE_MULTIPLIER";
4113
+ };
4114
+ readonly maxBonusAmount: {
4115
+ readonly invalid: "Максимальная сумма бонуса должна быть строкой с неотрицательным целым числом";
4116
+ };
4117
+ readonly eligibleUserIds: {
4118
+ readonly invalid: "Каждый ID пользователя должен быть валидным UUID";
4119
+ };
4120
+ readonly validFrom: {
4121
+ readonly invalid: "validFrom должен быть валидной датой в формате ISO 8601";
4122
+ };
4123
+ readonly validUntil: {
4124
+ readonly invalid: "validUntil должен быть валидной датой в формате ISO 8601";
4125
+ };
4126
+ readonly maxRedemptions: {
4127
+ readonly invalid: "Максимальное количество активаций должно быть положительным целым числом";
4128
+ readonly min: "Максимальное количество активаций должно быть не менее 1";
4129
+ };
4130
+ readonly maxRedemptionsPerUser: {
4131
+ readonly invalid: "Максимальное количество активаций на пользователя должно быть положительным целым числом";
4132
+ readonly min: "Максимальное количество активаций на пользователя должно быть не менее 1";
4133
+ };
4134
+ readonly firstPurchaseOnly: {
4135
+ readonly invalid: "firstPurchaseOnly должен быть булевым значением";
4136
+ };
4137
+ readonly applicablePlanTypes: {
4138
+ readonly invalid: "Неверный тип тарифа в applicablePlanTypes";
4139
+ };
4140
+ readonly applicablePlanIds: {
4141
+ readonly invalid: "Каждый ID тарифа в applicablePlanIds должен быть валидным UUID";
4142
+ };
4143
+ readonly minPurchaseAmount: {
4144
+ readonly invalid: "Минимальная сумма покупки должна быть строкой с неотрицательным целым числом";
4145
+ };
4146
+ };
4147
+ readonly AdminUpdatePromoRequest: {
4148
+ readonly status: {
4149
+ readonly invalid: "Неверный статус промокода";
4150
+ };
4151
+ readonly eligibleUserIds: {
4152
+ readonly invalid: "Каждый ID пользователя должен быть валидным UUID";
4153
+ };
4154
+ readonly validFrom: {
4155
+ readonly invalid: "validFrom должен быть валидной датой в формате ISO 8601";
4156
+ };
4157
+ readonly validUntil: {
4158
+ readonly invalid: "validUntil должен быть валидной датой в формате ISO 8601";
4159
+ };
4160
+ readonly maxRedemptions: {
4161
+ readonly invalid: "Максимальное количество активаций должно быть положительным целым числом";
4162
+ readonly min: "Максимальное количество активаций должно быть не менее 1";
4163
+ };
4164
+ readonly maxRedemptionsPerUser: {
4165
+ readonly invalid: "Максимальное количество активаций на пользователя должно быть положительным целым числом";
4166
+ readonly min: "Максимальное количество активаций на пользователя должно быть не менее 1";
4167
+ };
4168
+ readonly firstPurchaseOnly: {
4169
+ readonly invalid: "firstPurchaseOnly должен быть булевым значением";
4170
+ };
4171
+ readonly applicablePlanTypes: {
4172
+ readonly invalid: "Неверный тип тарифа в applicablePlanTypes";
4173
+ };
4174
+ readonly applicablePlanIds: {
4175
+ readonly invalid: "Каждый ID тарифа в applicablePlanIds должен быть валидным UUID";
4176
+ };
4177
+ readonly minPurchaseAmount: {
4178
+ readonly invalid: "Минимальная сумма покупки должна быть строкой с неотрицательным целым числом";
4179
+ };
4180
+ };
4181
+ readonly AdminListPromosRequest: {
4182
+ readonly status: {
4183
+ readonly invalid: "Неверный статус промокода";
4184
+ };
4185
+ readonly kind: {
4186
+ readonly invalid: "Неверный тип промокода";
4187
+ };
4188
+ readonly page: {
4189
+ readonly invalid: "Номер страницы должен быть положительным целым числом";
4190
+ readonly min: "Номер страницы должен быть не менее 1";
4191
+ };
4192
+ readonly limit: {
4193
+ readonly invalid: "Лимит должен быть положительным целым числом";
4194
+ readonly min: "Лимит должен быть не менее 1";
4195
+ readonly max: "Лимит не должен превышать 100";
4196
+ };
4197
+ };
4198
+ readonly AdminListPromoRedemptionsRequest: {
4199
+ readonly page: {
4200
+ readonly invalid: "Номер страницы должен быть положительным целым числом";
4201
+ readonly min: "Номер страницы должен быть не менее 1";
4202
+ };
4203
+ readonly limit: {
4204
+ readonly invalid: "Лимит должен быть положительным целым числом";
4205
+ readonly min: "Лимит должен быть не менее 1";
4206
+ readonly max: "Лимит не должен превышать 100";
4207
+ };
4208
+ };
3911
4209
  };
3912
4210
  };
3913
4211
  export declare function getValidationMessage(key: string, locale?: 'en' | 'ru'): string;
@@ -1849,6 +1849,108 @@ exports.validationMessages = {
1849
1849
  range: 'Custom price must be between 100000 and 10000000 units',
1850
1850
  },
1851
1851
  },
1852
+ RedeemPromoRequest: {
1853
+ code: {
1854
+ required: 'Promo code is required',
1855
+ max: 'Promo code must be at most 50 characters',
1856
+ },
1857
+ },
1858
+ CheckPromoRequest: {
1859
+ code: {
1860
+ required: 'Promo code is required',
1861
+ max: 'Promo code must be at most 50 characters',
1862
+ },
1863
+ },
1864
+ PromoQuoteRequest: {
1865
+ promoCode: {
1866
+ required: 'Promo code is required',
1867
+ max: 'Promo code must be at most 50 characters',
1868
+ },
1869
+ planId: { required: 'Plan ID is required', invalid: 'Invalid plan ID' },
1870
+ periodMonths: { invalid: 'Invalid period' },
1871
+ customPrice: { invalid: 'Invalid custom price' },
1872
+ },
1873
+ AdminCreatePromoRequest: {
1874
+ code: {
1875
+ required: 'Promo code is required',
1876
+ min: 'Promo code is required',
1877
+ max: 'Promo code must be at most 50 characters',
1878
+ },
1879
+ kind: { invalid: 'Invalid promo kind' },
1880
+ status: { invalid: 'Invalid promo status' },
1881
+ bonusAmount: {
1882
+ invalid: 'Bonus amount must be a non-negative integer string',
1883
+ requiredForAccountBonus: 'bonusAmount and grantTtlDays are required for ACCOUNT_BONUS',
1884
+ },
1885
+ grantTtlDays: {
1886
+ invalid: 'Grant TTL must be a positive integer',
1887
+ min: 'Grant TTL must be at least 1 day',
1888
+ },
1889
+ bonusPercent: {
1890
+ invalid: 'Bonus percent must be an integer between 1 and 100',
1891
+ min: 'Bonus percent must be at least 1',
1892
+ max: 'Bonus percent must be at most 100',
1893
+ requiredForPurchaseMultiplier: 'bonusPercent and maxBonusAmount are required for PURCHASE_MULTIPLIER',
1894
+ },
1895
+ maxBonusAmount: { invalid: 'Max bonus amount must be a non-negative integer string' },
1896
+ eligibleUserIds: { invalid: 'Each eligible user ID must be a valid UUID' },
1897
+ validFrom: { invalid: 'validFrom must be a valid ISO 8601 datetime' },
1898
+ validUntil: { invalid: 'validUntil must be a valid ISO 8601 datetime' },
1899
+ maxRedemptions: {
1900
+ invalid: 'Max redemptions must be a positive integer',
1901
+ min: 'Max redemptions must be at least 1',
1902
+ },
1903
+ maxRedemptionsPerUser: {
1904
+ invalid: 'Max redemptions per user must be a positive integer',
1905
+ min: 'Max redemptions per user must be at least 1',
1906
+ },
1907
+ firstPurchaseOnly: { invalid: 'firstPurchaseOnly must be a boolean' },
1908
+ applicablePlanTypes: { invalid: 'Invalid plan type in applicablePlanTypes' },
1909
+ applicablePlanIds: { invalid: 'Each plan ID in applicablePlanIds must be a valid UUID' },
1910
+ minPurchaseAmount: { invalid: 'Min purchase amount must be a non-negative integer string' },
1911
+ },
1912
+ AdminUpdatePromoRequest: {
1913
+ status: { invalid: 'Invalid promo status' },
1914
+ eligibleUserIds: { invalid: 'Each eligible user ID must be a valid UUID' },
1915
+ validFrom: { invalid: 'validFrom must be a valid ISO 8601 datetime' },
1916
+ validUntil: { invalid: 'validUntil must be a valid ISO 8601 datetime' },
1917
+ maxRedemptions: {
1918
+ invalid: 'Max redemptions must be a positive integer',
1919
+ min: 'Max redemptions must be at least 1',
1920
+ },
1921
+ maxRedemptionsPerUser: {
1922
+ invalid: 'Max redemptions per user must be a positive integer',
1923
+ min: 'Max redemptions per user must be at least 1',
1924
+ },
1925
+ firstPurchaseOnly: { invalid: 'firstPurchaseOnly must be a boolean' },
1926
+ applicablePlanTypes: { invalid: 'Invalid plan type in applicablePlanTypes' },
1927
+ applicablePlanIds: { invalid: 'Each plan ID in applicablePlanIds must be a valid UUID' },
1928
+ minPurchaseAmount: { invalid: 'Min purchase amount must be a non-negative integer string' },
1929
+ },
1930
+ AdminListPromosRequest: {
1931
+ status: { invalid: 'Invalid promo status' },
1932
+ kind: { invalid: 'Invalid promo kind' },
1933
+ page: {
1934
+ invalid: 'Page must be a positive integer',
1935
+ min: 'Page must be at least 1',
1936
+ },
1937
+ limit: {
1938
+ invalid: 'Limit must be a positive integer',
1939
+ min: 'Limit must be at least 1',
1940
+ max: 'Limit must be at most 100',
1941
+ },
1942
+ },
1943
+ AdminListPromoRedemptionsRequest: {
1944
+ page: {
1945
+ invalid: 'Page must be a positive integer',
1946
+ min: 'Page must be at least 1',
1947
+ },
1948
+ limit: {
1949
+ invalid: 'Limit must be a positive integer',
1950
+ min: 'Limit must be at least 1',
1951
+ max: 'Limit must be at most 100',
1952
+ },
1953
+ },
1852
1954
  },
1853
1955
  ru: {
1854
1956
  UpdateUserSettingRequest: {
@@ -3696,6 +3798,108 @@ exports.validationMessages = {
3696
3798
  range: 'Кастомная цена должна быть от 100000 до 10000000 единиц',
3697
3799
  },
3698
3800
  },
3801
+ RedeemPromoRequest: {
3802
+ code: {
3803
+ required: 'Введите промокод',
3804
+ max: 'Промокод не должен превышать 50 символов',
3805
+ },
3806
+ },
3807
+ CheckPromoRequest: {
3808
+ code: {
3809
+ required: 'Введите промокод',
3810
+ max: 'Промокод не должен превышать 50 символов',
3811
+ },
3812
+ },
3813
+ PromoQuoteRequest: {
3814
+ promoCode: {
3815
+ required: 'Введите промокод',
3816
+ max: 'Промокод не должен превышать 50 символов',
3817
+ },
3818
+ planId: { required: 'Не указан тариф', invalid: 'Неверный ID тарифа' },
3819
+ periodMonths: { invalid: 'Неверный период' },
3820
+ customPrice: { invalid: 'Неверная цена' },
3821
+ },
3822
+ AdminCreatePromoRequest: {
3823
+ code: {
3824
+ required: 'Введите промокод',
3825
+ min: 'Введите промокод',
3826
+ max: 'Промокод не должен превышать 50 символов',
3827
+ },
3828
+ kind: { invalid: 'Неверный тип промокода' },
3829
+ status: { invalid: 'Неверный статус промокода' },
3830
+ bonusAmount: {
3831
+ invalid: 'Сумма бонуса должна быть строкой с неотрицательным целым числом',
3832
+ requiredForAccountBonus: 'bonusAmount и grantTtlDays обязательны для ACCOUNT_BONUS',
3833
+ },
3834
+ grantTtlDays: {
3835
+ invalid: 'Срок действия бонуса должен быть положительным целым числом',
3836
+ min: 'Срок действия бонуса должен быть не менее 1 дня',
3837
+ },
3838
+ bonusPercent: {
3839
+ invalid: 'Процент бонуса должен быть целым числом от 1 до 100',
3840
+ min: 'Процент бонуса должен быть не менее 1',
3841
+ max: 'Процент бонуса не должен превышать 100',
3842
+ requiredForPurchaseMultiplier: 'bonusPercent и maxBonusAmount обязательны для PURCHASE_MULTIPLIER',
3843
+ },
3844
+ maxBonusAmount: { invalid: 'Максимальная сумма бонуса должна быть строкой с неотрицательным целым числом' },
3845
+ eligibleUserIds: { invalid: 'Каждый ID пользователя должен быть валидным UUID' },
3846
+ validFrom: { invalid: 'validFrom должен быть валидной датой в формате ISO 8601' },
3847
+ validUntil: { invalid: 'validUntil должен быть валидной датой в формате ISO 8601' },
3848
+ maxRedemptions: {
3849
+ invalid: 'Максимальное количество активаций должно быть положительным целым числом',
3850
+ min: 'Максимальное количество активаций должно быть не менее 1',
3851
+ },
3852
+ maxRedemptionsPerUser: {
3853
+ invalid: 'Максимальное количество активаций на пользователя должно быть положительным целым числом',
3854
+ min: 'Максимальное количество активаций на пользователя должно быть не менее 1',
3855
+ },
3856
+ firstPurchaseOnly: { invalid: 'firstPurchaseOnly должен быть булевым значением' },
3857
+ applicablePlanTypes: { invalid: 'Неверный тип тарифа в applicablePlanTypes' },
3858
+ applicablePlanIds: { invalid: 'Каждый ID тарифа в applicablePlanIds должен быть валидным UUID' },
3859
+ minPurchaseAmount: { invalid: 'Минимальная сумма покупки должна быть строкой с неотрицательным целым числом' },
3860
+ },
3861
+ AdminUpdatePromoRequest: {
3862
+ status: { invalid: 'Неверный статус промокода' },
3863
+ eligibleUserIds: { invalid: 'Каждый ID пользователя должен быть валидным UUID' },
3864
+ validFrom: { invalid: 'validFrom должен быть валидной датой в формате ISO 8601' },
3865
+ validUntil: { invalid: 'validUntil должен быть валидной датой в формате ISO 8601' },
3866
+ maxRedemptions: {
3867
+ invalid: 'Максимальное количество активаций должно быть положительным целым числом',
3868
+ min: 'Максимальное количество активаций должно быть не менее 1',
3869
+ },
3870
+ maxRedemptionsPerUser: {
3871
+ invalid: 'Максимальное количество активаций на пользователя должно быть положительным целым числом',
3872
+ min: 'Максимальное количество активаций на пользователя должно быть не менее 1',
3873
+ },
3874
+ firstPurchaseOnly: { invalid: 'firstPurchaseOnly должен быть булевым значением' },
3875
+ applicablePlanTypes: { invalid: 'Неверный тип тарифа в applicablePlanTypes' },
3876
+ applicablePlanIds: { invalid: 'Каждый ID тарифа в applicablePlanIds должен быть валидным UUID' },
3877
+ minPurchaseAmount: { invalid: 'Минимальная сумма покупки должна быть строкой с неотрицательным целым числом' },
3878
+ },
3879
+ AdminListPromosRequest: {
3880
+ status: { invalid: 'Неверный статус промокода' },
3881
+ kind: { invalid: 'Неверный тип промокода' },
3882
+ page: {
3883
+ invalid: 'Номер страницы должен быть положительным целым числом',
3884
+ min: 'Номер страницы должен быть не менее 1',
3885
+ },
3886
+ limit: {
3887
+ invalid: 'Лимит должен быть положительным целым числом',
3888
+ min: 'Лимит должен быть не менее 1',
3889
+ max: 'Лимит не должен превышать 100',
3890
+ },
3891
+ },
3892
+ AdminListPromoRedemptionsRequest: {
3893
+ page: {
3894
+ invalid: 'Номер страницы должен быть положительным целым числом',
3895
+ min: 'Номер страницы должен быть не менее 1',
3896
+ },
3897
+ limit: {
3898
+ invalid: 'Лимит должен быть положительным целым числом',
3899
+ min: 'Лимит должен быть не менее 1',
3900
+ max: 'Лимит не должен превышать 100',
3901
+ },
3902
+ },
3699
3903
  },
3700
3904
  };
3701
3905
  function getValidationMessage(key, locale = 'ru') {