idle-moloch-subgraph/schema.graphql
2024-11-01 05:37:36 +08:00

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!
}