51 lines
1.6 KiB
GraphQL
51 lines
1.6 KiB
GraphQL
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!
|
|
}
|