package com.craigvg.lichun_android.domain.models import kotlinx.serialization.Serializable /** * Player model representing the main game state * Ported from iOS Player.swift */ @Serializable data class Player( val date: String = "", val status: String = "", val season: String = "", val hourOfDay: Int = 0, val minuteOfHour: Int = 0, val gameSpeed: Int = 0, val activeConversations: List = emptyList(), val focuses: List = emptyList(), val storeItems: List = emptyList(), val occupations: List = emptyList(), val inAppPurchases: List = emptyList(), val r: List = emptyList(), // Relationships val relData: List = emptyList(), // ── Tier 2 generational / legacy layer ───────────────────────────────── // Compounding family prestige carried across generations (server persists // it outside the per-life wipe). Surfaced on playerObject. val familyPrestige: Double = 0.0, // Persistent lineage history; one entry appended per death. Powers the // family-tree / legacy screen. val familyTree: List = emptyList() ) /** * Focus option for player focus selection */ @Serializable data class FocusOption( val id: Int, val focus_name: String, val description: String, val energyModifier: Int ) /** * Relationship data between two people */ @Serializable data class Relationship( val id: String, val person1: String, val person2: String, val startDate: String, val anniversaryDate: String = "", val relationshipStatus: String, val relationshipNotes: String, val eventsLog: List = emptyList(), val relationshipScore: Int, val commonInterests: List = emptyList(), val challenges: List = emptyList(), val futurePlans: List = emptyList() ) /** * Date idea for dating feature */ @Serializable data class DateIdea( val name: String, val energy_cost: Int, val money_cost: Double, val image: String )