//
//  TimeSkipTier.swift
//  lichunWebsocket
//
//  Time skip tier model for in-app purchases
//

import Foundation

struct TimeSkipTier: Identifiable, Codable {
    let id = UUID()
    let type: String // "1hour", "1day", "1week", "next_event"
    let durationSeconds: Double?
    let diamonds: Int

    var displayName: String {
        switch type {
        case "1hour": return "1 Hour"
        case "1day": return "1 Day"
        case "1week": return "1 Week"
        case "next_event": return "Next Event"
        default: return type
        }
    }

    var description: String {
        switch type {
        case "1hour": return "Skip ahead 1 hour"
        case "1day": return "Skip ahead 1 day"
        case "1week": return "Skip ahead 1 week"
        case "next_event": return "Skip to next major event"
        default: return ""
        }
    }

    var icon: String {
        switch type {
        case "1hour": return "clock.fill"
        case "1day": return "calendar.badge.clock"
        case "1week": return "calendar"
        case "next_event": return "scope"
        default: return "forward.fill"
        }
    }
}

struct TimeSkipSummary: Codable {
    let diamonds: Int
    let newTime: String
    let durationHours: Double
    let events: [TimeSkipEvent]
    let statChanges: StatChanges

    struct StatChanges: Codable {
        let money: Int
        let energy: Int
        let health: Int
        let happiness: Int
    }
}

struct TimeSkipEvent: Codable, Identifiable {
    let id = UUID()
    let type: String
    let description: String
    let moneyEarned: Int?
    let smartsGained: Int?

    enum CodingKeys: String, CodingKey {
        case type, description
        case moneyEarned = "money_earned"
        case smartsGained = "smarts_gained"
    }
}
