Fixes + stable gateway ids

This commit is contained in:
Stephan D
2026-02-18 20:38:08 +01:00
parent 4dc182bfa2
commit 770c7b9da9
119 changed files with 3000 additions and 734 deletions

View File

@@ -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;
}