-- #migration 2026_10_16_001
-- Messagerie / fil de publications, lot 1 : signalements et journal de moderation (CDC n° 15, 16 et 17).
--  - reports : un signalement (publication ou commentaire pour l'instant). `snapshot` = COPIE du contenu au moment du signalement :
--    elle survit a la suppression par l'auteur ou par la moderation (CDC § 7.5 et § 7.7) et est effacee `report_copy_retention_months`
--    apres la cloture (parametre de /control, 6 mois par defaut). Statuts : open, in_progress, treated, rejected.
--  - moderation_audit : journal NON MODIFIABLE depuis l'interface : chaque lecture d'un signalement et chaque action de moderation
--    (qui, quand, quoi). Conserve `audit_retention_months` (12 mois par defaut).

CREATE TABLE IF NOT EXISTS reports (
  id               INT          NOT NULL AUTO_INCREMENT,
  reporter_id      VARCHAR(64)  NOT NULL,
  reported_user_id VARCHAR(64)  NOT NULL,
  target_type      VARCHAR(10)  NOT NULL,
  target_id        INT          NOT NULL,
  post_id          INT          NOT NULL,
  reason           VARCHAR(20)  NOT NULL,
  note             TEXT         NULL,
  snapshot         MEDIUMTEXT   NOT NULL,
  status           VARCHAR(12)  NOT NULL DEFAULT 'open',
  handled_by       VARCHAR(64)  NULL,
  resolution       VARCHAR(12)  NULL,
  created_at       DATETIME     NOT NULL,
  updated_at       DATETIME     NOT NULL,
  closed_at        DATETIME     NULL,
  PRIMARY KEY (id),
  KEY idx_status_id (status, id),
  KEY idx_target (target_type, target_id),
  KEY idx_reported (reported_user_id),
  KEY idx_reporter (reporter_id, target_type, target_id),
  KEY idx_closed (closed_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS moderation_audit (
  id          INT          NOT NULL AUTO_INCREMENT,
  actor_id    VARCHAR(64)  NOT NULL,
  action      VARCHAR(24)  NOT NULL,
  report_id   INT          NULL,
  target_type VARCHAR(10)  NULL,
  target_id   INT          NULL,
  detail      TEXT         NULL,
  created_at  DATETIME     NOT NULL,
  PRIMARY KEY (id),
  KEY idx_report (report_id),
  KEY idx_actor (actor_id, id),
  KEY idx_created (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
