-- Migration 002 : table pour les tokens d'authentification
-- Couvre : réinitialisation de mot de passe et magic link
-- Exécuter : mysql -u <user> -p <database> < migrations/002_create_auth_tokens_table.sql

CREATE TABLE IF NOT EXISTS `auth_tokens` (
    `id`         INT UNSIGNED NOT NULL AUTO_INCREMENT,
    `user_id`    INT UNSIGNED NOT NULL,
    -- SHA-256 du token brut envoyé par email (jamais stocké en clair)
    `token_hash` VARCHAR(64)  NOT NULL,
    `type`       ENUM('reset','magic') NOT NULL,
    `expires_at` DATETIME     NOT NULL,
    `used_at`    DATETIME     NULL,
    `created_at` DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `uq_token_hash` (`token_hash`),
    KEY `idx_user_id_type` (`user_id`, `type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
