96 lines
4.4 KiB
Go
96 lines
4.4 KiB
Go
package commands
|
||
|
||
import (
|
||
"tyapi-server/internal/domains/certification/enums"
|
||
)
|
||
|
||
// CreateCertificationCommand 创建认证申请命令
|
||
type CreateCertificationCommand struct {
|
||
UserID string `json:"-"`
|
||
}
|
||
|
||
// ApplyContractCommand 申请合同命令
|
||
type ApplyContractCommand struct {
|
||
UserID string `json:"user_id" validate:"required"`
|
||
}
|
||
|
||
// RetryOperationCommand 重试操作命令
|
||
type RetryOperationCommand struct {
|
||
CertificationID string `json:"certification_id" validate:"required"`
|
||
UserID string `json:"user_id" validate:"required"`
|
||
Operation string `json:"operation" validate:"required,oneof=enterprise_verification contract_application"`
|
||
Reason string `json:"reason,omitempty"`
|
||
}
|
||
|
||
// EsignCallbackCommand e签宝回调命令
|
||
type EsignCallbackCommand struct {
|
||
Data *EsignCallbackData `json:"data"`
|
||
Headers map[string]string `json:"headers"`
|
||
QueryParams map[string]string `json:"query_params"`
|
||
}
|
||
|
||
// EsignCallbackData e签宝回调数据结构
|
||
type EsignCallbackData struct {
|
||
Action string `json:"action"`
|
||
Timestamp int64 `json:"timestamp"`
|
||
AuthFlowId string `json:"authFlowId,omitempty"`
|
||
SignFlowId string `json:"signFlowId,omitempty"`
|
||
CustomBizNum string `json:"customBizNum,omitempty"`
|
||
SignOrder int `json:"signOrder,omitempty"`
|
||
OperateTime int64 `json:"operateTime,omitempty"`
|
||
SignResult int `json:"signResult,omitempty"`
|
||
ResultDescription string `json:"resultDescription,omitempty"`
|
||
AuthType string `json:"authType,omitempty"`
|
||
SignFlowStatus string `json:"signFlowStatus,omitempty"`
|
||
Operator *EsignOperator `json:"operator,omitempty"`
|
||
PsnInfo *EsignPsnInfo `json:"psnInfo,omitempty"`
|
||
Organization *EsignOrganization `json:"organization,omitempty"`
|
||
}
|
||
|
||
// EsignOperator 签署人信息
|
||
type EsignOperator struct {
|
||
PsnId string `json:"psnId"`
|
||
PsnAccount *EsignPsnAccount `json:"psnAccount"`
|
||
}
|
||
|
||
// EsignPsnInfo 个人认证信息
|
||
type EsignPsnInfo struct {
|
||
PsnId string `json:"psnId"`
|
||
PsnAccount *EsignPsnAccount `json:"psnAccount"`
|
||
}
|
||
|
||
// EsignPsnAccount 个人账户信息
|
||
type EsignPsnAccount struct {
|
||
AccountMobile string `json:"accountMobile"`
|
||
AccountEmail string `json:"accountEmail"`
|
||
}
|
||
|
||
// EsignOrganization 企业信息
|
||
type EsignOrganization struct {
|
||
OrgName string `json:"orgName"`
|
||
// 可以根据需要添加更多企业信息字段
|
||
}
|
||
|
||
|
||
// ForceTransitionStatusCommand 强制状态转换命令(管理员)
|
||
type ForceTransitionStatusCommand struct {
|
||
CertificationID string `json:"certification_id" validate:"required"`
|
||
AdminID string `json:"admin_id" validate:"required"`
|
||
TargetStatus enums.CertificationStatus `json:"target_status" validate:"required"`
|
||
Reason string `json:"reason" validate:"required"`
|
||
Force bool `json:"force,omitempty"` // 是否强制执行,跳过业务规则验证
|
||
}
|
||
|
||
// SubmitEnterpriseInfoCommand 提交企业信息命令
|
||
type SubmitEnterpriseInfoCommand struct {
|
||
UserID string `json:"-" comment:"用户唯一标识,从JWT token获取,不在JSON中暴露"`
|
||
CompanyName string `json:"company_name" binding:"required,min=2,max=100" comment:"企业名称,如:北京科技有限公司"`
|
||
UnifiedSocialCode string `json:"unified_social_code" binding:"required,social_credit_code" comment:"统一社会信用代码,18位企业唯一标识,如:91110000123456789X"`
|
||
LegalPersonName string `json:"legal_person_name" binding:"required,min=2,max=20" comment:"法定代表人姓名,如:张三"`
|
||
LegalPersonID string `json:"legal_person_id" binding:"required,id_card" comment:"法定代表人身份证号码,18位,如:110101199001011234"`
|
||
LegalPersonPhone string `json:"legal_person_phone" binding:"required,phone" comment:"法定代表人手机号,11位,如:13800138000"`
|
||
EnterpriseAddress string `json:"enterprise_address" binding:"required,enterprise_address" comment:"企业地址,如:北京市海淀区"`
|
||
EnterpriseEmail string `json:"enterprise_email" binding:"required,enterprise_email" comment:"企业邮箱,如:info@example.com"`
|
||
VerificationCode string `json:"verification_code" binding:"required,len=6" comment:"验证码"`
|
||
}
|