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>
65 lines
2.7 KiB
Swift
65 lines
2.7 KiB
Swift
//
|
||
// 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
|
||
}
|
||
}
|