syntax = "v1"

info (
	title: "剑鱼核心模块" // TODO: add title
	desc: "标讯搜索、标讯详情、参标逻辑等"// TODO: add description
	author: "wangshan"
	email: "wangshan@topnet.net.cn"
)

type (
	searchReq {
		UserType        string `path:"userType,optional"`
		AppId           string `header:"appId"`
		UserId          string `header:"userId,optional"`
		Phone           string `header:"phone,optional"`
		NewUserId       string `header:"newUserId,optional"`
		EntId           int64  `header:"entId,optional"`
		EntUserId       int64  `header:"entUserId,optional"`
		PageNum         int64  `json:"pageNum,optional"`
		PageSize        int64  `json:"pageSize,optional"`
		Province        string `json:"province,optional"`
		City            string `json:"city,optional"`
		Subtype         string `json:"subtype,optional"`
		TopType         string `json:"toptype,optional"`
		PublishTime     string `json:"publishTime,optional"`
		SelectType      string `json:"selectType,optional"`
		Price           string `json:"price,optional"`
		Industry        string `json:"industry,optional"`
		BuyerClass      string `json:"buyerClass,optional"`
		BuyerTel        string `json:"buyerTel,optional"`
		WinnerTel       string `json:"winnerTel,optional"`
		FileExists      string `json:"fileExists,optional"`
		SearchGroup     int64  `json:"searchGroup,optional"`
		SearchMode      int64  `json:"searchMode,optional"`
		WordsMode       int64  `json:"wordsMode,optional"`
		KeyWords        string `json:"keyWords,optional"`
		AdditionalWords string `json:"additionalWords,optional"`
		ExclusionWords  string `json:"exclusionWords,optional"`
		BidField        string `json:"bidField,optional"`       //医疗领域化信息
		AccountId       string `header:"accountId,optional"`    //账户id
		PositionType    string `header:"positionType,optional"` //职位类型 0个人 1企业
		PositionId      string `header:"positionId,optional"`   //职位id
		MgoUserId       string `header:"mgoUserId,optional"`    //原userId
	}
	//
	commonResp {
		Err_code int64       `json:"error_code"`
		Err_msg  string      `json:"error_msg"`
		Data     interface{} `json:"data"`
	}
	//
	searchLimitReq {
		AppId      string `header:"appId,optional"`    //appid
		TimeOut    int64  `json:"timeOut,optional"`    //过滤过期时间
		Count      int64  `json:"count,optional"`      //并发量
		Flag       int64  `json:"flag,optional"`       //开关 1：打开；-1：关闭；-2：重置
		Percentage int64  `json:"percentage,optional"` //付费用户占比
		SearchType string `path:"searchType"`          //get|update|
	}
	//参标项目
	baseParam {
		EntId        int64  `header:"entId,optional"`        // 企业id
		EntUserId    int64  `header:"entUserId,optional"`    // 企业下用户id
		PositionType int64  `header:"positionType,optional"` // 职位类型 0个人 1企业
		PositionId   int64  `header:"positionId,optional"`   //职位id
		AccountId    int64  `header:"accountId,optional"`    //账户id
		MgoUserId    string `header:"mgoUserId,optional"`    //原userId
		AppId        string `header:"appId,optional"`        //剑鱼10000
		UserId       string `header:"userId,optional"`       //用户id
		NewUserId    int64  `header:"newUserId,optional"`    //base_user_id
		EntAccountId int64  `header:"entAccountId,optional"` //企业账户id
		Phone        string `header:"phone,optional"`
	}
	// 列表数据参标信息请求参数
	participateShowReq {
		Ids string `json:"ids"` // 标讯id 逗号分割
		baseParam
	}
	// 详情页参标信息请求参数
	participateInfoReq {
		Sid string `json:"sid"` // 标讯id
		baseParam
	}
	// 投标状态更新请求参数
	updateBidStatusReq {
		BidType       int64    `json:"bidType"`                // 投标类型 1-直接投标 2-渠道投标
		BidStage      []string `json:"bidStage,optional"`      // 投标项目阶段 ["未报名","已报名"...]
		IsWin         int64    `json:"isWin,optional"`         // 是否中标 0-未选择 1-是 2-否
		ChannelName   string   `json:"channelName,optional"`   // 渠道名称
		ChannelPerson string   `json:"channelPerson,optional"` // 联系人
		ChannelPhone  string   `json:"channelPhone,optional"`  //联系电话
		Winner        string   `json:"winner,optional"`        // 中标单位
		Sid           string   `json:"sid"`                    // 标讯id
		baseParam
	}
	// 获取投标状态信息
	participateContentReq {
		Sid string `json:"sid"` // 标讯id
		baseParam
	}
	// 参标操作记录请求参数
	participateRecordsReq {
		Sid      string `json:"sid"`                  // 标讯id
		PageNum  int64  `json:"pageNum,default=1"`    // 页码
		PageSize int64  `json:"pageSize,default=100"` // 每页条数
		baseParam
	}
	// 当前部门/企业下参标人员信息
	participatePersonsReq {
		baseParam
		ProjectId string `json:"projectId,optional"` //项目id
	}

	//投标状态更新：投标类型-投标项目阶段
	BidTypeReq {
		Name    string   `json:"name,optional"`
		Content []string `json:"content,optional"`
	}
	//消息提醒设置：
	RemindRuleReq {
		BidState  string `json:"bidState,optional"`  //投标规则类型；直接投标；渠道投标；
		Remainder int64  `json:"remainder,optional"` //距离投标截止日期需要多久开始提醒 单位h
		Node      string `json:"node,optional"`      //那个节点进行消息提醒；和投标项目阶段绑定
	}
	//参标设置信息接口
	participateSetUpInfoReq {
		baseParam
		SetAction  string           `json:"setAction,optional"`  //默认空；U:更新
		IsAllow    string           `json:"isAllow,optional"`    //是否允许多人同时参标 默认0；允许1
		BidType    []*BidTypeReq    `json:"bidType,optional"`    //投标类型自定义内容
		RemindRule []*RemindRuleReq `json:"remindRule,optional"` //消息提醒
	}
	//用户参标、终止参标及划转接口开发
	participateActionReq {
		baseParam
		BidIds      string `json:"bidIds,optional"`                    //招标信息id ，已加密。多个,号隔开
		ProjectIds  string `json:"projectIds,optional"`                //项目信息id，已加密。多个,号隔开
		ToEntUserId string `json:"toEntUserId,optional"`               //划转对象的企业用户id
		IsRetain    bool   `json:"isRetain,optional"`                  //是否保留原跟踪人
		ActionType  string `path:"actionType,options=in|out|transfer"` //in:参标；out:终止参标；transfer:划转
	}
	//我的参标项目列表|企业参标项目列表
	participateListReq {
		baseParam
		Area          string `json:"area,optional"`             //省份
		City          string `json:"city,optional"`             //城市
		BidTime       string `json:"bidTime,optional"`          //招标日期：开始时间-结束时间
		BidEndTime    string `json:"bidEndTime,optional"`       //投标截止日期：格式同上
		BidOpenTime   string `json:"bidOpenTime,optional"`      //开标时间：格式同上
		BidEndStatus  int64  `json:"bidEndStatus,optional"`     //投标截止状态：1：未截止；2：已截止；3：终止参标
		BidOpenStatus int64  `json:"bidOpenStatus,optional"`    //开标状态：1：未开标；2：已开标
		Keywords      string `json:"keywords,optional"`         //查询项目名称 关键词；多个空格隔开
		EntUserIds    string `json:"entUserIds,optional"`       //企业参标人企业用户id集合，多个,号隔开
		PageSize      int64  `json:"pageSize,default=10"`       //每页数据量
		PageNum       int64  `json:"pageNum,default=1"`         //当前页码
		Identity      string `path:"identity,options=mine|ent"` //我的：mine；企业：ent
		OrderNum      int64  `json:"orderNum,default=0"`        //排序：0:投标截止日期正序、1:开标时间正序、2:更新状态时间倒叙
	}
	ptatisticsListReq {
		PositionId   int64    `header:"positionId,optional"` //职位id
		EntId        int64    `header:"entId,optional"`
		EntUserId    int64    `header:"entUserId,optional"`
		DeptId       int64    `header:"deptId,optional"`
		EntUserIdArr []string `json:"entUserIdArr,optional"`
		StartTime    int64    `json:"startTime,optional"`
		EndTime      int64    `json:"endTime,optional"`
	}
)
service bxcore-api {
	@handler searchList
	post /jybx/core/:userType/searchList(searchReq) returns (commonResp)
	@handler limitSearchContent
	post /jybx/core/:searchType/searchLimit(searchLimitReq) returns (commonResp)
	@handler participateShow  // 列表数据参标信息接口
	post /jybx/core/participate/show(participateShowReq) returns (commonResp)
	@handler ParticipateInfo  // 详情页参标信息接口
	post /jybx/core/participate/info(participateInfoReq) returns (commonResp)
	@handler updateBidStatus  // 投标状态更新
	post /jybx/core/participate/updateBidStatus(updateBidStatusReq) returns (commonResp)
	@handler ParticipateContent  // 获取投标状态信息
	post /jybx/core/participate/content(participateContentReq) returns (commonResp)
	@handler ParticipateRecords  // 参标操作记录
	post /jybx/core/participate/records(participateRecordsReq) returns (commonResp)
	@handler ParticipatePersons  // 当前部门/企业下参标人员信息
	post /jybx/core/participate/persons(participatePersonsReq) returns (commonResp)
	@handler participateSetUpInfo // 参标设置信息
	post /jybx/core/participate/setUpInfo(participateSetUpInfoReq) returns (commonResp)
	@handler participateAction //参标|终止参标|划转项目
	post /jybx/core/participate/:actionType/info(participateActionReq) returns (commonResp)
	@handler participateList //我的参标项目列表|企业参标项目列表
	post /jybx/core/participate/:identity/list(participateListReq) returns (commonResp)
	@handler pushStatistics //	订阅推送统计
	post /jybx/core/statistics/pushStatistics(ptatisticsListReq) returns (commonResp)
	@handler projectStatistics//参标项目统计
	post /jybx/core/statistics/projectStatistics(ptatisticsListReq) returns (commonResp)
	
}