@zorionapp/gg-toolkit 4.14.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 (176) hide show
  1. package/README.md +11 -0
  2. package/decorator/index.d.ts +1 -0
  3. package/decorator/index.js +5 -0
  4. package/decorator/index.js.map +1 -0
  5. package/decorator/swagger.decorators.d.ts +4 -0
  6. package/decorator/swagger.decorators.js +41 -0
  7. package/decorator/swagger.decorators.js.map +1 -0
  8. package/dto/index.d.ts +5 -0
  9. package/dto/index.js +9 -0
  10. package/dto/index.js.map +1 -0
  11. package/dto/merchant.dto.d.ts +16 -0
  12. package/dto/merchant.dto.js +113 -0
  13. package/dto/merchant.dto.js.map +1 -0
  14. package/dto/meta.dto.d.ts +8 -0
  15. package/dto/meta.dto.js +36 -0
  16. package/dto/meta.dto.js.map +1 -0
  17. package/dto/pagination.dto.d.ts +8 -0
  18. package/dto/pagination.dto.js +44 -0
  19. package/dto/pagination.dto.js.map +1 -0
  20. package/dto/user.dto.d.ts +33 -0
  21. package/dto/user.dto.js +258 -0
  22. package/dto/user.dto.js.map +1 -0
  23. package/dto/wallet.dto.d.ts +14 -0
  24. package/dto/wallet.dto.js +95 -0
  25. package/dto/wallet.dto.js.map +1 -0
  26. package/enum/antifraud.enums.d.ts +42 -0
  27. package/enum/antifraud.enums.js +52 -0
  28. package/enum/antifraud.enums.js.map +1 -0
  29. package/enum/currency.enum.d.ts +391 -0
  30. package/enum/currency.enum.js +400 -0
  31. package/enum/currency.enum.js.map +1 -0
  32. package/enum/db-schemas.enum.d.ts +10 -0
  33. package/enum/db-schemas.enum.js +15 -0
  34. package/enum/db-schemas.enum.js.map +1 -0
  35. package/enum/exchange.enums.d.ts +20 -0
  36. package/enum/exchange.enums.js +27 -0
  37. package/enum/exchange.enums.js.map +1 -0
  38. package/enum/index.d.ts +17 -0
  39. package/enum/index.js +21 -0
  40. package/enum/index.js.map +1 -0
  41. package/enum/invoice.enums.d.ts +12 -0
  42. package/enum/invoice.enums.js +18 -0
  43. package/enum/invoice.enums.js.map +1 -0
  44. package/enum/merchant-agent.enums.d.ts +15 -0
  45. package/enum/merchant-agent.enums.js +22 -0
  46. package/enum/merchant-agent.enums.js.map +1 -0
  47. package/enum/merchant.enums.d.ts +8 -0
  48. package/enum/merchant.enums.js +14 -0
  49. package/enum/merchant.enums.js.map +1 -0
  50. package/enum/mop.enums.d.ts +20 -0
  51. package/enum/mop.enums.js +26 -0
  52. package/enum/mop.enums.js.map +1 -0
  53. package/enum/notification.enum.d.ts +73 -0
  54. package/enum/notification.enum.js +83 -0
  55. package/enum/notification.enum.js.map +1 -0
  56. package/enum/operation.enums.d.ts +22 -0
  57. package/enum/operation.enums.js +29 -0
  58. package/enum/operation.enums.js.map +1 -0
  59. package/enum/otp.enums.d.ts +12 -0
  60. package/enum/otp.enums.js +19 -0
  61. package/enum/otp.enums.js.map +1 -0
  62. package/enum/payment.enums.d.ts +69 -0
  63. package/enum/payment.enums.js +82 -0
  64. package/enum/payment.enums.js.map +1 -0
  65. package/enum/refill.enums.d.ts +10 -0
  66. package/enum/refill.enums.js +16 -0
  67. package/enum/refill.enums.js.map +1 -0
  68. package/enum/refund.enums.d.ts +6 -0
  69. package/enum/refund.enums.js +12 -0
  70. package/enum/refund.enums.js.map +1 -0
  71. package/enum/transfer.enums.d.ts +66 -0
  72. package/enum/transfer.enums.js +78 -0
  73. package/enum/transfer.enums.js.map +1 -0
  74. package/enum/user.enums.d.ts +32 -0
  75. package/enum/user.enums.js +44 -0
  76. package/enum/user.enums.js.map +1 -0
  77. package/enum/wallet.enums.d.ts +30 -0
  78. package/enum/wallet.enums.js +39 -0
  79. package/enum/wallet.enums.js.map +1 -0
  80. package/microservices/commands/index.d.ts +1 -0
  81. package/microservices/commands/index.js +5 -0
  82. package/microservices/commands/index.js.map +1 -0
  83. package/microservices/commands/rmq.command.d.ts +34 -0
  84. package/microservices/commands/rmq.command.js +34 -0
  85. package/microservices/commands/rmq.command.js.map +1 -0
  86. package/microservices/events/index.d.ts +1 -0
  87. package/microservices/events/index.js +5 -0
  88. package/microservices/events/index.js.map +1 -0
  89. package/microservices/events/rmq.event.d.ts +5 -0
  90. package/microservices/events/rmq.event.js +10 -0
  91. package/microservices/events/rmq.event.js.map +1 -0
  92. package/microservices/index.d.ts +2 -0
  93. package/microservices/index.js +6 -0
  94. package/microservices/index.js.map +1 -0
  95. package/models/abstract-entity.d.ts +5 -0
  96. package/models/abstract-entity.js +30 -0
  97. package/models/abstract-entity.js.map +1 -0
  98. package/models/index.d.ts +1 -0
  99. package/models/index.js +5 -0
  100. package/models/index.js.map +1 -0
  101. package/nominal-type/currency/currency-type.validator.d.ts +15 -0
  102. package/nominal-type/currency/currency-type.validator.js +61 -0
  103. package/nominal-type/currency/currency-type.validator.js.map +1 -0
  104. package/nominal-type/currency/currency.ntype.d.ts +61 -0
  105. package/nominal-type/currency/currency.ntype.js +136 -0
  106. package/nominal-type/currency/currency.ntype.js.map +1 -0
  107. package/nominal-type/index.d.ts +5 -0
  108. package/nominal-type/index.js +9 -0
  109. package/nominal-type/index.js.map +1 -0
  110. package/nominal-type/money/money-type.validator.d.ts +13 -0
  111. package/nominal-type/money/money-type.validator.js +62 -0
  112. package/nominal-type/money/money-type.validator.js.map +1 -0
  113. package/nominal-type/money/money.ntype.d.ts +136 -0
  114. package/nominal-type/money/money.ntype.js +395 -0
  115. package/nominal-type/money/money.ntype.js.map +1 -0
  116. package/nominal-type/mop/mop-type.map.d.ts +2 -0
  117. package/nominal-type/mop/mop-type.map.js +653 -0
  118. package/nominal-type/mop/mop-type.map.js.map +1 -0
  119. package/nominal-type/mop/mop.ntype.d.ts +28 -0
  120. package/nominal-type/mop/mop.ntype.js +39 -0
  121. package/nominal-type/mop/mop.ntype.js.map +1 -0
  122. package/nominal-type/mop/mop.validator.d.ts +7 -0
  123. package/nominal-type/mop/mop.validator.js +24 -0
  124. package/nominal-type/mop/mop.validator.js.map +1 -0
  125. package/nominal-type/operation-id/operation-id.ntype.d.ts +30 -0
  126. package/nominal-type/operation-id/operation-id.ntype.js +33 -0
  127. package/nominal-type/operation-id/operation-id.ntype.js.map +1 -0
  128. package/nominal-type/operation-id/operation-id.validator.d.ts +7 -0
  129. package/nominal-type/operation-id/operation-id.validator.js +23 -0
  130. package/nominal-type/operation-id/operation-id.validator.js.map +1 -0
  131. package/nominal-type/wallet-id/wallet-id.ntype.d.ts +58 -0
  132. package/nominal-type/wallet-id/wallet-id.ntype.js +154 -0
  133. package/nominal-type/wallet-id/wallet-id.ntype.js.map +1 -0
  134. package/nominal-type/wallet-id/wallet-id.validator.d.ts +50 -0
  135. package/nominal-type/wallet-id/wallet-id.validator.js +79 -0
  136. package/nominal-type/wallet-id/wallet-id.validator.js.map +1 -0
  137. package/package.json +55 -0
  138. package/transformer/currency-dto.transformer.d.ts +1 -0
  139. package/transformer/currency-dto.transformer.js +15 -0
  140. package/transformer/currency-dto.transformer.js.map +1 -0
  141. package/transformer/currency-typeorm.transformer.d.ts +6 -0
  142. package/transformer/currency-typeorm.transformer.js +21 -0
  143. package/transformer/currency-typeorm.transformer.js.map +1 -0
  144. package/transformer/index.d.ts +5 -0
  145. package/transformer/index.js +9 -0
  146. package/transformer/index.js.map +1 -0
  147. package/transformer/money-dto.transformer.d.ts +4 -0
  148. package/transformer/money-dto.transformer.js +21 -0
  149. package/transformer/money-dto.transformer.js.map +1 -0
  150. package/transformer/money-typeorm.transformer.d.ts +7 -0
  151. package/transformer/money-typeorm.transformer.js +25 -0
  152. package/transformer/money-typeorm.transformer.js.map +1 -0
  153. package/transformer/to-boolean.transformer.d.ts +1 -0
  154. package/transformer/to-boolean.transformer.js +29 -0
  155. package/transformer/to-boolean.transformer.js.map +1 -0
  156. package/util/compact-object.d.ts +8 -0
  157. package/util/compact-object.js +43 -0
  158. package/util/compact-object.js.map +1 -0
  159. package/util/index.d.ts +3 -0
  160. package/util/index.js +7 -0
  161. package/util/index.js.map +1 -0
  162. package/util/money-math-formulas.d.ts +13 -0
  163. package/util/money-math-formulas.js +18 -0
  164. package/util/money-math-formulas.js.map +1 -0
  165. package/util/response-wrapper.d.ts +16 -0
  166. package/util/response-wrapper.js +41 -0
  167. package/util/response-wrapper.js.map +1 -0
  168. package/validator/index.d.ts +2 -0
  169. package/validator/index.js +6 -0
  170. package/validator/index.js.map +1 -0
  171. package/validator/is-login.validator.d.ts +3 -0
  172. package/validator/is-login.validator.js +26 -0
  173. package/validator/is-login.validator.js.map +1 -0
  174. package/validator/is-valid-enum.validator.d.ts +2 -0
  175. package/validator/is-valid-enum.validator.js +7 -0
  176. package/validator/is-valid-enum.validator.js.map +1 -0
@@ -0,0 +1,395 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Money = exports.MoneyFormat = void 0;
4
+ const nominal_types_1 = require("@horizon-republic/nominal-types");
5
+ const core_1 = require("@mikro-orm/core");
6
+ const common_1 = require("@nestjs/common");
7
+ const swagger_1 = require("@nestjs/swagger");
8
+ const class_transformer_1 = require("class-transformer");
9
+ const class_validator_1 = require("class-validator");
10
+ const lodash_1 = require("lodash");
11
+ const enum_1 = require("../../enum");
12
+ const mathFormulas = require("../../util/money-math-formulas");
13
+ const currency_type_validator_1 = require("../currency/currency-type.validator");
14
+ const currency_ntype_1 = require("../currency/currency.ntype");
15
+ const money_type_validator_1 = require("./money-type.validator");
16
+ var MoneyFormat;
17
+ (function (MoneyFormat) {
18
+ MoneyFormat["Human"] = "human";
19
+ MoneyFormat["Calculation"] = "calculation";
20
+ })(MoneyFormat || (exports.MoneyFormat = MoneyFormat = {}));
21
+ const logger = new common_1.Logger(`money.ntype`);
22
+ const IS_DEBUG_MODE = process.env.DEBUG_NTYPES === 'true' || false;
23
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
24
+ const debug = IS_DEBUG_MODE ? logger.debug : () => { };
25
+ class Money extends (0, nominal_types_1.NType)({ name: 'money', validator: money_type_validator_1.MoneyValidator }) {
26
+ constructor(params = { amount: '0' }) {
27
+ super(params);
28
+ debug('Money.constructor', params);
29
+ this.format = (params === null || params === void 0 ? void 0 : params.format) || MoneyFormat.Human;
30
+ this.amount = `${params.amount}`;
31
+ this.initMoney(params.currency);
32
+ }
33
+ clone(params) {
34
+ debug('Money.clone', params);
35
+ const { amount, format } = params;
36
+ return new Money({ amount, format, currency: this.currency });
37
+ }
38
+ static validateMinMax(valueKey, value, params) {
39
+ debug('Money.validateMinMax', valueKey, value, params);
40
+ if ((params === null || params === void 0 ? void 0 : params.min) !== undefined) {
41
+ const isValid = mathFormulas.greaterThanOrEqualToFormula.evaluate({
42
+ x: value,
43
+ y: params.min,
44
+ });
45
+ if (!isValid) {
46
+ throw new common_1.BadRequestException(`${valueKey} must be greater than ${params.min}`);
47
+ }
48
+ }
49
+ if ((params === null || params === void 0 ? void 0 : params.max) !== undefined) {
50
+ const isValid = mathFormulas.lessThanOrEqualToFormula.evaluate({
51
+ x: value,
52
+ y: params.max,
53
+ });
54
+ if (!isValid) {
55
+ throw new common_1.BadRequestException(`${valueKey} must be less than ${params.max}`);
56
+ }
57
+ }
58
+ }
59
+ static getOrmType(params) {
60
+ var _a, _b;
61
+ const outputFormat = (_a = params === null || params === void 0 ? void 0 : params.outputFormat) !== null && _a !== void 0 ? _a : MoneyFormat.Human;
62
+ const defaultJSValue = (_b = params === null || params === void 0 ? void 0 : params.defaultJSValue) !== null && _b !== void 0 ? _b : null;
63
+ class MoneyOrmType extends core_1.Type {
64
+ getColumnType(prop, platform) {
65
+ return 'numeric(64, 18)';
66
+ }
67
+ convertToDatabaseValue(value, platform, context) {
68
+ debug('Money.getOrmType.convertToDatabaseValue', value);
69
+ if (value === null || (value === null || value === void 0 ? void 0 : value.value) === null)
70
+ return null;
71
+ return value.getHumanAmount();
72
+ }
73
+ convertToJSValue(amount, platform) {
74
+ debug('Money.getOrmType.convertToJSValue', amount);
75
+ if (amount === 'NULL' || !['string', 'number'].includes(typeof amount)) {
76
+ if (defaultJSValue !== undefined && defaultJSValue != null) {
77
+ return new Money({ amount: defaultJSValue, format: outputFormat });
78
+ }
79
+ return null;
80
+ }
81
+ return new Money({ amount, format: outputFormat });
82
+ }
83
+ }
84
+ return MoneyOrmType;
85
+ }
86
+ /**
87
+ * todo: whole validation should be refactored
88
+ * 1. Remove 'optional' param and use decorator directly from class-validator
89
+ * 2. Simplify expressions
90
+ * 3. Part of this code is redundant
91
+ * 4. Decompose and make possible tests creation
92
+ */
93
+ static getResourceDecorators(params) {
94
+ var _a, _b, _c, _d, _e;
95
+ const currencyKey = (_a = params === null || params === void 0 ? void 0 : params.currencyKey) !== null && _a !== void 0 ? _a : 'currency';
96
+ const defaultValue = (_b = params === null || params === void 0 ? void 0 : params.defaultValue) !== null && _b !== void 0 ? _b : undefined;
97
+ const outputFormat = (_c = params === null || params === void 0 ? void 0 : params.outputFormat) !== null && _c !== void 0 ? _c : MoneyFormat.Human;
98
+ const outputTrimByPrecision = (_d = params === null || params === void 0 ? void 0 : params.outputTrimByPrecision) !== null && _d !== void 0 ? _d : false;
99
+ const isOptional = (_e = params === null || params === void 0 ? void 0 : params.optional) !== null && _e !== void 0 ? _e : false;
100
+ const apiProperty = Object.assign(Object.assign(Object.assign({}, this.apiPropertyOptions), ((params === null || params === void 0 ? void 0 : params.apiProperty) || {})), { required: !isOptional });
101
+ return (0, common_1.applyDecorators)((0, swagger_1.ApiProperty)(apiProperty), ...(isOptional ? [(0, class_validator_1.IsOptional)()] : [(0, class_validator_1.IsObject)()]), (0, class_validator_1.Validate)(this.getValidator(), [isOptional]), (0, class_transformer_1.Transform)(({ obj, key }) => {
102
+ var _a, _b;
103
+ const value = obj[key];
104
+ debug('Money.getResourceDecorators.Transform { toClassOnly }', key, value, obj);
105
+ if (value instanceof Money)
106
+ return value;
107
+ const currencyValue = (0, lodash_1.get)(obj, currencyKey);
108
+ let currency;
109
+ try {
110
+ // todo: If validator return boolean value then is SHOULD NOT throw any exceptions. need to refactor as f
111
+ // same for MoneyValidator. Or try/catch, or if/else, not both
112
+ currency_type_validator_1.CurrencyValidator.validateForTransformDecorator(currencyKey, currencyValue);
113
+ currency = new currency_ntype_1.Currency(currencyValue);
114
+ }
115
+ catch (_c) {
116
+ currency = new currency_ntype_1.Currency(enum_1.Currency.Name.DEFAULT);
117
+ }
118
+ const isValid = money_type_validator_1.MoneyValidator.validateForTransformDecorator(key, value, {
119
+ isOptional,
120
+ minValue: (_a = params === null || params === void 0 ? void 0 : params.validation) === null || _a === void 0 ? void 0 : _a.min,
121
+ maxValue: (_b = params === null || params === void 0 ? void 0 : params.validation) === null || _b === void 0 ? void 0 : _b.max,
122
+ });
123
+ if (!isValid) {
124
+ if (isOptional && defaultValue != null) {
125
+ return new Money({ currency, amount: defaultValue, format: MoneyFormat.Human });
126
+ }
127
+ if (!isOptional)
128
+ this.throwMoneyKeyValidation(key);
129
+ return undefined;
130
+ }
131
+ return new Money({
132
+ currency,
133
+ amount: typeof value === 'string' ? value.trim() : value,
134
+ format: MoneyFormat.Human,
135
+ });
136
+ }, { toClassOnly: true }), (0, class_transformer_1.Transform)(({ key, obj }) => {
137
+ const value = obj[key];
138
+ debug('Money.getResourceDecorators.Transform { toPlainOnly }', key, value, obj);
139
+ if (value instanceof Money)
140
+ return outputFormat === MoneyFormat.Calculation
141
+ ? value === null || value === void 0 ? void 0 : value.getCalculationAmount()
142
+ : value === null || value === void 0 ? void 0 : value.getHumanAmount(outputTrimByPrecision);
143
+ return value;
144
+ }, { toPlainOnly: true }));
145
+ }
146
+ /** Private */
147
+ static throwMoneyKeyValidation(key) {
148
+ throw new common_1.BadRequestException(`${key} is not a valid money`);
149
+ }
150
+ parseInputMoney(money) {
151
+ if (['string', 'number'].includes(typeof money)) {
152
+ return this.clone({ amount: `${money}`, format: MoneyFormat.Human });
153
+ }
154
+ return money;
155
+ }
156
+ parseInputAmount(amount) {
157
+ if (['string', 'number'].includes(typeof amount)) {
158
+ return mathFormulas.calculationFormula.evaluate({ amount: amount, precision: this.precision }).toString();
159
+ }
160
+ if (amount instanceof Money) {
161
+ if (amount.precision === this.precision)
162
+ return amount.getCalculationAmount();
163
+ throw new common_1.UnprocessableEntityException(`Unable to calculate money with different precision`);
164
+ }
165
+ throw new common_1.UnprocessableEntityException(`Invalid args for money math methods (${amount}[${typeof amount}])`);
166
+ }
167
+ /** Protected */
168
+ initMoney(currency) {
169
+ debug('Money.initMoney', currency);
170
+ this.currency = currency !== null && currency !== void 0 ? currency : new currency_ntype_1.Currency(enum_1.Currency.Name.DEFAULT);
171
+ this.precision = this.currency.getPrecision();
172
+ this.humanAmount = this.toHumanView();
173
+ this.calculationAmount = this.toCalculationView();
174
+ }
175
+ /**
176
+ * This method should be used before all calculations to ensure that we use right precision
177
+ */
178
+ ensureCurrencyIsNotDefault() {
179
+ if (this.currency.isDefault()) {
180
+ throw new common_1.UnprocessableEntityException(`Unable to calculate money with default currency`);
181
+ }
182
+ }
183
+ checkComparison(money) {
184
+ if (this.currency.getCountryCode() !== money.getCurrency().getCountryCode()) {
185
+ throw new common_1.UnprocessableEntityException(`Unable to compare money in different currencies`);
186
+ }
187
+ }
188
+ toCalculationView() {
189
+ if (this.format === MoneyFormat.Calculation)
190
+ return this.amount;
191
+ return mathFormulas.calculationFormula
192
+ .evaluate({
193
+ amount: this.amount,
194
+ precision: this.precision,
195
+ })
196
+ .toString();
197
+ }
198
+ toHumanView() {
199
+ if (this.format === MoneyFormat.Human)
200
+ return this.amount;
201
+ return mathFormulas.humanFormula
202
+ .evaluate({
203
+ amount: this.amount,
204
+ precision: this.precision,
205
+ })
206
+ .toString();
207
+ }
208
+ /** Setters */
209
+ setCurrency(currency) {
210
+ debug('Money.setCurrency', currency);
211
+ if (this.currency.eq(currency))
212
+ return this;
213
+ if (!this.currency.isDefault()) {
214
+ if (this.currency.getPrecision() !== currency.getPrecision()) {
215
+ throw new common_1.UnprocessableEntityException(`Unable to mutate money with new currency with different precision (${this.currency.getPrecision()} ==> ${currency.getPrecision()})`);
216
+ }
217
+ debug('WARN| Money.setCurrency change currency with same precision', { from: this.currency, to: currency });
218
+ }
219
+ this.initMoney(currency);
220
+ return this;
221
+ }
222
+ /** Getters */
223
+ getCurrency() {
224
+ return this.currency;
225
+ }
226
+ getCalculationAmount() {
227
+ return this.calculationAmount;
228
+ }
229
+ getHumanAmount(trimByPrecision = false) {
230
+ if (!trimByPrecision || !this.precision)
231
+ return this.humanAmount;
232
+ const [integer, fractional] = this.humanAmount.split('.');
233
+ return fractional && this.precision ? `${integer}.${fractional.slice(0, this.precision)}` : integer;
234
+ }
235
+ toString() {
236
+ return this.getHumanAmount();
237
+ }
238
+ toFloat() {
239
+ return Number.parseFloat(this.getHumanAmount());
240
+ }
241
+ /** Calculations */
242
+ add(amount) {
243
+ this.ensureCurrencyIsNotDefault();
244
+ const value = this.parseInputAmount(amount);
245
+ const result = mathFormulas.addFormula.evaluate({ x: this.getCalculationAmount(), y: value }).toString();
246
+ return new Money({
247
+ amount: result,
248
+ currency: this.currency,
249
+ format: MoneyFormat.Calculation,
250
+ });
251
+ }
252
+ minus(amount) {
253
+ this.ensureCurrencyIsNotDefault();
254
+ const value = this.parseInputAmount(amount);
255
+ const result = mathFormulas.minusFormula.evaluate({ x: this.getCalculationAmount(), y: value }).toString();
256
+ return new Money({
257
+ amount: result,
258
+ currency: this.currency,
259
+ format: MoneyFormat.Calculation,
260
+ });
261
+ }
262
+ multiplyBy(amount) {
263
+ this.ensureCurrencyIsNotDefault();
264
+ const result = mathFormulas.multiplyFormula
265
+ .evaluate({
266
+ x: this.getCalculationAmount(),
267
+ y: `${amount}`,
268
+ })
269
+ .toString();
270
+ return new Money({
271
+ amount: result,
272
+ currency: this.currency,
273
+ format: MoneyFormat.Calculation,
274
+ });
275
+ }
276
+ divideBy(amount) {
277
+ this.ensureCurrencyIsNotDefault();
278
+ const result = mathFormulas.divideFormula
279
+ .evaluate({
280
+ x: this.getCalculationAmount(),
281
+ y: `${amount}`,
282
+ })
283
+ .toString();
284
+ return new Money({
285
+ amount: result,
286
+ currency: this.currency,
287
+ format: MoneyFormat.Calculation,
288
+ });
289
+ }
290
+ rate(coefficient, currency) {
291
+ this.ensureCurrencyIsNotDefault();
292
+ const result = this.multiplyBy(coefficient);
293
+ return new Money({
294
+ amount: result.getCalculationAmount(),
295
+ currency,
296
+ format: MoneyFormat.Calculation,
297
+ });
298
+ }
299
+ /**
300
+ * Returns the minimum Money instance from the provided list.
301
+ */
302
+ static min(...monies) {
303
+ return this.compareMonies(monies, lodash_1.minBy);
304
+ }
305
+ /**
306
+ * Returns the maximum Money instance from the provided list.
307
+ */
308
+ static max(...monies) {
309
+ return this.compareMonies(monies, lodash_1.maxBy);
310
+ }
311
+ /**
312
+ * Compares Money instances using the provided comparator function.
313
+ *
314
+ * @param monies - List of Money instances to compare.
315
+ * @param comparator - Function to determine the comparison logic.
316
+ * @returns The Money instance that meets the comparison criteria.
317
+ * @throws InternalServerErrorException if no Money instances are provided.
318
+ * @throws UnprocessableEntityException if Money instances have different currencies.
319
+ */
320
+ static compareMonies(monies, comparator) {
321
+ if (monies.length === 0)
322
+ throw new common_1.InternalServerErrorException('At least one Money instance must be provided');
323
+ const currency = monies[0].getCurrency();
324
+ if (!monies.every((money) => currency.eq(money.getCurrency()))) {
325
+ throw new common_1.UnprocessableEntityException('Cannot compare Money instances with different currencies');
326
+ }
327
+ return comparator(monies, (money) => Number(money.getCalculationAmount()));
328
+ }
329
+ /** Comparison */
330
+ isEqualTo(money) {
331
+ money = this.parseInputMoney(money);
332
+ this.checkComparison(money);
333
+ return mathFormulas.equalToFormula.evaluate({
334
+ x: this.getCalculationAmount(),
335
+ y: money.getCalculationAmount(),
336
+ });
337
+ }
338
+ isNotEqualTo(money) {
339
+ return !this.isEqualTo(money);
340
+ }
341
+ isGreaterThan(money) {
342
+ money = this.parseInputMoney(money);
343
+ this.checkComparison(money);
344
+ return mathFormulas.greaterThanFormula.evaluate({
345
+ x: this.getCalculationAmount(),
346
+ y: money.getCalculationAmount(),
347
+ });
348
+ }
349
+ isGreaterThanOrEqualTo(money) {
350
+ money = this.parseInputMoney(money);
351
+ this.checkComparison(money);
352
+ return this.isEqualTo(money) || this.isGreaterThan(money);
353
+ }
354
+ isLessThan(money) {
355
+ money = this.parseInputMoney(money);
356
+ this.checkComparison(money);
357
+ return mathFormulas.lessThanFormula.evaluate({
358
+ x: this.getCalculationAmount(),
359
+ y: money.getCalculationAmount(),
360
+ });
361
+ }
362
+ isLessThanOrEqualTo(money) {
363
+ money = this.parseInputMoney(money);
364
+ this.checkComparison(money);
365
+ return this.isEqualTo(money) || this.isLessThan(money);
366
+ }
367
+ /** Aliases */
368
+ plus(amount) {
369
+ return this.add(amount);
370
+ }
371
+ eq(money) {
372
+ return this.isEqualTo(money);
373
+ }
374
+ ne(money) {
375
+ return this.isNotEqualTo(money);
376
+ }
377
+ gt(money) {
378
+ return this.isGreaterThan(money);
379
+ }
380
+ gte(money) {
381
+ return this.isGreaterThanOrEqualTo(money);
382
+ }
383
+ lt(money) {
384
+ return this.isLessThan(money);
385
+ }
386
+ lte(money) {
387
+ return this.isLessThanOrEqualTo(money);
388
+ }
389
+ }
390
+ exports.Money = Money;
391
+ Money.apiPropertyOptions = {
392
+ type: 'string',
393
+ example: '100.50',
394
+ };
395
+ //# sourceMappingURL=money.ntype.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"money.ntype.js","sourceRoot":"","sources":["../../../../../libs/gg-toolkit/nominal-type/money/money.ntype.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Mop as MopNS } from '../../enum';
2
+ export declare const mopTypeMap: Record<string, MopNS.Type>;