-- #migration 2026_10_24_001
-- Email « message non lu » (CDC n° 13 suite, § 6.4).
--  - conversation_members.last_emailed_message_id : jusqu'a quel message ce membre a deja ete prevenu par email. Les messages deja couverts ne sont jamais renvoyes.
--  - message_email_log : un email envoye (membre, conversation, jusqu'a quel message, combien de messages) ; sert au plafond « au plus N emails par conversation et par heure »
--    (unread_email_max_per_conversation_per_hour). Aucun texte de message n'y figure ; purge au fil de l'eau (2 jours).
ALTER TABLE conversation_members ADD COLUMN last_emailed_message_id BIGINT NOT NULL DEFAULT 0;
CREATE TABLE IF NOT EXISTS message_email_log (
  id               BIGINT      NOT NULL AUTO_INCREMENT,
  user_id          VARCHAR(64) NOT NULL,
  conversation_id  BIGINT      NOT NULL,
  up_to_message_id BIGINT      NOT NULL,
  message_count    INT         NOT NULL,
  sent_at          DATETIME    NOT NULL DEFAULT UTC_TIMESTAMP(),
  PRIMARY KEY (id),
  KEY idx_mel_member (user_id, conversation_id, sent_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
