MarketingSystemDataExportTool/grpc/mix/mixv1/contract.proto

165 lines
5.6 KiB
Protocol Buffer
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}