syntax = "proto3";
import "BaseGrpcEntity.proto";
import "DrawGrpcEntity.proto";
import "RepayGrpcEntity.proto";
package fin;
option java_multiple_files = true;
option java_package = "com.usoft.fin.grpc.api.protobuf";
option java_outer_classname = "IRepayGrpcServiceProto";

service IRepayGrpcService {
    /********************还款*********************/
    // 用户还款
    rpc repayDrawInfo (RepayDrawInfoRequest) returns (RepayDrawInfoResponse) {}
    // 分页获取我的还款
    rpc getMyRepayPagingInfo (GetMyRepayPagingInfoRequest) returns (GetMyRepayPagingInfoResponse) {}
    // 获取还款计划列表
    rpc getRepayPlanInfo (GetRepayPlanInfoRequest) returns (GetRepayPlanInfoResponse) {}
    // 获取还款明细
    rpc getRepayDetail (GetRepayDetailRequest) returns (GetRepayDetailResponse) {}
}

// 用户还款 请求参数
message RepayDrawInfoRequest {
    string drawApplyCode = 1; //提款申请编号
    double creditUsedAmount = 2; //已用额度
    double creditUsableAmount = 3; //剩余可用额度
    repeated RepayPlanInfo repayPlanInfo = 4; //还款计划列表
    repeated RepayDetailInfo repayDetailInfo = 5; //还款明细列表
}

// 用户还款 响应参数
message RepayDrawInfoResponse {
    ResponseHeader responseHeader = 1;
}

// 获取还款计划 请求参数
message GetRepayPlanInfoRequest {
    string drawApplyCode = 1; // 提款申请编号
}

// 获取还款计划 响应参数
message GetRepayPlanInfoResponse {
    ResponseHeader responseHeader = 1;
    DrawApplyInfo drawApplyInfo = 2; // 提款信息
    repeated RepayPlanInfo repayPlanInfo = 3; // 还款计划列表
    ProductInfo productInfo = 4; // 产品信息
}

// 获取我的还款 请求参数
message GetMyRepayPagingInfoRequest {
    int32 pageSize = 1; // 每页条数
    int32 pageNumber = 2; // 当前页码
    int32 enuu = 3;
}

// 获取我的还款 响应参数
message GetMyRepayPagingInfoResponse {
    ResponseHeader responseHeader = 1;
    PagingInfo pagingInfo = 2; // 分页信息
    repeated RepayInfo repayInfo = 3; // 还款信息列表
}

// 获取还款明细 请求参数
message GetRepayDetailRequest {
    string repayCode = 1; // 还款编号
}

// 获取还款明细 响应参数
message GetRepayDetailResponse {
    ResponseHeader responseHeader = 1;
    repeated RepayPlanInfo repayPlanInfo = 2; // 还款计划列表
    repeated RepayDetailInfo repayDetailInfo = 3; // 还款记录列表
    DrawApplyInfo drawApplyInfo = 4; // 提款信息
    ProductInfo productInfo = 5; // 产品信息
}