Finished sidebar
This commit is contained in:
26
src/lib/schema/guild.ts
Normal file
26
src/lib/schema/guild.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
import z from "zod"
|
||||
|
||||
export const guildSchema = z.object({
|
||||
guild: z.object({
|
||||
_id: z.string().min(1),
|
||||
name: z.string().min(1),
|
||||
tag: z.string().optional(),
|
||||
tagColor: z.string().optional(),
|
||||
members: z.array(z.object({
|
||||
uuid: z.string(),
|
||||
rank: z.string(),
|
||||
joined: z.number(),
|
||||
questParticipation: z.number().optional(),
|
||||
expHistory: z.record(z.string(), z.number())
|
||||
})),
|
||||
ranks: z.array(z.object({
|
||||
name: z.string(),
|
||||
default: z.boolean(),
|
||||
tag: z.string().nullish().optional(),
|
||||
created: z.number(),
|
||||
priority: z.number()
|
||||
}))
|
||||
})
|
||||
})
|
||||
|
||||
export type Guild = z.infer<typeof guildSchema>
|
||||
56
src/lib/schema/player.ts
Normal file
56
src/lib/schema/player.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
import z from "zod"
|
||||
|
||||
export const playerSchema = z.object({
|
||||
player: z.object({
|
||||
displayname: z.string(),
|
||||
uuid: z.string(),
|
||||
newPackageRank: z.literal("VIP").or(z.literal("VIP_PLUS").or(z.literal("MVP")).or(z.literal("MVP_PLUS"))).optional(),
|
||||
monthlyPackageRank: z.string().optional(),
|
||||
rankPlusColor: z.string().optional(),
|
||||
monthlyRankColor: z.literal("GOLD").or(z.literal("AQUA")).optional(),
|
||||
networkExp: z.number(),
|
||||
karma: z.number(),
|
||||
achievementPoints: z.number().optional(),
|
||||
stats: z.record(
|
||||
z.string(),
|
||||
z.object({
|
||||
coins: z.number().optional()
|
||||
})
|
||||
),
|
||||
quests: z.record(
|
||||
z.string(),
|
||||
z.object({
|
||||
completions: z.array(
|
||||
z.object({
|
||||
time: z.number()
|
||||
}).optional()
|
||||
).optional()
|
||||
})
|
||||
),
|
||||
challenges: z.object({
|
||||
all_time: z.record(z.string(), z.number())
|
||||
}),
|
||||
lastClaimedReward: z.number().optional(),
|
||||
rewardHighScore: z.number().optional(),
|
||||
rewardStreak: z.number().optional(),
|
||||
totalRewards: z.number().optional(),
|
||||
giftingMeta: z.object({
|
||||
giftsGiven: z.number().optional(),
|
||||
ranksGiven: z.number().optional()
|
||||
}).optional(),
|
||||
firstLogin: z.number().optional(),
|
||||
lastLogin: z.number().optional(),
|
||||
socialMedia: z.object({
|
||||
links: z.object({
|
||||
DISCORD: z.string().optional(),
|
||||
TWITCH: z.string().optional(),
|
||||
HYPIXEL: z.string().optional(),
|
||||
TWITTER: z.string().optional(),
|
||||
YOUTUBE: z.string().optional()
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
export type Player = z.infer<typeof playerSchema>
|
||||
|
||||
Reference in New Issue
Block a user