import { z } from 'zod';

export const listSmsTemplatesSchema = z.object({
  page: z.coerce.number().int().min(1).default(1),
  limit: z.coerce.number().int().min(1).max(100).default(50),
  search: z.string().optional(),
  category: z.string().optional(),
  isFavorite: z.enum(['true', 'false']).optional(),
});

export const createSmsTemplateSchema = z.object({
  name: z.string().min(1).max(200),
  template: z.string().min(1).max(1600),
  description: z.string().max(500).nullable().optional(),
  category: z.string().max(50).nullable().optional(),
  isFavorite: z.boolean().optional(),
});

export const updateSmsTemplateSchema = z.object({
  name: z.string().min(1).max(200).optional(),
  template: z.string().min(1).max(1600).optional(),
  description: z.string().max(500).nullable().optional(),
  category: z.string().max(50).nullable().optional(),
  isFavorite: z.boolean().optional(),
});

export type CreateSmsTemplateInput = z.infer<typeof createSmsTemplateSchema>;
export type UpdateSmsTemplateInput = z.infer<typeof updateSmsTemplateSchema>;
