Files
lujiuyinandCursor c083f1d4b3 升级 AppStore 缓存 Key 并在覆盖安装时强制重新登录。
统一账号作用域 Key 对齐 Android,新增缓存 schema 迁移清理旧数据,并同步更新相关模块与单元测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 09:35:55 +08:00

50 lines
1.6 KiB
Swift

//
// AppStore.swift
// suixinkan
//
import Foundation
/// 应用本地存储统一入口,负责组装各功能模块并协调退出登录清理。
final class AppStore {
/// 全局应用存储。
static let shared = AppStore()
/// 登录会话与当前账号存储。
let session: AppSessionStore
/// 角色权限与首页权限缓存。
let permissions: AppPermissionStore
/// 位置上报会话存储。
let location: AppLocationStore
/// 收款功能偏好存储。
let payment: AppPaymentStore
/// 景区排队功能存储。
let scenicQueue: AppScenicQueueStore
/// 使用指定 UserDefaults 创建模块化应用存储。
init(defaults: UserDefaults = .standard) {
AppStoreCacheMigrator.migrateIfNeeded(defaults: defaults)
let session = AppSessionStore(defaults: defaults)
self.session = session
permissions = AppPermissionStore(defaults: defaults, session: session)
location = AppLocationStore(defaults: defaults, session: session)
payment = AppPaymentStore(defaults: defaults, session: session)
scenicQueue = AppScenicQueueStore(defaults: defaults, session: session)
}
/// 清除当前账号业务快照与登录态,保留隐私授权和上次登录用户名。
func logout() {
let accountScope = session.accountCachePrefix
permissions.clear(accountScope: accountScope)
location.clear(accountScope: accountScope)
payment.clear(accountScope: accountScope)
scenicQueue.clear(accountScope: accountScope)
session.clearAuthenticatedSession(accountScope: accountScope)
}
}