Files
suixinkan_ios_new/suixinkan/App/AppServiceEnvironment.swift
汉秋 d2fe5d71e4 Add TravelAlbum, ProfileSpace, and wired camera transfer modules.
Introduce travel album entry with Sony PTP tethering pipeline, profile space settings page, home routing updates, Launch Screen storyboard, and related tests/docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 09:41:05 +08:00

289 lines
10 KiB
Swift

//
// AppServiceEnvironment.swift
// suixinkan
//
// Created by Codex on 2026/6/26.
//
import SwiftUI
private enum EnvironmentServiceDefaults {
static func apiClient() -> APIClient {
APIClient()
}
}
private struct APIClientEnvironmentKey: EnvironmentKey {
static var defaultValue: APIClient { EnvironmentServiceDefaults.apiClient() }
}
private struct UploadAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: UploadAPI { UploadAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct PushAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: PushAPI { PushAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct AccountSnapshotStoreEnvironmentKey: EnvironmentKey {
static var defaultValue: AccountSnapshotStore { AccountSnapshotStore() }
}
private struct AuthSessionCoordinatorEnvironmentKey: EnvironmentKey {
static var defaultValue: AuthSessionCoordinator { AuthSessionCoordinator() }
}
private struct AccountContextAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: AccountContextAPI { AccountContextAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct AssetsAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: AssetsAPI { AssetsAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct AuthAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: AuthAPI { AuthAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct AppConfigAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: AppConfigAPI { AppConfigAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct InviteAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: InviteAPI { InviteAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct LiveAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: LiveAPI { LiveAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct LocationReportAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: LocationReportAPI { LocationReportAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct MessageCenterAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: MessageCenterAPI { MessageCenterAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct OperatingAreaAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: OperatingAreaAPI { OperatingAreaAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct OrdersAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: OrdersAPI { OrdersAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct OSSUploadServiceEnvironmentKey: EnvironmentKey {
static var defaultValue: OSSUploadService {
OSSUploadService(configService: UploadAPI(client: EnvironmentServiceDefaults.apiClient()))
}
}
private struct PaymentAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: PaymentAPI { PaymentAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct PilotCertificationAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: PilotCertificationAPI { PilotCertificationAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct ProfileAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: ProfileAPI { ProfileAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct ProjectAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: ProjectAPI { ProjectAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct PunchPointAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: PunchPointAPI { PunchPointAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct ScenicPermissionAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: ScenicPermissionAPI { ScenicPermissionAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct ScenicQueueAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: ScenicQueueAPI { ScenicQueueAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct ScenicSettlementAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: ScenicSettlementAPI { ScenicSettlementAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct ScheduleAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: ScheduleAPI { ScheduleAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct StatisticsAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: StatisticsAPI { StatisticsAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct TaskAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: TaskAPI { TaskAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct TravelAlbumAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: TravelAlbumAPI { TravelAlbumAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct WalletAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: WalletAPI { WalletAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
private struct CooperationOrderAPIEnvironmentKey: EnvironmentKey {
static var defaultValue: CooperationOrderAPI { CooperationOrderAPI(client: EnvironmentServiceDefaults.apiClient()) }
}
extension EnvironmentValues {
var apiClient: APIClient {
get { self[APIClientEnvironmentKey.self] }
set { self[APIClientEnvironmentKey.self] = newValue }
}
var uploadAPI: UploadAPI {
get { self[UploadAPIEnvironmentKey.self] }
set { self[UploadAPIEnvironmentKey.self] = newValue }
}
var pushAPI: PushAPI {
get { self[PushAPIEnvironmentKey.self] }
set { self[PushAPIEnvironmentKey.self] = newValue }
}
var accountSnapshotStore: AccountSnapshotStore {
get { self[AccountSnapshotStoreEnvironmentKey.self] }
set { self[AccountSnapshotStoreEnvironmentKey.self] = newValue }
}
var authSessionCoordinator: AuthSessionCoordinator {
get { self[AuthSessionCoordinatorEnvironmentKey.self] }
set { self[AuthSessionCoordinatorEnvironmentKey.self] = newValue }
}
var accountContextAPI: AccountContextAPI {
get { self[AccountContextAPIEnvironmentKey.self] }
set { self[AccountContextAPIEnvironmentKey.self] = newValue }
}
var assetsAPI: AssetsAPI {
get { self[AssetsAPIEnvironmentKey.self] }
set { self[AssetsAPIEnvironmentKey.self] = newValue }
}
var authAPI: AuthAPI {
get { self[AuthAPIEnvironmentKey.self] }
set { self[AuthAPIEnvironmentKey.self] = newValue }
}
var appConfigAPI: AppConfigAPI {
get { self[AppConfigAPIEnvironmentKey.self] }
set { self[AppConfigAPIEnvironmentKey.self] = newValue }
}
var inviteAPI: InviteAPI {
get { self[InviteAPIEnvironmentKey.self] }
set { self[InviteAPIEnvironmentKey.self] = newValue }
}
var liveAPI: LiveAPI {
get { self[LiveAPIEnvironmentKey.self] }
set { self[LiveAPIEnvironmentKey.self] = newValue }
}
var locationReportAPI: LocationReportAPI {
get { self[LocationReportAPIEnvironmentKey.self] }
set { self[LocationReportAPIEnvironmentKey.self] = newValue }
}
var messageCenterAPI: MessageCenterAPI {
get { self[MessageCenterAPIEnvironmentKey.self] }
set { self[MessageCenterAPIEnvironmentKey.self] = newValue }
}
var operatingAreaAPI: OperatingAreaAPI {
get { self[OperatingAreaAPIEnvironmentKey.self] }
set { self[OperatingAreaAPIEnvironmentKey.self] = newValue }
}
var ordersAPI: OrdersAPI {
get { self[OrdersAPIEnvironmentKey.self] }
set { self[OrdersAPIEnvironmentKey.self] = newValue }
}
var ossUploadService: OSSUploadService {
get { self[OSSUploadServiceEnvironmentKey.self] }
set { self[OSSUploadServiceEnvironmentKey.self] = newValue }
}
var paymentAPI: PaymentAPI {
get { self[PaymentAPIEnvironmentKey.self] }
set { self[PaymentAPIEnvironmentKey.self] = newValue }
}
var pilotCertificationAPI: PilotCertificationAPI {
get { self[PilotCertificationAPIEnvironmentKey.self] }
set { self[PilotCertificationAPIEnvironmentKey.self] = newValue }
}
var profileAPI: ProfileAPI {
get { self[ProfileAPIEnvironmentKey.self] }
set { self[ProfileAPIEnvironmentKey.self] = newValue }
}
var projectAPI: ProjectAPI {
get { self[ProjectAPIEnvironmentKey.self] }
set { self[ProjectAPIEnvironmentKey.self] = newValue }
}
var punchPointAPI: PunchPointAPI {
get { self[PunchPointAPIEnvironmentKey.self] }
set { self[PunchPointAPIEnvironmentKey.self] = newValue }
}
var scenicPermissionAPI: ScenicPermissionAPI {
get { self[ScenicPermissionAPIEnvironmentKey.self] }
set { self[ScenicPermissionAPIEnvironmentKey.self] = newValue }
}
var scenicQueueAPI: ScenicQueueAPI {
get { self[ScenicQueueAPIEnvironmentKey.self] }
set { self[ScenicQueueAPIEnvironmentKey.self] = newValue }
}
var scenicSettlementAPI: ScenicSettlementAPI {
get { self[ScenicSettlementAPIEnvironmentKey.self] }
set { self[ScenicSettlementAPIEnvironmentKey.self] = newValue }
}
var scheduleAPI: ScheduleAPI {
get { self[ScheduleAPIEnvironmentKey.self] }
set { self[ScheduleAPIEnvironmentKey.self] = newValue }
}
var statisticsAPI: StatisticsAPI {
get { self[StatisticsAPIEnvironmentKey.self] }
set { self[StatisticsAPIEnvironmentKey.self] = newValue }
}
var taskAPI: TaskAPI {
get { self[TaskAPIEnvironmentKey.self] }
set { self[TaskAPIEnvironmentKey.self] = newValue }
}
var travelAlbumAPI: TravelAlbumAPI {
get { self[TravelAlbumAPIEnvironmentKey.self] }
set { self[TravelAlbumAPIEnvironmentKey.self] = newValue }
}
var walletAPI: WalletAPI {
get { self[WalletAPIEnvironmentKey.self] }
set { self[WalletAPIEnvironmentKey.self] = newValue }
}
var cooperationOrderAPI: CooperationOrderAPI {
get { self[CooperationOrderAPIEnvironmentKey.self] }
set { self[CooperationOrderAPIEnvironmentKey.self] = newValue }
}
}