-- Journal d'activite (audit trail) : qui a fait quoi, quand, sur quelle donnee, avec l'etat
-- avant/apres. Alimente automatiquement par Model::insert()/update()/delete() (app/models/Model.php)
-- - aucune modification requise dans les ~100 modeles existants. Lecture seule depuis
-- l'application (aucune route de modification/suppression n'est exposee) : la table elle-meme
-- n'a volontairement pas de contrainte d'integrite forte cote appli qui permettrait de la
-- modifier via le CRUD generique (Model::update()/delete() ne sont jamais appeles sur elle).
CREATE TABLE `journal_activite` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_utilisateur` int(11) NOT NULL DEFAULT 0,
  `action` varchar(20) NOT NULL,
  `table_nom` varchar(100) NOT NULL,
  `id_ligne` int(11) NOT NULL DEFAULT 0,
  `donnees_avant` longtext DEFAULT NULL,
  `donnees_apres` longtext DEFAULT NULL,
  `date_action` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_utilisateur` (`id_utilisateur`),
  KEY `idx_table_ligne` (`table_nom`, `id_ligne`),
  KEY `idx_date` (`date_action`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
