Fixes + stable gateway ids
This commit is contained in:
@@ -2,22 +2,39 @@ syntax = "proto3";
|
||||
package common.money.v1;
|
||||
option go_package = "github.com/tech/sendico/pkg/proto/common/money/v1;moneyv1";
|
||||
|
||||
message Decimal { string value = 1; } // exact decimal as string
|
||||
|
||||
message Money {
|
||||
string amount = 1; // decimal string
|
||||
string currency = 2; // ISO 4217 or your code set
|
||||
// Decimal represents an exact decimal value encoded as a string to avoid
|
||||
// floating-point precision loss.
|
||||
message Decimal {
|
||||
// value is the decimal string representation (e.g. "123.45").
|
||||
string value = 1;
|
||||
}
|
||||
|
||||
// Money pairs a decimal amount with a currency code.
|
||||
message Money {
|
||||
// amount is the decimal string representation.
|
||||
string amount = 1;
|
||||
// currency is the ISO 4217 currency code (e.g. "USD", "EUR").
|
||||
string currency = 2;
|
||||
}
|
||||
|
||||
// RoundingMode specifies how to round monetary calculations.
|
||||
enum RoundingMode {
|
||||
// ROUNDING_MODE_UNSPECIFIED is the default zero value.
|
||||
ROUNDING_MODE_UNSPECIFIED = 0;
|
||||
// ROUND_HALF_EVEN rounds to the nearest even digit (banker's rounding).
|
||||
ROUND_HALF_EVEN = 1;
|
||||
// ROUND_HALF_UP rounds halves away from zero.
|
||||
ROUND_HALF_UP = 2;
|
||||
// ROUND_DOWN truncates towards zero.
|
||||
ROUND_DOWN = 3;
|
||||
}
|
||||
|
||||
// CurrencyMeta describes the precision and rounding rules for a currency.
|
||||
message CurrencyMeta {
|
||||
// code is the ISO 4217 currency code.
|
||||
string code = 1;
|
||||
// decimals is the number of minor-unit digits (e.g. 2 for USD, 0 for JPY).
|
||||
uint32 decimals = 2;
|
||||
// rounding is the preferred rounding mode for this currency.
|
||||
RoundingMode rounding = 3;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user