-- #migration 2026_10_12_001
-- /collaboration sans compte : un visiteur depose un projet avec son email ; le compte est cree « en attente »
-- et le projet n'est publie qu'apres clic sur le lien envoye par email (valide l'adresse).
--  - users.account_status : 'active' (valide) | 'pending' (en attente de validation). TOUS LES COMPTES EXISTANTS
--    deviennent 'active' (valeur par defaut) : seuls les nouveaux comptes crees par ce flux sont 'pending'.
--  - users.validated_at : date de validation (lien magique).
--  - collaboration_requests.status : ajout de 'pending' (depose, en attente de validation de l'auteur).
--  - collab_guest_attempts : journal anti-abus (limite par adresse email ; on ne stocke que des empreintes).

ALTER TABLE users
  ADD COLUMN account_status VARCHAR(16) NOT NULL DEFAULT 'active' AFTER active,
  ADD COLUMN validated_at   DATETIME    NULL AFTER account_status;

ALTER TABLE collaboration_requests MODIFY COLUMN status ENUM('open','closed','pending') NOT NULL DEFAULT 'open';

CREATE TABLE IF NOT EXISTS collab_guest_attempts (
  id         INT AUTO_INCREMENT PRIMARY KEY,
  email_hash CHAR(64) NOT NULL,
  ip_hash    CHAR(64) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  KEY idx_email (email_hash, created_at),
  KEY idx_ip (ip_hash, created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
