/**
 * Schémas de validation pour le jeu
 */
import { z } from 'zod';

// Schéma pour jouer avec un ticket
export const playGameSchema = z.object({
  body: z.object({
    ticketCode: z
      .string({
        required_error: 'Le code du ticket est requis',
      })
      .length(10, 'Le code du ticket doit contenir exactement 10 caractères')
      .regex(/^TT[A-Z0-9]{8}$/, 'Format invalide. Le code doit être au format TT + 8 caractères alphanumériques'),
  }),
});

// Schéma pour récupérer les tickets avec pagination
export const getTicketsSchema = z.object({
  query: z.object({
    page: z.string().optional().default('1'),
    limit: z.string().optional().default('10'),
    status: z.enum(['PENDING', 'CLAIMED', 'REJECTED']).optional(),
  }),
});

export default {
  playGameSchema,
  getTicketsSchema,
};
