-- Migration 003 — galerie d'images par projet. -- -- Sous Windows + Git Bash, appliquer avec : -- mysql --default-character-set=utf8mb4 -uinfolab -p infolab < migrations/003_add_project_images.sql -- En prod, c'est apply.sh dans le conteneur (charset utf8mb4 OK par défaut). SET NAMES utf8mb4; CREATE TABLE IF NOT EXISTS project_images ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, project_id BIGINT UNSIGNED NOT NULL, url VARCHAR(1024) NOT NULL, caption VARCHAR(255) NULL, sort_order INT UNSIGNED NOT NULL DEFAULT 0, -- Métadonnées remplies par le backend quand l'image est uploadée -- depuis le disque (sinon URL externe → ces colonnes restent NULL). storage_path VARCHAR(512) NULL, -- chemin relatif au docroot Apache, ex: uploads/projects/nos-ecoles/abc123.jpg mime_type VARCHAR(64) NULL, size_bytes INT UNSIGNED NULL, width INT UNSIGNED NULL, height INT UNSIGNED NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_image_project (project_id, sort_order), CONSTRAINT fk_image_project FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;