package certification import ( "context" "hyapi-server/internal/application/certification/dto/commands" "hyapi-server/internal/application/certification/dto/queries" "hyapi-server/internal/application/certification/dto/responses" ) // CertificationApplicationService 认证应用服务接口 // 负责用例协调,提供精简的应用层接口 type CertificationApplicationService interface { // ================ 用户操作用例 ================ // 提交企业信息 SubmitEnterpriseInfo(ctx context.Context, cmd *commands.SubmitEnterpriseInfoCommand) (*responses.CertificationResponse, error) // 确认状态 ConfirmAuth(ctx context.Context, cmd *queries.ConfirmAuthCommand) (*responses.ConfirmAuthResponse, error) // 确认签署 ConfirmSign(ctx context.Context, cmd *queries.ConfirmSignCommand) (*responses.ConfirmSignResponse, error) // 申请合同签署 ApplyContract(ctx context.Context, cmd *commands.ApplyContractCommand) (*responses.ContractSignUrlResponse, error) // OCR营业执照识别 RecognizeBusinessLicense(ctx context.Context, imageBytes []byte) (*responses.BusinessLicenseResult, error) // ================ 查询用例 ================ // 获取认证详情 GetCertification(ctx context.Context, query *queries.GetCertificationQuery) (*responses.CertificationResponse, error) // 获取认证列表(管理员) ListCertifications(ctx context.Context, query *queries.ListCertificationsQuery) (*responses.CertificationListResponse, error) // ================ 管理员后台操作用例 ================ // AdminCompleteCertificationWithoutContract 管理员代用户完成认证(暂不关联合同) AdminCompleteCertificationWithoutContract(ctx context.Context, cmd *commands.AdminCompleteCertificationCommand) (*responses.CertificationResponse, error) // AdminListSubmitRecords 管理端分页查询企业信息提交记录 AdminListSubmitRecords(ctx context.Context, query *queries.AdminListSubmitRecordsQuery) (*responses.AdminSubmitRecordsListResponse, error) // AdminGetSubmitRecordByID 管理端获取单条提交记录详情 AdminGetSubmitRecordByID(ctx context.Context, recordID string) (*responses.AdminSubmitRecordDetail, error) // AdminApproveSubmitRecord 管理端审核通过(按提交记录 ID) AdminApproveSubmitRecord(ctx context.Context, recordID, adminID, remark string) error // AdminRejectSubmitRecord 管理端审核拒绝(按提交记录 ID) AdminRejectSubmitRecord(ctx context.Context, recordID, adminID, remark string) error // AdminTransitionCertificationStatus 管理端按用户变更认证状态(以状态机为准:info_submitted=通过 / info_rejected=拒绝) AdminTransitionCertificationStatus(ctx context.Context, cmd *commands.AdminTransitionCertificationStatusCommand) error // ================ e签宝回调处理 ================ // 处理e签宝回调 HandleEsignCallback(ctx context.Context, cmd *commands.EsignCallbackCommand) error }