-- Création de la table email_avis
-- Stocke les avis et commentaires des clients après livraison

CREATE TABLE IF NOT EXISTS email_avis (
    id INT AUTO_INCREMENT PRIMARY KEY,

    -- Relation avec le client et véhicule
    client_id INT NOT NULL COMMENT 'ID du client',
    vehicle_id INT NULL COMMENT 'ID du véhicule concerné',

    -- Token unique pour le lien d'avis
    token VARCHAR(64) NOT NULL UNIQUE COMMENT 'Token unique pour accéder à la page d\'avis',

    -- Notation
    note TINYINT NULL COMMENT 'Note de 1 à 5 étoiles',

    -- Commentaire (uniquement pour notes 1-3)
    commentaire TEXT NULL COMMENT 'Commentaire du client',

    -- Statut
    statut ENUM('en_attente', 'soumis', 'traite', 'archive') DEFAULT 'en_attente' COMMENT 'Statut de l\'avis',

    -- Métadonnées
    ip_address VARCHAR(45) NULL COMMENT 'Adresse IP du client',
    user_agent TEXT NULL COMMENT 'User agent du navigateur',

    -- Timestamps
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'Date de création du lien',
    noted_at DATETIME NULL COMMENT 'Date où le client a noté',
    submitted_at DATETIME NULL COMMENT 'Date de soumission du commentaire',

    -- Index
    INDEX idx_client_id (client_id),
    INDEX idx_vehicle_id (vehicle_id),
    INDEX idx_token (token),
    INDEX idx_note (note),
    INDEX idx_statut (statut),
    INDEX idx_created_at (created_at),

    -- Clés étrangères
    FOREIGN KEY (client_id) REFERENCES email_clients(id) ON DELETE CASCADE,
    FOREIGN KEY (vehicle_id) REFERENCES email_vehicles(id) ON DELETE SET NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Avis et commentaires clients après livraison';
