Updating
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import { z } from "zod";
|
||||
import { HANDEDNESS_OPTIONS, POSITIONS } from "@/lib/constants";
|
||||
|
||||
export const playerSchema = z.object({
|
||||
firstName: z.string().trim().min(1, "First name is required."),
|
||||
lastName: z.string().trim().min(1, "Last name is required."),
|
||||
jerseyNumber: z.coerce.number().int().min(0).max(999),
|
||||
batsThrows: z.enum(HANDEDNESS_OPTIONS),
|
||||
primaryPosition: z.enum(POSITIONS),
|
||||
secondaryPosition: z.enum(POSITIONS).nullable().optional(),
|
||||
tertiaryPosition: z.enum(POSITIONS).nullable().optional(),
|
||||
isActive: z.boolean(),
|
||||
notes: z.string().max(500).optional().default("")
|
||||
});
|
||||
|
||||
export const pitchingAppearanceSchema = z.object({
|
||||
playerId: z.string().min(1),
|
||||
gameDate: z.string().min(1),
|
||||
pitchCount: z.coerce.number().int().min(1).max(200),
|
||||
notes: z.string().max(300).optional().default("")
|
||||
});
|
||||
|
||||
export const pitchingRulesSchema = z.array(
|
||||
z.object({
|
||||
minPitches: z.coerce.number().int().min(0),
|
||||
maxPitches: z.coerce.number().int().positive().nullable(),
|
||||
requiredRestDays: z.coerce.number().int().min(0).max(10)
|
||||
})
|
||||
).min(1);
|
||||
|
||||
export const generateLineupSchema = z.object({
|
||||
gameDate: z.string().min(1),
|
||||
playerIds: z.array(z.string()).min(1, "Select at least one player."),
|
||||
startingPitcherId: z.string().nullable().optional()
|
||||
});
|
||||
|
||||
export const saveLineupSchema = generateLineupSchema.extend({
|
||||
battingOrder: z.array(
|
||||
z.object({
|
||||
playerId: z.string(),
|
||||
playerName: z.string(),
|
||||
slot: z.coerce.number().int().positive()
|
||||
})
|
||||
).min(1),
|
||||
defensiveAssignments: z.array(
|
||||
z.object({
|
||||
playerId: z.string(),
|
||||
playerName: z.string(),
|
||||
position: z.enum(POSITIONS)
|
||||
})
|
||||
),
|
||||
bench: z.array(z.string()),
|
||||
notes: z.array(z.string())
|
||||
});
|
||||
Reference in New Issue
Block a user