package l_msg_api

// 业务系统和模板配置
type (
	base struct {
		ServerIndex string `json:"server_index"` // 业务系统
		TempIndex   string `json:"temp_index"`   // 配置模板
	}

	responseBody struct {
		Code int         `json:"code"`
		Msg  string      `json:"msg"`
		Data interface{} `json:"data"`
	}

	accessTokenResponse struct {
		AccessToken  string `json:"accessToken"`  // 授权token
		AccessExpire int    `json:"accessExpire"` // 过期时间
	}

	OAResponse struct {
		IsSuccess  bool   `json:"is_success"` // 是否成功 true 成功 false 失败
		Msg        string `json:"msg"`
		InstanceId string `json:"instance_id"` // 审批实例id
	}

	// 封装上游采购审批表单数据
	formDataRequest struct {
		Base base `json:"base"`
		FormsData
	}

	FormsData struct {
		FormBase
		FormComponentValues []FormComponentValues `json:"form_component_values"` // 审批表单数据
		Finance             *Finance              `json:"finance"`               // 财务模块调用
	}

	FormComponentValues struct { // 审批表单数据
		Name          string `json:"name"`
		Value         string `json:"value"`
		ComponentType string `json:"component_type,omitempty"`
		ExtValue      string `json:"extValue,omitempty"`
	}

	Finance struct {
		CheckUserId    string   `json:"checkUserId"`    //审核人
		Sync           int64    `json:"sync"`           //是否是异步,如果为异步,付款申请和业务申请是同时进行
		Amount         string   `json:"amount"`         //金额
		GoodsInfo      string   `json:"goodsInfo"`      //商品信息
		PaymentAccount string   `json:"paymentAccount"` //付款方账户
		TaxAmount      string   `json:"taxAmount"`      //税率
		CallbackUrl    string   `json:"callbackUrl"`    //回调地址
		Remark         string   `json:"remark"`
		SystemName     string   `json:"systemName"`  //业务系统名称
		SubjectName    string   `json:"subjectName"` //户名
		BankInfo       BankInfo `json:"bankInfo"`
	}
	BankInfo struct {
		ResellerName    string `json:"resellerName"`    //供应商名称
		BankName        string `json:"bankName"`        //银行名称
		AccountBankName string `json:"accountBankName"` //开户行名称
		SubjectName     string `json:"subjectName"`     //户名
		BankAccount     string `json:"bankAccount"`     //银行卡号
	}

	// 创建OA基础数据
	FormBase struct {
		OutTradeNo       string `json:"out_trade_no"`       // 流水号
		OriginatorUserId string `json:"originator_user_id"` // 钉钉申请人id
	}

	// 获取审批实列详情 请求数据
	oAGetDetailRequest struct {
		Base              base   `json:"base"`
		OutTradeNo        string `json:"out_trade_no"`        // 流水号
		ProcessInstanceId string `json:"process_instance_id"` // 审批实例id
	}

	// 获取审批实列详情 返回数据
	OAGetDetailData struct {
		OutTradeNo        string `json:"out_trade_no"`        // 流水号
		ProcessInstanceId string `json:"process_instance_id"` // 审批实例id
		Title             string `json:"title"`               // 审批标题
		Result            int    `json:"result"`              // 审批结果,(1:同意,2:拒绝)
		Type              string `json:"type"`                // 审批类型 '任务状态变更类型,start:审批任务开始,finish:审批任务正常结束(完成或转交)
		Remarks           string `json:"remarks"`             // 审批备注
		CreateTime        string `json:"createTime"`          // 审批创建时间
		UpdateTime        string `json:"updateTime"`          // 审批更新时间
	}

	smsRequest struct {
		Base  base   `json:"base"`
		Param string `json:"param"` // 短信模板变量对应的实际值
		Tels  string `json:"tels"`
	}

	SmsSend struct {
		SendList []smsSendResView `json:"send_list"`
	}

	smsSendResView struct {
		Tel       string `json:"tel"`
		IsSuccess uint32 `json:"is_success"`
	}

	dingTalkBlackBoardSendReq struct {
		Base               base                   `json:"base"`
		BlackboardReceiver blackboardReceiverView `json:"blackboard_receiver"` //公告接收人。
		Title              string                 `json:"title,default=公告"`    //公告标题
		Content            string                 `json:"content,default=大家好"` //公告内容
	}
	blackboardReceiverView struct {
		DeptidList []int    `json:"deptid_list"` //接收部门ID列表,最大的列表长度为20。
		UseridList []string `json:"userid_list"` //接收部用户ID列表,最大的列表长度为20。
	}

	Default struct {
		IsSuccess bool   `json:"is_success,default=false"`
		Msg       string `json:"msg,default=ok"`
	}

	oACommentRequest struct {
		Base          base                 `json:"base"`
		OutTradeNo    string               `json:"out_trade_no"`           // 流水号
		Text          string               `json:"text"`                   //评论的内容
		CommentUserId string               `json:"commentUserId,optional"` //评论的内容
		File          DingOACommentReqFile `json:"file,optional"`          //文件
	}

	DingOACommentReqFile struct {
		Photos      []string                          `json:"photos,optional"`      //图片URL地址
		Attachments []DingOACommentReqFileAttachments `json:"attachments,optional"` //图片URL地址
	}

	DingOACommentReqFileAttachments struct {
		SpaceId  string `json:"spaceId,optional"`  //钉盘空间ID。
		FileSize string `json:"fileSize,optional"` //文件大小。
		FileId   string `json:"fileId,optional"`   //文件ID。
		FileName string `json:"fileName,optional"` //文件名称。
		FileType string `json:"fileType,optional"` //文件类型。
	}
)