98b7600797
对标安卓正式版、对接 app-server(8770)的 SwiftUI 客户端。iOS 无障碍受限、无比价核心,做自成一体:美团 CPS 导购 + 福利(签到/任务/金币)+ 查看(比价记录/省钱战绩)。 功能完整 M0-M5:脚手架、短信登录(JWT+Keychain+401 自动刷新)、首页券 feed 导购、比价记录+省钱战绩、福利、我的(资料/反馈/设置/注销)。 单 target、0 三方依赖、XcodeGen 生成工程;Debug/Release 双 plist 分流 ATS。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
21 lines
738 B
Swift
21 lines
738 B
Swift
import Foundation
|
|
|
|
/// 省钱(累计/战绩/明细)读取,对齐后端 app/api/v1/savings.py(需登录)。
|
|
struct SavingsService {
|
|
private var api: APIClient { .shared }
|
|
|
|
func summary() async throws -> SavingsSummaryDTO {
|
|
try await api.get("api/v1/savings/summary")
|
|
}
|
|
|
|
func battle() async throws -> SavingsBattleDTO {
|
|
try await api.get("api/v1/savings/battle")
|
|
}
|
|
|
|
func records(limit: Int = 20, cursor: Int? = nil) async throws -> SavingsRecordPageDTO {
|
|
var query = [URLQueryItem(name: "limit", value: String(limit))]
|
|
if let cursor { query.append(URLQueryItem(name: "cursor", value: String(cursor))) }
|
|
return try await api.get("api/v1/savings/records", query: query)
|
|
}
|
|
}
|