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,65 @@
import z from "zod"
function copsAndCrimsGunUpgrades() {
const ids = [
"knife",
"pistol",
"handgun",
"magnum",
"sniper",
"bullpup",
"smg",
"rifle",
"carbine",
"scoped_rifle",
"shotgun",
"auto_shotgun"
] as const
const upgrades = [
"damage_increase",
"recoil_reduction",
"reload_speed_reduction",
"cost_reduction"
] as const
const entries = new Map<string, z.ZodDefault<z.ZodNumber>>()
for (const id of ids) {
for (const upgrade of upgrades) {
entries.set(`${id}_${upgrade}`, z.number().default(0))
}
}
return Object.fromEntries(entries) as Record<`${typeof ids[number]}_${typeof upgrades[number]}`, z.ZodDefault<z.ZodNumber>>
}
export const copsAndCrimsStatsSchema = z.object({
kills: z.number().default(0),
assists: z.number().default(0),
deaths: z.number().default(0),
game_wins: z.number().default(0),
cop_kills: z.number().default(0),
criminal_kills: z.number().default(0),
kills_deathmatch: z.number().default(0),
assists_deathmatch: z.number().default(0),
deaths_deathmatch: z.number().default(0),
game_wins_deathmatch: z.number().default(0),
cop_kills_deathmatch: z.number().default(0),
criminal_kills_deathmatch: z.number().default(0),
kills_gungame: z.number().default(0),
assists_gungame: z.number().default(0),
deaths_gungame: z.number().default(0),
game_wins_gungame: z.number().default(0),
cop_kills_gungame: z.number().default(0),
criminal_kills_gungame: z.number().default(0),
bombs_planted: z.number().default(0),
bombs_defused: z.number().default(0),
shots_fired: z.number().default(0),
coins: z.number().default(0),
round_wins: z.number().default(0),
headshot_kills: z.number().default(0),
knife_attack_delay: z.number().default(0),
sniper_charge_bonus: z.number().default(0),
...copsAndCrimsGunUpgrades()
})