import Foundation struct AppConfig: Codable, Equatable { var appToken: String = "" var tableId: String = "" var assigneeName: String = "" var fieldMappings: FieldMappings = FieldMappings() var pollIntervalSeconds: Int = 300 var showFloatingWidget: Bool = false var launchAtLogin: Bool = true var feishuBaseDomain: String = "xorbitlab.feishu.cn" struct FieldMappings: Codable, Equatable { var titleField: String = "Title" var priorityField: String = "Priority" var statusField: String = "Status" var assigneeField: String = "Assignee" var reporterField: String = "Reporter" var createdAtField: String = "Created At" var updatedAtField: String = "Updated At" } var isConfigured: Bool { !appToken.isEmpty && !tableId.isEmpty } }