-- ─────────────────────────────────────────────────────────────────────────────
-- Migration v3 — Sistem de invitații prin email
-- ─────────────────────────────────────────────────────────────────────────────

-- 1. Permite password_hash NULL (userul invitat nu are parolă până activează)
ALTER TABLE users
  MODIFY COLUMN password_hash VARCHAR(255) NULL DEFAULT NULL;

-- 2. Adaugă coloana is_activated pentru a distinge userii activați
ALTER TABLE users
  ADD COLUMN is_activated TINYINT(1) NOT NULL DEFAULT 1 AFTER is_active;

-- Userii existenți sunt deja activați
UPDATE users SET is_activated = 1;

-- 3. Tabel invitații
CREATE TABLE IF NOT EXISTS invitations (
    id           CHAR(36)     NOT NULL PRIMARY KEY,
    team_id      CHAR(36)     NOT NULL,
    invited_by   CHAR(36)     NOT NULL,           -- user_id al managerului
    email        VARCHAR(255) NOT NULL,
    token_hash   VARCHAR(255) NOT NULL UNIQUE,     -- hash SHA-256 al tokenului din link
    status       ENUM('pending','accepted','expired','cancelled') NOT NULL DEFAULT 'pending',
    expires_at   DATETIME     NOT NULL,
    created_at   DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
    accepted_at  DATETIME              DEFAULT NULL,
    FOREIGN KEY (team_id)    REFERENCES teams(id) ON DELETE CASCADE,
    FOREIGN KEY (invited_by) REFERENCES users(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
