111 lines
4.3 KiB
Go
111 lines
4.3 KiB
Go
package dto
|
|
|
|
import (
|
|
"time"
|
|
|
|
"tyapi-server/internal/domains/certification/enums"
|
|
)
|
|
|
|
// CertificationCreateRequest 创建认证申请请求
|
|
type CertificationCreateRequest struct {
|
|
UserID string `json:"user_id" binding:"required"`
|
|
}
|
|
|
|
// CertificationCreateResponse 创建认证申请响应
|
|
type CertificationCreateResponse struct {
|
|
ID string `json:"id"`
|
|
UserID string `json:"user_id"`
|
|
Status enums.CertificationStatus `json:"status"`
|
|
}
|
|
|
|
// CertificationStatusResponse 认证状态响应
|
|
type CertificationStatusResponse struct {
|
|
ID string `json:"id"`
|
|
UserID string `json:"user_id"`
|
|
Status enums.CertificationStatus `json:"status"`
|
|
StatusName string `json:"status_name"`
|
|
Progress int `json:"progress"`
|
|
IsUserActionRequired bool `json:"is_user_action_required"`
|
|
IsAdminActionRequired bool `json:"is_admin_action_required"`
|
|
|
|
// 时间节点
|
|
InfoSubmittedAt *time.Time `json:"info_submitted_at,omitempty"`
|
|
FaceVerifiedAt *time.Time `json:"face_verified_at,omitempty"`
|
|
ContractAppliedAt *time.Time `json:"contract_applied_at,omitempty"`
|
|
ContractApprovedAt *time.Time `json:"contract_approved_at,omitempty"`
|
|
ContractSignedAt *time.Time `json:"contract_signed_at,omitempty"`
|
|
CompletedAt *time.Time `json:"completed_at,omitempty"`
|
|
|
|
// 关联信息
|
|
Enterprise *EnterpriseInfoResponse `json:"enterprise,omitempty"`
|
|
ContractURL string `json:"contract_url,omitempty"`
|
|
SigningURL string `json:"signing_url,omitempty"`
|
|
RejectReason string `json:"reject_reason,omitempty"`
|
|
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
// SubmitEnterpriseInfoRequest 提交企业信息请求
|
|
type SubmitEnterpriseInfoRequest struct {
|
|
CompanyName string `json:"company_name" binding:"required"`
|
|
UnifiedSocialCode string `json:"unified_social_code" binding:"required"`
|
|
LegalPersonName string `json:"legal_person_name" binding:"required"`
|
|
LegalPersonID string `json:"legal_person_id" binding:"required"`
|
|
LicenseUploadRecordID string `json:"license_upload_record_id" binding:"required"`
|
|
}
|
|
|
|
// SubmitEnterpriseInfoResponse 提交企业信息响应
|
|
type SubmitEnterpriseInfoResponse struct {
|
|
ID string `json:"id"`
|
|
Status enums.CertificationStatus `json:"status"`
|
|
Enterprise *EnterpriseInfoResponse `json:"enterprise"`
|
|
}
|
|
|
|
// FaceVerifyRequest 人脸识别请求
|
|
type FaceVerifyRequest struct {
|
|
RealName string `json:"real_name" binding:"required"`
|
|
IDCardNumber string `json:"id_card_number" binding:"required"`
|
|
ReturnURL string `json:"return_url" binding:"required"`
|
|
}
|
|
|
|
// FaceVerifyResponse 人脸识别响应
|
|
type FaceVerifyResponse struct {
|
|
CertifyID string `json:"certify_id"`
|
|
VerifyURL string `json:"verify_url"`
|
|
ExpiresAt time.Time `json:"expires_at"`
|
|
}
|
|
|
|
// ApplyContractRequest 申请合同请求(无需额外参数)
|
|
type ApplyContractRequest struct{}
|
|
|
|
// ApplyContractResponse 申请合同响应
|
|
type ApplyContractResponse struct {
|
|
ID string `json:"id"`
|
|
Status enums.CertificationStatus `json:"status"`
|
|
ContractAppliedAt time.Time `json:"contract_applied_at"`
|
|
}
|
|
|
|
// SignContractRequest 签署合同请求
|
|
type SignContractRequest struct {
|
|
SignatureData string `json:"signature_data,omitempty"`
|
|
}
|
|
|
|
// SignContractResponse 签署合同响应
|
|
type SignContractResponse struct {
|
|
ID string `json:"id"`
|
|
Status enums.CertificationStatus `json:"status"`
|
|
ContractSignedAt time.Time `json:"contract_signed_at"`
|
|
}
|
|
|
|
// CertificationDetailResponse 认证详情响应
|
|
type CertificationDetailResponse struct {
|
|
*CertificationStatusResponse
|
|
|
|
// 详细记录
|
|
LicenseUploadRecord *LicenseUploadRecordResponse `json:"license_upload_record,omitempty"`
|
|
FaceVerifyRecords []FaceVerifyRecordResponse `json:"face_verify_records,omitempty"`
|
|
ContractRecords []ContractRecordResponse `json:"contract_records,omitempty"`
|
|
NotificationRecords []NotificationRecordResponse `json:"notification_records,omitempty"`
|
|
}
|