syntax = "proto3";

package crm_gate_pay;

service CrmGatePayService {
  rpc CreatePayin(CreatePayinRequest) returns (JsonResponse);
  rpc CreatePayout(CreatePayoutRequest) returns (JsonResponse);
  rpc CompletePartiallyPaidPayin(CompletePartiallyPaidPayinRequest) returns (JsonResponse);
  rpc GetRows(GetRowsRequest) returns (JsonResponse);
  rpc GetSums(GetSumsRequest) returns (JsonResponse);
  rpc GetBalance(EmptyRequest) returns (JsonResponse);
  rpc CheckAddressRisk(CheckAddressRiskRequest) returns (JsonResponse);
}

message CreatePayinRequest {
  string customer = 1;
  double amount = 2;
  string currency = 3;
  string chain = 4;
  string manager_id = 5;
  string manager_name = 6;
}

message CreatePayoutRequest {
  string customer = 1;
  double amount = 2;
  string currency = 3;
  string chain = 4;
  string address = 5;
  string manager_id = 6;
  string manager_name = 7;
  string memo = 8;
  int32 fee_type = 9;
}

message CompletePartiallyPaidPayinRequest {
  string gate_pay_merchant_trade_no = 1;
}

message GetRowsRequest {
  int32 page = 1;
  int32 limit = 2;
  string search_word = 3;
  repeated string statuses = 4;
  string type = 5;
  string date_start = 6;
  string date_end = 7;
}

message GetSumsRequest {
  string search_word = 1;
  repeated string statuses = 2;
  string type = 3;
  string date_start = 4;
  string date_end = 5;
}

message EmptyRequest {}

message CheckAddressRiskRequest {
  string address = 1;
  string blockchain = 2;
  string manager_id = 3;
  string manager_name = 4;
}

message JsonResponse {
  int32 status_code = 1;
  string json = 2;
}
