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

service IDrawGrpcService {
    /********************提款*********************/
    // 获取提款申请信息
    rpc getDrawInfo (GetDrawInfoRequest) returns (GetDrawInfoResponse){}
    // 审核提款申请
    rpc auditDrawInfo (AuditDrawInfoRequest) returns (AuditDrawInfoResponse){}
    // 打款提款申请
    rpc drawDrawInfo (DrawDrawInfoRequest) returns (DrawDrawInfoResponse) {}
    // 提交提款申请-上传资料
    rpc submitDrawApplyFiles (SubmitDrawApplyFilesRequst) returns (SubmitDrawApplyFilesResponse) {}
    // 验证提款申请
    rpc checkDrawApplyInfo (CheckDrawApplyInfoRequest) returns (CheckDrawApplyInfoResponse) {}
    // 获取提款申请-上传资料项列表
    rpc getDrawApplyFiles (GetDrawApplyFilesRequest) returns (GetDrawApplyFilesResponse) {}
    // 获取提款申请列表
    rpc getDrawApplyPagingInfo (GetDrawApplyPagingInfoRequest) returns (GetDrawApplyPagingInfoResponse) {}
    // 获取提款申请信息
    rpc getDrawApplyInfo (GetDrawApplyInfoRequest) returns (GetDrawApplyInfoResponse) {}
}

// 获取提款申请信息 请求参数
message GetDrawInfoRequest {
    string code = 1; //提款申请编号
}

// 获取提款申请信息 响应参数
message GetDrawInfoResponse {
    ResponseHeader responseHeader = 1;
    DrawApplyInfo drawApplyInfo = 2; //提款申请信息
    repeated FileTypeDrawInfo fileTypeDrawInfo = 3; //提款申请文件信息
    repeated OrderInfo orderInfo = 4; //相关采购订单
}

// 审核提款申请 请求参数
message AuditDrawInfoRequest {
    string code = 1; //提款申请编号
    int32 auditStatus = 2; //受理状态
}

// 审核提款申请 响应参数
message AuditDrawInfoResponse {
    ResponseHeader responseHeader = 1;
}

// 打款提款申请 请求参数
message DrawDrawInfoRequest {
    string code = 1; //提款申请编号
    string startDate = 2; //提款日期
    string endDate = 3; //到期日期
    double usedAmount = 4; //已用额度
    double usableAmount = 5; //剩余可用额度
    repeated RepayPlanInfo repayPlanInfo = 6; //还款计划列表
}

// 打款提款申请 响应参数
message DrawDrawInfoResponse {
    ResponseHeader responseHeader = 1;
}

// 打款提款申请 请求参数
message SubmitDrawApplyFilesRequst {
    string creditCode = 1; // 额度编号
    int32 drawAmount = 2; // 融资金额
    int32 maturity = 3; // 融资期限
    repeated string orderAcceptId = 4; // 验收单号列表
    repeated SubmitDrawApplyUserFiles submitDrawApplyUserFiles = 5; // 提款申请-上传资料列表
    int32 enuu = 6; // 企业uu号
}

// 打款提款申请 响应参数
message SubmitDrawApplyFilesResponse {
    ResponseHeader responseHeader = 1;
}

// 验证提款申请 请求参数
message CheckDrawApplyInfoRequest {
    string creditCode = 1; // 额度编号
    int32 enuu = 2; // 用户企业UU
}

// 验证提款申请 响应参数
message CheckDrawApplyInfoResponse {
    ResponseHeader responseHeader = 1;
    CreditInfo creditInfo = 2; // 当前生效额度信息
    repeated OrderInfo orderInfo = 3; // 可提款订单信息列表
}

// 获取提款申请-上传资料项列表
message GetDrawApplyFilesRequest {
    string productCode = 1; // 产品编号
}

// 获取提款申请-上传资料项列表 响应参数
message GetDrawApplyFilesResponse {
    ResponseHeader responseHeader = 1;
    repeated FileTypeInfo fileTypeInfo = 2; // 上传资料项列表
}

// 获取提款申请列表 请求参数
message GetDrawApplyPagingInfoRequest {
    int32 pageSize = 1; // 每页条数
    int32 pageNumber = 2; // 当前页码
    int32 enuu = 3; // 企业uu号
}

// 获取提款申请列表 响应参数
message GetDrawApplyPagingInfoResponse {
    ResponseHeader responseHeader = 1;
    PagingInfo pagingInfo = 2; // 分页信息
    repeated DrawApplyInfo drawApplyInfo = 3; // 申请记录列表
}

// 获取提款申请信息 请求参数
message GetDrawApplyInfoRequest {
    string drawApplyCode = 1; // 提款申请编号
}

// 获取提款申请信息 响应参数
message GetDrawApplyInfoResponse {
    ResponseHeader responseHeader = 1;
    DrawApplyInfo drawApplyInfo = 2; // 提款申请信息
    repeated OrderInfo orderInfo = 3; // 相关订单
}