package dto import "time" // SaveWeComApplicationRequest 保存企业微信自建应用请求。 type SaveWeComApplicationRequest struct { CorpID string `json:"corp_id" validate:"required,min=1,max=64" description:"企业微信企业 ID"` AgentID int64 `json:"agent_id" validate:"required,gt=0" description:"企业微信自建应用 AgentID"` Name string `json:"name" validate:"required,min=1,max=100" description:"应用展示名称"` Secret string `json:"secret" validate:"required,min=1,max=512" description:"应用 Secret,服务端明文保存"` CallbackToken string `json:"callback_token" validate:"required,min=1,max=512" description:"回调 Token,服务端明文保存"` EncodingAESKey string `json:"encoding_aes_key" validate:"required,len=43" description:"回调 EncodingAESKey,服务端明文保存"` Status int `json:"status" validate:"oneof=0 1" enum:"0,1" description:"状态 (0:禁用, 1:启用)"` } // WeComApplicationListRequest 查询企业微信应用配置列表请求。 type WeComApplicationListRequest struct { Page int `json:"page" query:"page" validate:"omitempty,min=1" minimum:"1" default:"1" description:"页码,默认 1"` PageSize int `json:"page_size" query:"page_size" validate:"omitempty,min=1,max=100" minimum:"1" maximum:"100" default:"20" description:"每页数量,默认 20,最大 100"` } // WeComApplicationResponse 企业微信应用配置响应,仅允许超级管理员读取明文凭据。 type WeComApplicationResponse struct { ID uint `json:"id" description:"应用配置 ID"` CorpID string `json:"corp_id" description:"企业微信企业 ID"` AgentID int64 `json:"agent_id" description:"企业微信自建应用 AgentID"` Name string `json:"name" description:"应用展示名称"` Secret string `json:"secret" description:"应用 Secret 明文,仅超级管理员可见"` CallbackToken string `json:"callback_token" description:"回调 Token 明文,仅超级管理员可见"` EncodingAESKey string `json:"encoding_aes_key" description:"回调 EncodingAESKey 明文,仅超级管理员可见"` DefaultCreatorUserID string `json:"default_creator_userid" description:"代理等非企微账号发起审批时使用的默认企微成员 userid"` DefaultCreatorName string `json:"default_creator_name" description:"默认企微审批发起人姓名快照"` Status int `json:"status" description:"状态 (0:禁用, 1:启用)"` StatusName string `json:"status_name" description:"状态名称(中文)"` CredentialsSet bool `json:"credentials_set" description:"Secret、回调 Token 和 EncodingAESKey 是否均已配置"` LastConnectedAt *time.Time `json:"last_connected_at" description:"最近一次成功取得 access_token 的时间"` CreatedAt time.Time `json:"created_at" description:"创建时间"` UpdatedAt time.Time `json:"updated_at" description:"更新时间"` } // SaveWeComDefaultCreatorRequest 保存企业微信应用默认审批发起人请求。 type SaveWeComDefaultCreatorRequest struct { UserID string `json:"userid" validate:"required,min=1,max=64" description:"从应用当前可见成员中选择的默认发起人 userid"` } // SaveWeComDefaultCreatorParams 保存默认审批发起人的路径与请求参数。 type SaveWeComDefaultCreatorParams struct { ID uint `path:"id" required:"true" description:"企业微信应用配置 ID"` SaveWeComDefaultCreatorRequest } // WeComApplicationListResponse 企业微信应用列表响应。 type WeComApplicationListResponse struct { Items []WeComApplicationResponse `json:"items" description:"企业微信应用配置列表"` Total int64 `json:"total" description:"总数量"` Page int `json:"page" description:"当前页码"` PageSize int `json:"page_size" description:"每页数量"` } // WeComConnectionTestResponse 企业微信连接测试响应。 type WeComConnectionTestResponse struct { Success bool `json:"success" description:"是否成功取得 access_token"` } // WeComApprovalCallbackRequest 企业微信审批回调路径与签名参数。 type WeComApprovalCallbackRequest struct { ApplicationID uint `path:"application_id" required:"true" minimum:"1" description:"企业微信应用配置 ID"` MsgSignature string `query:"msg_signature" required:"true" description:"企业微信回调消息签名"` Timestamp string `query:"timestamp" required:"true" description:"企业微信回调时间戳"` Nonce string `query:"nonce" required:"true" description:"企业微信回调随机串"` EchoStr string `query:"echostr" description:"GET 回调地址验证使用的加密随机串"` }