cab-backend/proto/wallet.proto
2026-03-30 21:00:35 +03:00

68 lines
1.6 KiB
Protocol Buffer

syntax = "proto3";
package wallet;
option go_package = "gen/;walletpb";
service WalletService {
rpc Reserve(ReserveRequest) returns (ReserveResponse);
rpc Confirm(ConfirmRequest) returns (ConfirmResponse);
rpc Cancel(CancelRequest) returns (CancelResponse);
rpc GetTransaction(GetTransactionRequest) returns (GetTransactionResponse);
}
message ReserveRequest {
string request_id = 1;
string user_id = 2;
string game_id = 3;
string round_id = 4;
int64 amount = 5; // в минорных единицах, например cents
string currency = 6;
}
message ReserveResponse {
string transaction_id = 1;
string status = 2; // reserved / rejected
int64 available_balance = 3;
int64 reserved_balance = 4;
}
message ConfirmRequest {
string request_id = 1;
string transaction_id = 2;
string round_id = 3;
int64 win_amount = 4; // 0 если проигрыш
}
message ConfirmResponse {
string transaction_id = 1;
string status = 2; // confirmed / already_confirmed
int64 available_balance = 3;
int64 reserved_balance = 4;
}
message CancelRequest {
string request_id = 1;
string transaction_id = 2;
string reason = 3;
}
message CancelResponse {
string transaction_id = 1;
string status = 2; // canceled / already_canceled
int64 available_balance = 3;
int64 reserved_balance = 4;
}
message GetTransactionRequest {
string transaction_id = 1;
}
message GetTransactionResponse {
string transaction_id = 1;
string user_id = 2;
string round_id = 3;
int64 amount = 4;
int64 win_amount = 5;
string status = 6; // reserved / confirmed / canceled
}