import Foundation /// 首页模块跳转目标。 public enum ModuleDestination: Hashable, Sendable { case checkin case plan case about } /// 首页功能模块卡片(打卡介绍 / 计划介绍 / 关于我们)。 public struct HomeModule: Identifiable, Hashable, Sendable { public let id: String public let emoji: String public let title: String public let description: String public let destination: ModuleDestination public init( id: String, emoji: String, title: String, description: String, destination: ModuleDestination ) { self.id = id self.emoji = emoji self.title = title self.description = description self.destination = destination } } /// 产品介绍卡片。 public struct IntroCard: Hashable, Sendable { public let title: String public let body: String public init(title: String, body: String) { self.title = title self.body = body } } /// 首页聚合数据(落地页)。 public struct HomeData: Hashable, Sendable { public let greeting: String public let displayName: String public let encouragement: String public let modules: [HomeModule] public let intros: [IntroCard] public init( greeting: String, displayName: String, encouragement: String, modules: [HomeModule], intros: [IntroCard] ) { self.greeting = greeting self.displayName = displayName self.encouragement = encouragement self.modules = modules self.intros = intros } }