-- Kör denna i phpMyAdmin / cPanel MySQL
-- (1) Aktiveringsflöde för portalanvändare (chef/admin)
-- (2) Nya roller: forvaltningschef, avdelningschef (multi-enhet)

-- ---------- 1. account_status på portal_users ----------
ALTER TABLE portal_users
  ADD COLUMN IF NOT EXISTS account_status VARCHAR(20) NOT NULL DEFAULT 'active';

-- Tillåt NULL password_hash (för pending_activation)
ALTER TABLE portal_users
  MODIFY COLUMN password_hash TEXT NULL;

-- ---------- 2. Utöka activation_tokens till att stödja portalanvändare ----------
ALTER TABLE activation_tokens
  MODIFY COLUMN handlaggare_id VARCHAR(36) NULL;

ALTER TABLE activation_tokens
  ADD COLUMN IF NOT EXISTS portal_user_id VARCHAR(36) NULL AFTER handlaggare_id;

-- FK på portal_user_id (ignorera fel om den redan finns)
-- Kör separat om ovanstående misslyckas:
-- ALTER TABLE activation_tokens
--   ADD CONSTRAINT fk_activation_portal_user
--   FOREIGN KEY (portal_user_id) REFERENCES portal_users(id) ON DELETE CASCADE;

-- ---------- 3. Byt role från ENUM till VARCHAR för att tillåta nya roller ----------
ALTER TABLE portal_users
  MODIFY COLUMN role VARCHAR(30) NOT NULL DEFAULT 'enhetschef';

-- ---------- 4. Junction-tabell: portalanvändare → flera enheter ----------
CREATE TABLE IF NOT EXISTS portal_user_enheter (
  portal_user_id VARCHAR(36) NOT NULL,
  enhet_id       VARCHAR(50) NOT NULL,
  created_at     DATETIME DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (portal_user_id, enhet_id),
  INDEX idx_pue_user (portal_user_id),
  INDEX idx_pue_enhet (enhet_id),
  FOREIGN KEY (portal_user_id) REFERENCES portal_users(id) ON DELETE CASCADE,
  FOREIGN KEY (enhet_id) REFERENCES enheter(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
