// // NotificationName.swift // suixinkan // import Foundation /// 工程中所有 `NotificationCenter` 通知名称的统一入口。 /// 新增通知时只能在此文件声明,禁止在业务代码中硬编码字符串。 enum NotificationName { private static let prefix = "com.yuanzhixiang.suixinkan." private static func name(_ suffix: String) -> Notification.Name { Notification.Name(prefix + suffix) } // MARK: - Session /// 用户登录成功 static let userDidLogin = name("userDidLogin") /// 用户主动退出登录 static let userDidLogout = name("userDidLogout") /// 已登录状态下切换景区/门店账号 static let accountDidSwitch = name("accountDidSwitch") /// Token 失效或鉴权失败,需重新登录 static let sessionDidExpire = name("sessionDidExpire") // MARK: - Scenic /// 当前景区切换 static let scenicDidChange = name("scenicDidChange") // MARK: - User Profile /// 用户资料更新(头像、昵称、角色等) static let userProfileDidUpdate = name("userProfileDidUpdate") // MARK: - Message /// 未读消息数量变化 static let unreadMessageCountDidChange = name("unreadMessageCountDidChange") // MARK: - Order /// 订单状态或列表发生变化 static let orderDidUpdate = name("orderDidUpdate") // MARK: - Task /// 任务状态或列表发生变化 static let taskDidUpdate = name("taskDidUpdate") // MARK: - Scenic Queue /// 排队叫号数据变化 static let scenicQueueDidUpdate = name("scenicQueueDidUpdate") // MARK: - Voice Call /// 语音通话状态变化 static let voiceCallStateDidChange = name("voiceCallStateDidChange") } /// `Notification.userInfo` 字典键的统一入口。 enum NotificationUserInfoKey { static let scenicId = "scenicId" static let scenicName = "scenicName" static let orderId = "orderId" static let taskId = "taskId" static let unreadCount = "unreadCount" static let voiceCallState = "voiceCallState" }