-- Création de la table email_vehicles
-- Relation: Un client peut avoir plusieurs véhicules

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

    -- Relation avec le client
    client_id INT NOT NULL COMMENT 'ID du client propriétaire',

    -- Informations du véhicule depuis com_imports
    com_import_id INT NULL COMMENT 'ID dans com_imports (source)',
    numero_dossier VARCHAR(50) NULL COMMENT 'Numéro de dossier COM',

    -- Identité du véhicule
    immatriculation VARCHAR(20) NULL COMMENT 'Plaque d\'immatriculation',
    vin VARCHAR(17) NULL COMMENT 'Numéro de série VIN',
    marque VARCHAR(50) NULL COMMENT 'Marque du véhicule',
    modele VARCHAR(100) NULL COMMENT 'Modèle du véhicule',
    version VARCHAR(100) NULL COMMENT 'Version du véhicule',

    -- Type de véhicule
    genre ENUM('VN', 'VO') NULL COMMENT 'VN = Véhicule Neuf, VO = Véhicule d\'Occasion',
    type_client VARCHAR(50) NULL COMMENT 'Type de client (ex: Marchand, Particulier)',

    -- Caractéristiques
    couleur VARCHAR(50) NULL COMMENT 'Couleur du véhicule',
    date_mise_en_circulation DATE NULL COMMENT 'Date de 1ère mise en circulation',
    kilometrage INT NULL COMMENT 'Kilométrage au moment de l\'enregistrement',

    -- Dates importantes
    date_commande DATE NULL COMMENT 'Date de commande',
    date_livraison_prevue DATE NULL COMMENT 'Date de livraison prévue',
    date_livraison_reelle DATE NULL COMMENT 'Date de livraison réelle',

    -- Informations commerciales
    prix_vente DECIMAL(10,2) NULL COMMENT 'Prix de vente TTC',
    vendeur_id INT NULL COMMENT 'ID du vendeur',
    site_id INT NULL COMMENT 'ID du site de vente',

    -- Statut
    statut ENUM('en_attente', 'commande', 'en_preparation', 'livre', 'archive') DEFAULT 'en_attente' COMMENT 'Statut du véhicule',

    -- Métadonnées
    meta_json JSON NULL COMMENT 'Données supplémentaires en JSON',
    notes TEXT NULL COMMENT 'Notes libres',

    -- Timestamps
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

    -- Index
    INDEX idx_client_id (client_id),
    INDEX idx_com_import_id (com_import_id),
    INDEX idx_immatriculation (immatriculation),
    INDEX idx_vin (vin),
    INDEX idx_numero_dossier (numero_dossier),
    INDEX idx_statut (statut),
    INDEX idx_genre (genre),
    INDEX idx_marque (marque),
    INDEX idx_date_livraison_prevue (date_livraison_prevue),

    -- Clé étrangère
    FOREIGN KEY (client_id) REFERENCES email_clients(id) ON DELETE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Véhicules des clients';

-- Table de liaison pour l'historique des imports COM
CREATE TABLE IF NOT EXISTS email_com_imports_processed (
    id INT AUTO_INCREMENT PRIMARY KEY,
    com_import_id INT NOT NULL COMMENT 'ID dans com_imports',
    numero_dossier VARCHAR(50) NOT NULL COMMENT 'Numéro de dossier',
    action ENUM('accepted', 'rejected') NOT NULL COMMENT 'Action effectuée',
    client_id INT NULL COMMENT 'ID du client créé (si accepted)',
    vehicle_id INT NULL COMMENT 'ID du véhicule créé (si accepted)',
    processed_by INT NULL COMMENT 'ID de l\'utilisateur qui a traité',
    processed_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    notes TEXT NULL COMMENT 'Notes/raison du refus',

    INDEX idx_com_import_id (com_import_id),
    INDEX idx_numero_dossier (numero_dossier),
    INDEX idx_processed_at (processed_at),

    UNIQUE KEY unique_com_import (com_import_id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Historique des imports COM traités';
