import { z } from "zod";

export const calendarEventSchema = z
  .object({
    title: z.string().trim().min(1, "Başlık zorunlu.").max(255),
    description: z
      .string()
      .trim()
      .max(2000)
      .optional()
      .transform((v) => (v ? v : undefined)),
    start: z.string().min(1, "Başlangıç zorunlu."),
    end: z.string().min(1, "Bitiş zorunlu."),
    allDay: z
      .union([z.boolean(), z.literal("on"), z.literal(""), z.undefined()])
      .transform((v) => v === true || v === "on")
      .optional(),
    customerId: z.string().optional().transform((v) => (v ? v : undefined)),
    color: z.string().optional().transform((v) => (v ? v : undefined)),
  })
  .refine((d) => new Date(d.end).getTime() >= new Date(d.start).getTime(), {
    message: "Bitiş tarihi başlangıçtan önce olamaz.",
    path: ["end"],
  });

export type CalendarEventInput = z.infer<typeof calendarEventSchema>;
