Refactor schema

This commit is contained in:
2025-09-17 23:01:22 +02:00
parent 0eb410dff7
commit 28a63b43b0
16 changed files with 1120 additions and 1109 deletions

View File

@@ -0,0 +1,51 @@
import z from "zod"
function tntGamesModeStats() {
const ids = [
"ancient",
"blood",
"fire",
"hydro",
"ice",
"kinetic",
"storm",
"toxic",
"wither"
] as const
const stats = [
"kills",
"deaths",
"assists",
"explode",
"regen"
] as const
const entries = new Map<string, z.ZodDefault<z.ZodNumber>>()
for (const id of ids) {
for (const stat of stats) {
entries.set(`new_${id}wizard_${stat}`, z.number().default(0))
}
}
return Object.fromEntries(entries) as Record<`new_${typeof ids[number]}wizard_${typeof stats[number]}`, z.ZodDefault<z.ZodNumber>>
}
export const tntGamesStatsSchema = z.object({
wins: z.number().default(0),
coins: z.number().default(0),
kills_tntag: z.number().default(0),
wins_tntag: z.number().default(0),
wins_tntrun: z.number().default(0),
record_tntrun: z.number().default(0),
kills_pvprun: z.number().default(0),
wins_pvprun: z.number().default(0),
record_pvprun: z.number().default(0),
wins_bowspleef: z.number().default(0),
deaths_bowspleef: z.number().default(0),
wins_capture: z.number().default(0),
kills_capture: z.number().default(0),
deaths_capture: z.number().default(0),
...tntGamesModeStats()
})