Refactor AppServices into assembly, feature facades, and lifecycle coordinator.
Extract dependency wiring and session lifecycle from the container and RootViewController, split NetworkBundle by domain, and add module-level feature services while keeping flat accessors for compatibility. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
64
suixinkan_ios/App/AppServices+Accessors.swift
Normal file
64
suixinkan_ios/App/AppServices+Accessors.swift
Normal file
@ -0,0 +1,64 @@
|
||||
//
|
||||
// AppServices+Accessors.swift
|
||||
// suixinkan
|
||||
//
|
||||
// Created by Codex on 2026/6/29.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
@MainActor
|
||||
/// `AppServices` 兼容访问器,供既有页面继续按扁平属性读取依赖。
|
||||
extension AppServices {
|
||||
var appSession: AppSession { session.appSession }
|
||||
var accountContext: AccountContext { context.accountContext }
|
||||
var permissionContext: PermissionContext { context.permissionContext }
|
||||
var scenicSpotContext: ScenicSpotContext { context.scenicSpotContext }
|
||||
var toastCenter: ToastCenter { ui.toastCenter }
|
||||
var globalLoading: GlobalLoadingCenter { ui.globalLoading }
|
||||
var scenicQueueRuntime: ScenicQueueRuntime { runtime.scenicQueueRuntime }
|
||||
|
||||
var apiClient: APIClient { network.apiClient }
|
||||
var authAPI: AuthAPI { network.authAPI }
|
||||
var profileAPI: ProfileAPI { network.profileAPI }
|
||||
var uploadAPI: UploadAPI { network.uploadAPI }
|
||||
var ossUploadService: OSSUploadService { network.ossUploadService }
|
||||
var accountContextAPI: AccountContextAPI { network.accountContextAPI }
|
||||
var ordersAPI: OrdersAPI { network.ordersAPI }
|
||||
var statisticsAPI: StatisticsAPI { network.statisticsAPI }
|
||||
var paymentAPI: PaymentAPI { network.paymentAPI }
|
||||
var walletAPI: WalletAPI { network.walletAPI }
|
||||
var pushAPI: PushAPI { network.pushAPI }
|
||||
var scenicPermissionAPI: ScenicPermissionAPI { network.scenicPermissionAPI }
|
||||
var scenicSettlementAPI: ScenicSettlementAPI { network.scenicSettlementAPI }
|
||||
var messageCenterAPI: MessageCenterAPI { network.messageCenterAPI }
|
||||
var scenicQueueAPI: ScenicQueueAPI { network.scenicQueueAPI }
|
||||
var liveAPI: LiveAPI { network.liveAPI }
|
||||
var operatingAreaAPI: OperatingAreaAPI { network.operatingAreaAPI }
|
||||
var pilotCertificationAPI: PilotCertificationAPI { network.pilotCertificationAPI }
|
||||
var taskAPI: TaskAPI { network.taskAPI }
|
||||
var projectAPI: ProjectAPI { network.projectAPI }
|
||||
var scheduleAPI: ScheduleAPI { network.scheduleAPI }
|
||||
var inviteAPI: InviteAPI { network.inviteAPI }
|
||||
var assetsAPI: AssetsAPI { network.assetsAPI }
|
||||
var punchPointAPI: PunchPointAPI { network.punchPointAPI }
|
||||
var locationReportAPI: LocationReportAPI { network.locationReportAPI }
|
||||
|
||||
var authSessionCoordinator: AuthSessionCoordinator { session.authSessionCoordinator }
|
||||
var sessionBootstrapper: SessionBootstrapper { session.sessionBootstrapper }
|
||||
|
||||
/// 当前景区 ID。
|
||||
var currentScenicId: Int? {
|
||||
accountContext.currentScenic?.id
|
||||
}
|
||||
|
||||
/// 当前用户 staffId,用于钱包等接口。
|
||||
var staffId: Int? {
|
||||
Int(accountContext.profile?.userId ?? "")
|
||||
}
|
||||
|
||||
/// 当前用户 ID 字符串。
|
||||
var userId: String? {
|
||||
accountContext.profile?.userId
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user