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:"企业地址,如:北京市海淀区"` VerificationCode string `json:"verification_code" binding:"required,len=6" comment:"验证码"` }