import { z } from "zod";

export const createContactSchema = z.object({
  name: z.string().min(1, "Name is required").max(255),
  email: z.string().email("Enter a valid email address"),
  phone: z.string().max(50).optional().nullable(),
  tags: z.array(z.string().max(40)).max(10).optional(),
  notes: z.string().max(2000).optional().nullable(),
});
export type CreateContactInput = z.infer<typeof createContactSchema>;

export const updateContactSchema = z.object({
  contactId: z.string().uuid(),
  name: z.string().min(1).max(255).optional(),
  email: z.string().email().optional(),
  phone: z.string().max(50).optional().nullable(),
  tags: z.array(z.string().max(40)).max(10).optional(),
  notes: z.string().max(2000).optional().nullable(),
});

export const importContactsSchema = z.object({
  raw: z.string().min(1, "Paste at least one contact"),
  listId: z.string().uuid().optional().nullable(),
});

export const createContactListSchema = z.object({
  name: z.string().min(1, "List name is required").max(255),
  description: z.string().max(500).optional().nullable(),
});

export const addContactsToListSchema = z.object({
  listId: z.string().uuid(),
  contactIds: z.array(z.string().uuid()).min(1),
});

export const sendListInviteSchema = z.object({
  surveyId: z.string().uuid(),
  listId: z.string().uuid(),
  subject: z.string().min(1, "Subject is required").max(255),
  body: z.string().min(1, "Message is required").max(5000),
});
