68 lines
1.6 KiB
Protocol Buffer
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
|
|
} |