// // PilotCertificationAPI.swift // suixinkan // // Created by Codex on 2026/6/25. // import Foundation import Combine /// 飞手认证服务协议,定义认证详情、短信、提交和编辑接口。 @MainActor protocol PilotCertificationServing { func flyerDetail() async throws -> FlyerDetailResponse func flyerSendCode(phone: String) async throws func flyerApply(_ request: FlyerApplyRequest) async throws func flyerEdit(_ request: FlyerEditRequest) async throws } @MainActor /// 飞手认证 API,封装 `/api/app/flyer` 认证相关接口。 final class PilotCertificationAPI { private let client: APIClient /// 初始化飞手认证 API,并注入共享网络客户端。 init(client: APIClient) { self.client = client } /// 获取飞手认证详情。 func flyerDetail() async throws -> FlyerDetailResponse { try await client.send(APIRequest(method: .get, path: "/api/app/flyer/detail")) } /// 发送飞手认证短信验证码。 func flyerSendCode(phone: String) async throws { let _: EmptyPayload = try await client.send( APIRequest(method: .post, path: "/api/app/flyer/send-code", body: FlyerSendCodeRequest(phone: phone)) ) } /// 首次提交飞手认证申请。 func flyerApply(_ request: FlyerApplyRequest) async throws { let _: EmptyPayload = try await client.send( APIRequest(method: .post, path: "/api/app/flyer/apply", body: request) ) } /// 驳回后编辑并重新提交飞手认证申请。 func flyerEdit(_ request: FlyerEditRequest) async throws { let _: EmptyPayload = try await client.send( APIRequest(method: .post, path: "/api/app/flyer/edit", body: request) ) } } extension PilotCertificationAPI: PilotCertificationServing {}