import { z } from "zod";
import { ServiceCategory } from "@prisma/client";

const serviceCategoryEnum = z.nativeEnum(ServiceCategory);

export const createServiceSchema = z.object({
  body: z.object({
    name: z.string().min(1, "Name is required"),
    category: serviceCategoryEnum,
    price: z.coerce.number().min(50, "Price must be at least ₹50"),
    description: z.string().optional(),
    isDiyEnabled: z.coerce.boolean().optional(),
  }),
  query: z.object({}).optional(),
  params: z.object({}).optional(),
});

export const updateServiceSchema = z.object({
  body: z
    .object({
      name: z.string().min(1).optional(),
      category: serviceCategoryEnum.optional(),
      price: z.coerce.number().min(50, "Price must be at least ₹50").optional(),
      description: z.string().optional(),
      isDiyEnabled: z.coerce.boolean().optional(),
    })
    .refine((d) => Object.keys(d).length > 0, {
      message: "At least one field is required to update",
    }),
  query: z.object({}).optional(),
  params: z.object({ serviceId: z.string() }),
});
