-- Migration pour corriger le schéma de la table tickets
-- Permet de créer des tickets non assignés (status=NULL, user_id=NULL)

-- 1. Modifier la colonne user_id pour accepter NULL
ALTER TABLE tickets
  ALTER COLUMN user_id DROP NOT NULL;

-- 2. Modifier la colonne status pour ne pas avoir de valeur par défaut
ALTER TABLE tickets
  ALTER COLUMN status DROP DEFAULT;

-- 3. Modifier la colonne played_at pour ne pas avoir de valeur par défaut
ALTER TABLE tickets
  ALTER COLUMN played_at DROP DEFAULT;

-- 4. Mettre à jour les tickets existants qui ont été mal créés
-- (tickets avec PENDING mais sans user_id ou avec played_at par défaut)
UPDATE tickets
SET
  status = NULL,
  user_id = NULL,
  played_at = NULL
WHERE user_id IS NULL OR played_at = created_at;

COMMENT ON COLUMN tickets.user_id IS 'NULL = ticket non joué, UUID = ticket joué par cet utilisateur';
COMMENT ON COLUMN tickets.status IS 'NULL = ticket non joué, PENDING/CLAIMED/REJECTED = statut après jeu';
COMMENT ON COLUMN tickets.played_at IS 'NULL = ticket non joué, TIMESTAMP = date de jeu';
