fix backend
This commit is contained in:
@@ -133,7 +133,7 @@ export interface MemberParticipationStats {
|
|||||||
// Zod validation schemas — used in service layer and route middleware
|
// Zod validation schemas — used in service layer and route middleware
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
export const CreateUebungSchema = z.object({
|
const UebungBaseSchema = z.object({
|
||||||
titel: z
|
titel: z
|
||||||
.string()
|
.string()
|
||||||
.min(3, 'Titel muss mindestens 3 Zeichen haben')
|
.min(3, 'Titel muss mindestens 3 Zeichen haben')
|
||||||
@@ -153,7 +153,9 @@ export const CreateUebungSchema = z.object({
|
|||||||
pflichtveranstaltung: z.boolean().default(false),
|
pflichtveranstaltung: z.boolean().default(false),
|
||||||
mindest_teilnehmer: z.number().int().positive().optional().nullable(),
|
mindest_teilnehmer: z.number().int().positive().optional().nullable(),
|
||||||
max_teilnehmer: z.number().int().positive().optional().nullable(),
|
max_teilnehmer: z.number().int().positive().optional().nullable(),
|
||||||
}).refine(
|
});
|
||||||
|
|
||||||
|
export const CreateUebungSchema = UebungBaseSchema.refine(
|
||||||
(d) => d.datum_bis >= d.datum_von,
|
(d) => d.datum_bis >= d.datum_von,
|
||||||
{ message: 'datum_bis muss nach datum_von liegen', path: ['datum_bis'] }
|
{ message: 'datum_bis muss nach datum_von liegen', path: ['datum_bis'] }
|
||||||
).refine(
|
).refine(
|
||||||
@@ -166,9 +168,16 @@ export const CreateUebungSchema = z.object({
|
|||||||
|
|
||||||
export type CreateUebungData = z.infer<typeof CreateUebungSchema>;
|
export type CreateUebungData = z.infer<typeof CreateUebungSchema>;
|
||||||
|
|
||||||
export const UpdateUebungSchema = CreateUebungSchema.partial().extend({
|
export const UpdateUebungSchema = UebungBaseSchema.partial().refine(
|
||||||
// All fields optional on update, but retain type narrowing
|
(d) => d.datum_bis == null || d.datum_von == null || d.datum_bis >= d.datum_von,
|
||||||
});
|
{ message: 'datum_bis muss nach datum_von liegen', path: ['datum_bis'] }
|
||||||
|
).refine(
|
||||||
|
(d) =>
|
||||||
|
d.max_teilnehmer == null ||
|
||||||
|
d.mindest_teilnehmer == null ||
|
||||||
|
d.max_teilnehmer >= d.mindest_teilnehmer,
|
||||||
|
{ message: 'max_teilnehmer muss >= mindest_teilnehmer sein', path: ['max_teilnehmer'] }
|
||||||
|
);
|
||||||
|
|
||||||
export type UpdateUebungData = z.infer<typeof UpdateUebungSchema>;
|
export type UpdateUebungData = z.infer<typeof UpdateUebungSchema>;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user