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

service ICreditGrpcService {

    /********************额度&增额*********************/
    // 验证用户白名单
    rpc checkWhiteList (CheckWhiteListRequest) returns (CheckWhiteListResponse) {}
    // 获取额度（增额）申请记录信息
    rpc getCreditApplyInfo (GetCreditApplyInfoRequest) returns (GetCreditApplyInfoResponse) {}

    // 审核额度申请
    rpc auditCreditApplyInfo (AuditCreditApplyInfoRequest) returns (AuditCreditApplyInfoResponse){}
    // 审核增额申请
    rpc auditAddCreditApplyInfo (AuditAddCreditApplyInfoRequest) returns (AuditAddCreditApplyInfoResponse){}

    /********************web额度*********************/
    // 验证额度申请
    rpc checkCreditApplyInfo (CheckCreditApplyInfoRequest) returns (CheckCreditApplyInfoResponse) {}
    // 保存额度申请基础资料
    rpc saveCreditApplyUserinfo (SaveCreditApplyUserinfoRequest) returns (SaveCreditApplyUserinfoResponse) {}
    // 获取额度申请上传资料列表
    rpc getCreditApplyUserFiles (GetCreditApplyUserFilesRequest) returns (GetCreditApplyUserFilesResponse) {}
    // 保存额度申请上传资料
    rpc saveCreditApplyUserFiles (SaveCreditApplyUserFilesRequest) returns (SaveCreditApplyUserFilesResponse) {}
    // 提交额度申请
    rpc submitCreditApply (SubmitCreditApplyRequest) returns (SubmitCreditApplyResponse) {}
    // 获取额度申请列表
    rpc getCreditApplyPagingInfo (GetCreditApplyPagingInfoRequest) returns (GetCreditApplyPagingInfoResponse) {}
    // 获取我的额度列表
    rpc getMyCreditInfos (GetMyCreditInfosRequest) returns (GetMyCreditInfosResponse) {}
    // 获取我的剩余可用额度
    rpc getMyUsableCreditInfos (GetMyUsableCreditInfosRequest) returns (GetMyUsableCreditInfosResponse) {}

    /********************web增额*********************/
    // 验证增额申请
    rpc checkAddCreditApplyInfo (CheckAddCreditApplyInfoRequest) returns (CheckAddCreditApplyInfoResponse) {}
    // 保存增额申请-上传资料
    rpc saveAddCreditApplyUserFiles (SaveAddCreditApplyUserFilesRequest) returns (SaveAddCreditApplyUserFilesResponse) {}
    // 提交增额申请-上传资料
    rpc submitAddCreditApplyUserFiles (SubmitAddCreditApplyUserFilesRequest) returns (SubmitAddCreditApplyUserFilesResponse) {}
}

//验证用户白名单 请求参数
message CheckWhiteListRequest {
    int32 enuu = 1;
    int32 useruu = 2;
}
//验证用户白名单 响应参数
message CheckWhiteListResponse {
    ResponseHeader responseHeader = 1;
    bool isWhite = 2; //是白名单用户 true
}

// 获取额度申请记录信息 请求参数
message GetCreditApplyInfoRequest {
    string code = 1; //额度申请记录编号
    int32 businessType = 2;//业务编号(1:额度， 3.增额)
}

// 获取额度申请记录信息 响应参数
message GetCreditApplyInfoResponse {
    ResponseHeader responseHeader = 1;
    CreditApplyInfo creditApplyInfo = 2; //额度申请记录信息
}


// 审核额度申请 请求参数
message AuditCreditApplyInfoRequest {
    string code = 1; //额度申请记录编号
    double replyAmount = 2; //批复额度
    string startDate = 3; //额度生效日
    string endDate = 4; //额度到期日
    double rate = 5;//利率
    int32 status = 6;//审核状态（100：已通过，102：未通过）
}

// 审核额度申请 响应参数
message AuditCreditApplyInfoResponse {
    ResponseHeader responseHeader = 1;
}

// 审核增额申请 请求参数
message AuditAddCreditApplyInfoRequest {
    string code = 1; //额度申请记录编号
    double replyAmount = 2; //批复额度
    string startDate = 3; //额度生效日
    string endDate = 4; //额度到期日
    double rate = 5;//利率
    double usedAmount = 6;//已用额度
    double usableAmount = 7;//剩余可用额度
    int32 status = 8;//审核状态（100：已通过，102：未通过）
}

// 审核增额申请 响应参数
message AuditAddCreditApplyInfoResponse {
    ResponseHeader responseHeader = 1;
}

/********************web额度*********************/

// 验证额度申请 请求参数
message CheckCreditApplyInfoRequest {
    string productCode = 1; // 产品编号
    int32 enuu = 2; //登陆态的enuu
}

// 验证额度申请 响应参数
message CheckCreditApplyInfoResponse {
    ResponseHeader responseHeader = 1; // code: 10.额度申请审核中 11.额度已生效
    CreditApplyUserinfo creditApplyUserinfo = 2; // 额度申请-基础资料 当草稿时有值
}

// 保存额度申请基础资料 请求参数
message SaveCreditApplyUserinfoRequest {
    CreditApplyUserinfo creditApplyUserinfo = 1;
    string productCode = 2; // 产品编号
    int32 enuu = 3; //登陆态的enuu
}

// 保存额度申请基础资料 响应参数
message SaveCreditApplyUserinfoResponse {
    ResponseHeader responseHeader = 1;
    string creditApplyCode = 2; // 额度申请编号
}

// 获取额度申请上传资料列表 请求参数
message GetCreditApplyUserFilesRequest {
    string creditApplyCode = 1; // 额度申请编号
    int32 enuu = 2; //登陆态的enuu
}

// 获取额度申请上传资料列表 响应参数
message GetCreditApplyUserFilesResponse {
    ResponseHeader responseHeader = 1;
    repeated FileTypeCreditInfo fileTypeCreditInfo = 2; // 资料列表
}

// 保存额度申请上传资料 请求参数
message SaveCreditApplyUserFilesRequest {
    string creditApplyCode = 1; // 额度申请编号
    repeated SubmitCreditApplyUserfileInfos submitCreditApplyUserfileInfos = 2; // 资料列表
    int32 enuu = 3; //登陆态的enuu
}

// 保存额度申请上传资料 响应参数
message SaveCreditApplyUserFilesResponse {
    ResponseHeader responseHeader = 1;
}

// 提交额度申请 请求参数
message SubmitCreditApplyRequest {
    string creditApplyCode = 1; // 额度申请编号
    repeated SubmitCreditApplyUserfileInfos submitCreditApplyUserfileInfos = 2; // 资料列表
    int32 enuu = 3; //登陆态的enuu
    int32 useruu = 4; //取一个企业中的第一个提交申请的人作为白名单用户
}

// 提交额度申请 响应参数
message SubmitCreditApplyResponse {
    ResponseHeader responseHeader = 1;
}

// 验证增额申请 请求参数
message CheckAddCreditApplyInfoRequest {
    string creditCode = 1; // 额度编号
    int32 enuu = 2; //登陆态的enuu
}

// 验证增额申请 响应参数
message CheckAddCreditApplyInfoResponse {
    ResponseHeader responseHeader = 1; // code: 12.审核中 13.已失效
    string addCreditCode = 2; // 增额申请编号
    repeated FileTypeCreditInfo fileTypeCreditInfo = 3; // 父额度申请资料列表
    repeated FileTypeCreditInfo fileTypeAddCreditInfo = 4; // 增额申请资料列表
}

// 保存增额申请-上传资料 请求参数
message SaveAddCreditApplyUserFilesRequest {
    string addCreditApplyCode = 1; // 增额申请编号
    repeated SubmitCreditApplyUserfileInfos submitCreditApplyUserfileInfos = 2; // 资料列表
    int32 enuu = 3; //登陆态的enuu
}

// 保存增额申请-上传资料 响应参数
message SaveAddCreditApplyUserFilesResponse {
    ResponseHeader responseHeader = 1;
}

// 提交增额申请-上传资料 请求参数
message SubmitAddCreditApplyUserFilesRequest {
    string addCreditApplyCode = 1; // 增额申请编号
    repeated SubmitCreditApplyUserfileInfos submitCreditApplyUserfileInfos = 2; // 资料列表
    int32 enuu = 3; //登陆态的enuu
}

// 提交增额申请-上传资料 响应参数
message SubmitAddCreditApplyUserFilesResponse {
    ResponseHeader responseHeader = 1;
}

// 获取额度申请列表 请求参数
message GetCreditApplyPagingInfoRequest {
    int32 pageSize = 1; // 每页条数
    int32 pageNumber = 2; // 当前页码
    int32 enuu = 3; //登陆态的enuu
}

// 获取额度申请列表 响应参数
message GetCreditApplyPagingInfoResponse {
    ResponseHeader responseHeader = 1;
    PagingInfo pagingInfo = 2;
    repeated CreditApplySimpleInfo creditApplySimpleInfo = 3;
}

// 获取我的额度列表 请求参数
message GetMyCreditInfosRequest {
    int32 enuu = 1; //登陆态的enuu
}

// 获取我的额度列表 响应参数
message GetMyCreditInfosResponse {
    ResponseHeader responseHeader = 1;
    repeated CreditInfo creditInfo = 2; // 额度列表
}

// 获取我的剩余可用额度列表 请求参数
message GetMyUsableCreditInfosRequest {
    int32 enuu = 1; //登陆态的enuu
}

// 获取我的剩余可用额度 响应参数
message GetMyUsableCreditInfosResponse {
    ResponseHeader responseHeader = 1;
    repeated UsableCreditInfo usableCreditInfo = 2; // 剩余可用额度列表
}
