165 lines
5.6 KiB
Protocol Buffer
165 lines
5.6 KiB
Protocol Buffer
syntax = "proto3";
|
||
|
||
package mixservice.mixv1;
|
||
import "validate/validate.proto";
|
||
import "mix/mixv1/common.proto";
|
||
option go_package = "./mix/mixv1;mixv1";
|
||
|
||
// 合同
|
||
service Contract {
|
||
// 合同列表
|
||
rpc SearchList (ReqContractSearchList) returns (RespContractSearchList) {}
|
||
|
||
// 创建
|
||
rpc Create (ReqContractSave) returns (RespContractDetail) {}
|
||
|
||
// 更新
|
||
rpc Update (ReqContractSave) returns (RespContractDetail) {}
|
||
|
||
// 删除
|
||
rpc Delete (ReqContractDelete) returns (Empty) {}
|
||
|
||
// 获取渠道已关联的合同数量
|
||
rpc GroupChannelCnt(ReqContractGroupChannelCnt) returns (RespContractGroupChannelCnt) {}
|
||
|
||
// ApplyDownload 合同申请下载
|
||
rpc ApplyDownload(ReqContractApplyDownload) returns (RespContractApplyDownload) {}
|
||
|
||
// 获取详情
|
||
rpc GetDetail (ReqContractDetail) returns (RespContractDetail) {}
|
||
|
||
|
||
}
|
||
|
||
message ReqContractDetail {
|
||
int32 id = 1 [(validate.rules).int32.gt = 0]; // id
|
||
}
|
||
|
||
message ReqContractApplyDownload {
|
||
int32 id = 1 [(validate.rules).int32.gt = 0]; // id
|
||
int32 user_id = 2 [(validate.rules).int32.gt = 0]; // 用户id
|
||
string out_user_id = 3 [(validate.rules).string.min_len = 1]; // 用户id
|
||
string subjectName = 4 [(validate.rules).string.min_len = 1]; // 主体名称
|
||
}
|
||
|
||
message RespContractApplyDownload {
|
||
int32 id = 1;
|
||
int32 user_id = 2; // 用户id
|
||
int32 type = 3; // 类型,1-合同
|
||
string name = 4; // 资源名称
|
||
int32 type_out_id = 5; // 关联的外部 id,合同类型-contract.id
|
||
int32 create_time = 10; // 创建时间
|
||
int32 status = 12; // 状态,-1-已删除,0-终止,1-审批中,2-审批通过,3-生成中,4-已生成,5-驳回
|
||
}
|
||
|
||
// 获取已关联的合同数量
|
||
message ReqContractGroupChannelCnt {
|
||
repeated int32 ids = 1 [(validate.rules).repeated = {min_items:1, unique:true, items:{int32:{gt:0}}}]; // 渠道id
|
||
}
|
||
|
||
// 响应已关联的合同数量
|
||
message RespContractGroupChannelCnt {
|
||
map<int32, int32> channel_cnt_map = 2; // 关联的合同数量:渠道id => 合同数量
|
||
}
|
||
|
||
// 合同列表请求参数
|
||
message ReqContractSearchList {
|
||
enum ExpireType {
|
||
ALl = 0; //所有
|
||
VALID = 1; //有效
|
||
INVALID = 2; //无效
|
||
}
|
||
ReqPage page = 1; // 分页
|
||
ReqContractType Type = 2; // 合同类型
|
||
repeated int32 product_ids = 3 [(validate.rules).repeated = {unique:true, items:{int32:{gt:0}}}]; // 产品id
|
||
repeated int32 channel_ids = 4 [(validate.rules).repeated = {unique:true, items:{int32:{gt:0}}}]; // 渠道id
|
||
ExpireType expire_type = 5; // 状态类型
|
||
string keyword = 6; // 关键字
|
||
// 外部ids,供应商或分销商 id
|
||
repeated int32 type_out_ids = 7 [(validate.rules).repeated = {unique:true, items:{int32:{gt:0}}}];
|
||
|
||
// 签约人id
|
||
repeated int32 sign_user_ids = 8;
|
||
// 签约公司id
|
||
repeated int32 sign_company_ids = 9; // 签约公司id
|
||
}
|
||
|
||
message RespContractSearchList {
|
||
repeated RespContractDetail list = 1; // 列表
|
||
RespPage page = 2; // 分页
|
||
}
|
||
|
||
message RespContractDetail {
|
||
message Attachment {
|
||
int32 id = 1;
|
||
int32 type = 2; // 附件类型
|
||
string url = 3; // 链接
|
||
int32 create_time = 4; //创建时间
|
||
}
|
||
message Channel {
|
||
int32 channel_config_id = 1; // id
|
||
int32 create_time = 2; //创建时间
|
||
ChannelConfig channel_config = 3; //渠道配置
|
||
|
||
message ChannelConfig {
|
||
int32 id = 1; // id
|
||
string name = 2; // 名称
|
||
}
|
||
}
|
||
message Product {
|
||
int32 product_id = 1; // id
|
||
int32 create_time = 2; //创建时间
|
||
}
|
||
int32 id = 1; // id
|
||
string name = 2; // 合同名称
|
||
int32 type = 3; // 合同类型
|
||
repeated Product products = 4; //商品
|
||
int32 start_date = 5; // 开始时间
|
||
int32 end_date = 6; // 结束时间
|
||
repeated Channel channels = 7; //渠道
|
||
repeated Attachment attachments = 8; //附件
|
||
string tags = 9; //标签
|
||
string remark = 10; // 备注
|
||
int32 create_time = 11; //创建时间
|
||
int32 update_time = 12; //更新时间
|
||
int32 status = 13; // 状态
|
||
int32 type_out_id = 14; // 外部 id
|
||
int32 user_id = 15; // 用户id
|
||
int32 sign_user_id = 16; // 签约人id
|
||
int32 sign_company_id = 17; // 签约公司id
|
||
}
|
||
|
||
enum ReqContractType {
|
||
UNKNOWN = 0; //未知
|
||
PLATFORM = 1; // 平台
|
||
RESELLER = 2; // 分销商
|
||
}
|
||
|
||
// 创建合同请求参数
|
||
message ReqContractSave {
|
||
string name = 1 [(validate.rules).string = {min_len:1}]; // 合同名称
|
||
ReqContractType type = 2; // 合同类型
|
||
repeated int32 product_ids = 3 [(validate.rules).repeated = {min_items:1, unique:true, items:{int32:{gt:0}}}]; // 产品id
|
||
int32 start_date = 4 [(validate.rules).int32 = {gt:19000101, lt:23990101}]; // 开始时间
|
||
int32 end_date = 5 [(validate.rules).int32 = {gt:19000101, lt:23990101}]; // 结束时间
|
||
repeated int32 channel_ids = 6 [(validate.rules).repeated = {min_items:1, unique:true, items:{int32:{gt:0}}}]; // 渠道id
|
||
|
||
//头图
|
||
repeated string head_attachments = 7 [(validate.rules).repeated = {min_items:1, unique:true, items:{string:{min_len:10}}}];
|
||
//尾图
|
||
repeated string end_attachments = 8 [(validate.rules).repeated = {min_items:1, unique:true, items:{string:{min_len:10}}}];
|
||
//pdf
|
||
repeated string pdf_attachments = 9 [(validate.rules).repeated = {min_items:1, unique:true, items:{string:{min_len:10}}}];
|
||
string tags = 10; //标签
|
||
string remark = 11; // 备注
|
||
int32 id = 12; // id,更新接口必传
|
||
int32 user_id = 13 [(validate.rules).int32.gt = 0]; // 用户id
|
||
int32 type_out_id = 14 [(validate.rules).int32.gt = 0]; // 外部 id
|
||
int32 sign_user_id = 15 [(validate.rules).int32.gt = 0]; // 签约人id
|
||
int32 sign_company_id = 16 [(validate.rules).int32.gt = 0]; // 签约公司id
|
||
}
|
||
|
||
message ReqContractDelete {
|
||
int32 id = 1 [(validate.rules).int32.gt = 0]; // id
|
||
int32 user_id = 2 [(validate.rules).int32.gt = 0]; // 用户id
|
||
} |