syntax = "proto3";

package treasurer;

import "google/protobuf/empty.proto";
import "treasurer/payment.model.proto";

option go_package = "./treasurer";

service TreasurerService {
  rpc GetPaymentLinkBankCard(GetBankCardPaymentLinkRequest) returns (GetPaymentLinkResponse) {}
  rpc GetPaymentLinkYooMoney(GetPaymentLinkBody) returns (GetPaymentLinkResponse) {}
  rpc GetPaymentLinkQIWI(GetPhonePaymentLinkRequest) returns (GetPaymentLinkResponse) {}
  rpc GetPaymentLinkSberPay(GetPhonePaymentLinkRequest) returns (GetPaymentLinkResponse) {}
  rpc GetPaymentLinkAlfaClick(GetLoginPaymentLinkRequest) returns (GetPaymentLinkResponse) {}
  rpc GetPaymentLinkTinkoff(GetPaymentLinkBody) returns (GetPaymentLinkResponse) {}
  rpc GetPaymentLinkSberbankB2B(GetB2BPaymentLinkRequest) returns (GetPaymentLinkResponse) {}
  rpc GetPaymentLinkSBP(GetPaymentLinkBody) returns (GetPaymentLinkResponse) {}
  rpc GetPaymentLinkMobile(GetPhonePaymentLinkRequest) returns (GetPaymentLinkResponse) {}
  rpc GetPaymentLinkCash(GetPhonePaymentLinkRequest) returns (GetPaymentLinkResponse) {}
  rpc GetPaymentLinkInstallments(GetPaymentLinkBody) returns (GetPaymentLinkResponse) {}
}

message GetBankCardPaymentLinkRequest {
  MainPaymentSettings MainSettings = 1;
  BankCardInformation BankCard = 2;
}

message GetPaymentLinkBody {
  MainPaymentSettings MainSettings = 1;
}

message GetPhonePaymentLinkRequest {
  MainPaymentSettings MainSettings = 1;
  string Phone = 2;
}

message GetLoginPaymentLinkRequest {
  MainPaymentSettings MainSettings = 1;
  string Login = 2;
}

message GetB2BPaymentLinkRequest {
  MainPaymentSettings MainSettings = 1;
	string PaymentPurpose = 2;
	google.protobuf.Empty VatData = 3;
}

message GetPaymentLinkResponse {
  string RedirectURL = 1;
}
