import { z } from "zod";

export const createUserSchema = z.object({
  body: z.object({
    email: z.string().email(),
    firstName: z.string().trim().min(1).max(80),
    lastName: z.string().trim().min(1).max(120),
    password: z.string().min(8),
    role: z.enum(["admin", "user"]).default("user"),
    canEditVehicleInspection: z.boolean().default(false),
    vehicleIds: z.array(z.string().uuid()).default([]),
  }),
  query: z.object({}).default({}),
  params: z.object({}).default({}),
});

export const updateUserSchema = z.object({
  body: z.object({
    firstName: z.string().trim().min(1).max(80),
    lastName: z.string().trim().max(120),
    password: z.string().min(8).optional(),
    role: z.enum(["admin", "user"]).default("user"),
    canEditVehicleInspection: z.boolean().default(false),
    vehicleIds: z.array(z.string().uuid()).default([]),
  }),
  query: z.object({}).default({}),
  params: z.object({
    id: z.string().uuid(),
  }),
});

export const deleteUserSchema = z.object({
  body: z.object({}).default({}),
  query: z.object({}).default({}),
  params: z.object({
    id: z.string().uuid(),
  }),
});
