type Player @entity { id: ID! # player address createdAt: BigInt! lastRaidedAt: BigInt! totalMinted: BigInt! currentBalance: BigInt! numberOfRaids: Int! army: Army! @derivedFrom(field: "player") armyStrength: BigInt! # Calculated field for total army power rank: Int # Position in leaderboard, can be updated periodically prestigeLevel: BigInt! totalRuns: Int! # Track number of times player has started a new run bossesDefeated: Int! totalRewards: BigInt! # Track total DAO tokens earned from boss battles isActiveSession: Boolean! # Track if player has an active session } type Army @entity { id: ID! # player address player: Player! molochDenierLevel: Int! apprenticeLevel: Int! anointedLevel: Int! championLevel: Int! profitPerSecond: BigInt! projectedDailyEarnings: BigInt! # Derived from profitPerSecond totalUnitsPurchased: Int! lastUnitPurchaseTime: BigInt currentBossLevel: Int! # Track current boss level } type GlobalStat @entity { id: ID! # Can be "1" as we only need one instance totalPlayers: Int! totalGeldMinted: BigInt! totalArmyUnits: Int! lastUpdateTime: BigInt! topEarnerProfit: BigInt! # Track highest profit per second totalPrestigeLevels: Int! # Sum of all player prestige levels totalBossesDefeated: Int! totalRuns: Int! # Track total number of runs across all players } type BossDefeat @entity { id: ID! # player address + timestamp player: Player! bossLevel: Int! earnings: BigInt! timestamp: BigInt! }