import { z } from "zod"; export const createElectiveCourseSchema = z.object({ title: z.string().min(1).max(255), subjectId: z.string().min(1).max(32), teacherId: z.string().min(1).max(32), capacity: z.number().int().min(1).max(500).optional().default(30), description: z.string().max(2000).optional(), }); export const listAvailableElectiveCoursesSchema = z.object({ subjectId: z.string().optional(), page: z.coerce.number().int().min(1).default(1), pageSize: z.coerce.number().int().min(1).max(100).default(20), }); export const listElectiveSelectionsSchema = z.object({ studentId: z.string().min(1).max(32), status: z.string().optional(), }); export const selectCourseSchema = z.object({ studentId: z.string().min(1).max(32), courseId: z.string().min(1).max(32), }); export const dropCourseSchema = z.object({ studentId: z.string().min(1).max(32), courseId: z.string().min(1).max(32), }); export type CreateElectiveCourseDto = z.infer< typeof createElectiveCourseSchema >; export type ListAvailableElectiveCoursesDto = z.infer< typeof listAvailableElectiveCoursesSchema >; export type ListElectiveSelectionsDto = z.infer< typeof listElectiveSelectionsSchema >; export type SelectCourseDto = z.infer; export type DropCourseDto = z.infer;