import z from "zod" export const playerSchema = z.looseObject({ player: z.looseObject({ displayname: z.string(), uuid: z.string(), newPackageRank: z.string().optional(), monthlyPackageRank: z.string().optional(), rankPlusColor: z.string().optional(), monthlyRankColor: z.string().optional(), networkExp: z.number().default(0), karma: z.number().default(0), achievementPoints: z.number().default(0), stats: z.looseObject({ Bedwars: z.looseObject({ Experience: z.number().default(0), coins: z.number().default(0), winstreak: z.number().optional(), kills_bedwars: z.number().default(0), deaths_bedwars: z.number().default(0), final_kills_bedwars: z.number().default(0), final_deaths_bedwars: z.number().default(0), wins_bedwars: z.number().default(0), losses_bedwars: z.number().default(0), beds_broken_bedwars: z.number().default(0), beds_lost_bedwars: z.number().default(0), total_challenges_completed: z.number().default(0), iron_resources_collected_bedwars: z.number().default(0), gold_resources_collected_bedwars: z.number().default(0), diamond_resources_collected_bedwars: z.number().default(0), emerald_resources_collected_bedwars: z.number().default(0), _items_purchased_bedwars: z.number().default(0), slumber: z.looseObject({ tickets: z.number().default(0), bag_type: z.string(), total_tickets_earned: z.number(), doublers: z.number(), room: z.record(z.string(), z.boolean()) }).optional() }).optional() }), quests: z.record( z.string(), z.looseObject({ completions: z.array( z.looseObject({ time: z.number() }) ).optional() }) ).optional(), challenges: z.looseObject({ all_time: z.record(z.string(), z.number()) }).optional(), lastClaimedReward: z.number().optional(), rewardHighScore: z.number().optional(), rewardStreak: z.number().optional(), totalRewards: z.number().optional(), giftingMeta: z.looseObject({ giftsGiven: z.number().optional(), ranksGiven: z.number().optional() }).optional(), firstLogin: z.number().optional(), lastLogin: z.number().optional(), socialMedia: z.looseObject({ links: z.looseObject({ DISCORD: z.string().optional(), TWITCH: z.string().optional(), HYPIXEL: z.string().optional(), TWITTER: z.string().optional(), YOUTUBE: z.string().optional() }).optional() }).optional() }) }) export type Player = z.infer