-- phpMyAdmin SQL Dump
-- version 4.9.11
-- https://www.phpmyadmin.net/
--
-- Hôte : db5020304336.hosting-data.io
-- Généré le : jeu. 30 avr. 2026 à 14:24
-- Version du serveur : 8.0.36
-- Version de PHP : 7.4.33

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Base de données : `dbs15599856`
--
CREATE DATABASE IF NOT EXISTS `dbs15599856` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `dbs15599856`;

-- --------------------------------------------------------

--
-- Structure de la table `bloquer`
--

CREATE TABLE `bloquer` (
  `id_bloquer` int NOT NULL,
  `id_gestionnaire` int DEFAULT NULL,
  `id_vendeur` int DEFAULT NULL,
  `date_blocage` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `motif` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- --------------------------------------------------------

--
-- Structure de la table `categorie`
--

CREATE TABLE `categorie` (
  `id_categorie` int NOT NULL,
  `id_gestionnaire` int DEFAULT NULL,
  `lib` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Déchargement des données de la table `categorie`
--

INSERT INTO `categorie` (`id_categorie`, `id_gestionnaire`, `lib`, `created_at`) VALUES
(1, 14, 'Informatique & Gaming', '2025-09-01 10:00:00'),
(2, 14, 'Automobile & Moto', '2025-09-01 10:05:00'),
(3, 14, 'Sport & Loisirs', '2025-09-01 10:10:00'),
(4, 14, 'Maison & Décoration', '2025-09-01 10:15:00');

-- --------------------------------------------------------

--
-- Structure de la table `client`
--

CREATE TABLE `client` (
  `id_user` int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Déchargement des données de la table `client`
--

INSERT INTO `client` (`id_user`) VALUES
(15),
(20),
(21),
(22),
(23);

-- --------------------------------------------------------

--
-- Structure de la table `conversation`
--

CREATE TABLE `conversation` (
  `id_conversation` int NOT NULL,
  `id_client` int NOT NULL,
  `id_vendeur` int NOT NULL,
  `id_prevente` int NOT NULL,
  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Déchargement des données de la table `conversation`
--

INSERT INTO `conversation` (`id_conversation`, `id_client`, `id_vendeur`, `id_prevente`, `created_at`) VALUES
(1, 15, 13, 4, '2026-03-06 10:00:00'),
(2, 20, 13, 5, '2026-03-21 09:00:00');

-- --------------------------------------------------------

--
-- Structure de la table `debloquer`
--

CREATE TABLE `debloquer` (
  `id_debloquer` int NOT NULL,
  `id_gestionnaire` int DEFAULT NULL,
  `id_vendeur` int DEFAULT NULL,
  `date_deblocage` timestamp NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- --------------------------------------------------------

--
-- Structure de la table `expeditions`
--

CREATE TABLE `expeditions` (
  `id_expeditions` int NOT NULL,
  `id_prevente` int NOT NULL,
  `numero_tracking` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `transporteur` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `bordereaux` int NOT NULL DEFAULT '0',
  `statut` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'en_preparation' COMMENT 'en_preparation, expedie, en_transit, livre',
  `date_preparation` datetime DEFAULT NULL,
  `date_expedition` datetime DEFAULT NULL,
  `date_livraison_prevue` datetime DEFAULT NULL,
  `date_livraison_reelle` datetime DEFAULT NULL,
  `poids` decimal(8,2) DEFAULT NULL,
  `dimensions` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `date_creation` timestamp NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Déchargement des données de la table `expeditions`
--

INSERT INTO `expeditions` (`id_expeditions`, `id_prevente`, `numero_tracking`, `transporteur`, `bordereaux`, `statut`, `date_preparation`, `date_expedition`, `date_livraison_prevue`, `date_livraison_reelle`, `poids`, `dimensions`, `date_creation`) VALUES
(1, 1, 'FR-2026-PC00100001', 'Colissimo', 3, 'livre', '2026-01-08 08:00:00', '2026-01-10 09:00:00', '2026-01-13 18:00:00', '2026-01-12 14:30:00', '3.50', '45x30x8 cm', NULL),
(2, 2, 'DE-2025-GT3RS00001', 'DHL Express', 1, 'en_transit', '2025-12-20 10:00:00', '2025-12-22 08:00:00', '2025-12-28 18:00:00', NULL, '1450.00', 'Véhicule complet', NULL),
(3, 3, 'FR-2026-NJA6500001', 'Chronopost', 2, 'expedie', '2026-03-03 09:00:00', '2026-03-05 08:00:00', '2026-03-08 18:00:00', NULL, '220.00', 'Moto conditionnée', NULL);

-- --------------------------------------------------------

--
-- Structure de la table `facture`
--

CREATE TABLE `facture` (
  `id_facture` int NOT NULL,
  `id_prevente` int DEFAULT NULL,
  `id_client` int DEFAULT NULL,
  `date_facture` date DEFAULT NULL,
  `pdf_facture` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `statut_paiement` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'en_attente'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Déchargement des données de la table `facture`
--

INSERT INTO `facture` (`id_facture`, `id_prevente`, `id_client`, `date_facture`, `pdf_facture`, `created_at`, `statut_paiement`) VALUES
(1, 1, 15, '2026-01-05', 'uploads/factures/facture_00000001_15_20260105090000.pdf', '2026-01-05 09:00:00', 'payé'),
(2, 1, 20, '2026-01-05', 'uploads/factures/facture_00000001_20_20260105090000.pdf', '2026-01-05 09:00:00', 'payé'),
(3, 1, 21, '2026-01-05', NULL, '2026-01-05 09:00:00', 'en_attente'),
(4, 2, 22, '2025-12-20', 'uploads/factures/facture_00000002_22_20251220140000.pdf', '2025-12-20 14:00:00', 'payé'),
(5, 3, 15, '2026-03-01', 'uploads/factures/facture_00000003_15_20260301080000.pdf', '2026-03-01 08:00:00', 'payé'),
(6, 3, 23, '2026-03-01', NULL, '2026-03-01 08:00:00', 'en_attente');

-- --------------------------------------------------------

--
-- Structure de la table `gestionnaire`
--

CREATE TABLE `gestionnaire` (
  `id_user` int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Déchargement des données de la table `gestionnaire`
--

INSERT INTO `gestionnaire` (`id_user`) VALUES
(14);

-- --------------------------------------------------------

--
-- Structure de la table `message`
--

CREATE TABLE `message` (
  `id_message` int NOT NULL,
  `id_conversation` int NOT NULL,
  `id_expediteur` int NOT NULL,
  `contenu` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `lu` tinyint(1) NOT NULL DEFAULT '0',
  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Déchargement des données de la table `message`
--

INSERT INTO `message` (`id_message`, `id_conversation`, `id_expediteur`, `contenu`, `lu`, `created_at`) VALUES
(1, 1, 15, 'Bonjour, j\'ai rejoint la prévente pour le PC RTX 4080. Pouvez-vous me confirmer les délais de livraison estimés une fois l\'objectif atteint ?', 1, '2026-03-06 10:05:00'),
(2, 1, 13, 'Bonjour ! Merci pour votre participation. Une fois l\'objectif de 5 participants atteint, la livraison est prévue sous 10 à 15 jours ouvrés. N\'hésitez pas si vous avez d\'autres questions !', 1, '2026-03-06 11:30:00'),
(3, 1, 15, 'Parfait merci ! Est-ce que je peux commander une configuration personnalisée ou c\'est uniquement le modèle standard ?', 1, '2026-03-06 14:00:00'),
(4, 1, 13, 'Cette prévente est sur le modèle standard. Pour une configuration sur mesure, je peux créer une prévente dédiée si plusieurs personnes sont intéressées. N\'hésitez pas à en parler autour de vous !', 1, '2026-03-07 09:00:00'),
(5, 1, 15, 'D\'accord, je reste sur le modèle standard alors. Merci pour votre réactivité !', 1, '2026-03-07 15:00:00'),
(6, 2, 20, 'Bonjour, la batterie est-elle couverte séparément par la garantie ? Et quel est le délai de livraison après clôture ?', 1, '2026-03-21 09:15:00'),
(7, 2, 13, 'Bonjour Emma ! Oui, la batterie Bosch bénéficie de sa propre garantie de 2 ans, couvrant les défauts de fabrication et une capacité résiduelle minimale de 60 %. Livraison prévue sous 7 à 10 jours ouvrés après clôture de la prévente.', 1, '2026-03-21 10:00:00'),
(8, 2, 20, 'Super, merci pour la précision ! Je suis déjà inscrite, hâte de recevoir le vélo.', 0, '2026-03-21 11:00:00'),
(20, 1, 15, 'Bien à vous.', 0, '2026-04-24 13:27:25');

-- --------------------------------------------------------

--
-- Structure de la table `mouvements_stock`
--

CREATE TABLE `mouvements_stock` (
  `id` int NOT NULL,
  `id_produit` int NOT NULL,
  `id_vendeur` int NOT NULL,
  `type_mouvement` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'entree ou sortie',
  `quantite` int NOT NULL,
  `stock_avant` int NOT NULL,
  `stock_apres` int NOT NULL,
  `motif` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `motif_detaille` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  `date_mouvement` timestamp NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Déchargement des données de la table `mouvements_stock`
--

INSERT INTO `mouvements_stock` (`id`, `id_produit`, `id_vendeur`, `type_mouvement`, `quantite`, `stock_avant`, `stock_apres`, `motif`, `motif_detaille`, `date_mouvement`) VALUES
(1, 1, 13, 'entree', 15, 0, 15, 'Réapprovisionnement', 'Stock initial — PC Portable MSI GL75', '2025-10-01 08:00:00'),
(2, 1, 13, 'sortie', 4, 15, 11, 'Expédition', 'Expédition prévente #1 — Colissimo FR-2026-PC001', '2026-01-10 09:00:00'),
(3, 1, 13, 'entree', 2, 11, 13, 'Réapprovisionnement', NULL, '2026-02-01 10:00:00'),
(4, 1, 13, 'sortie', 5, 13, 8, 'Vente', 'Commandes directes hors prévente', '2026-02-20 14:00:00'),
(5, 2, 13, 'entree', 3, 0, 3, 'Réapprovisionnement', 'Stock initial — Porsche 911 GT3 RS 992', '2025-10-05 09:00:00'),
(6, 2, 13, 'sortie', 1, 3, 2, 'Expédition', 'Expédition prévente #2 — DHL DE-2025-GT3RS001', '2025-12-22 10:00:00'),
(7, 3, 13, 'entree', 20, 0, 20, 'Réapprovisionnement', 'Stock initial — Kawasaki Ninja 650', '2025-10-08 10:00:00'),
(8, 3, 13, 'sortie', 2, 20, 18, 'Expédition', 'Expédition prévente #3 — Chronopost FR-2026-NJA01', '2026-03-05 09:00:00'),
(9, 3, 13, 'sortie', 1, 18, 17, 'Vente', 'Commande directe client pro', '2026-03-10 14:00:00'),
(10, 3, 13, 'entree', 3, 17, 20, 'Réapprovisionnement', 'Réassort Kawasaki Ninja 650', '2026-03-20 09:00:00'),
(11, 3, 13, 'sortie', 5, 20, 15, 'Vente', NULL, '2026-04-01 11:00:00'),
(12, 4, 13, 'entree', 15, 0, 15, 'Réapprovisionnement', 'Stock initial — PC Fixe RTX 4080', '2025-10-12 11:00:00'),
(13, 4, 13, 'sortie', 4, 15, 11, 'Vente', 'Commandes directes Q4 2025', '2026-01-15 10:00:00'),
(14, 5, 13, 'entree', 25, 0, 25, 'Réapprovisionnement', 'Stock initial — Vélo Électrique Urban Pro 500W', '2025-10-15 12:00:00'),
(15, 5, 13, 'sortie', 5, 25, 20, 'Vente', 'Commandes directes hors prévente', '2026-02-20 11:00:00');

-- --------------------------------------------------------

--
-- Structure de la table `notes_internes`
--

CREATE TABLE `notes_internes` (
  `id_notes` int NOT NULL,
  `id_prevente` int NOT NULL,
  `id_vendeur` int NOT NULL,
  `contenu` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `type_note` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'info' COMMENT 'info, alerte, urgent',
  `date_creation` timestamp NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Déchargement des données de la table `notes_internes`
--

INSERT INTO `notes_internes` (`id_notes`, `id_prevente`, `id_vendeur`, `contenu`, `type_note`, `date_creation`) VALUES
(1, 1, 13, 'Prévente clôturée avec succès. 3 participants (objectif 3 atteint). Toutes les commandes expédiées via Colissimo (FR-2026-PC00100001). 2 factures payées, 1 encore en attente (client Lucas Moreau — relance prévue).', 'info', '2026-01-10 09:00:00'),
(2, 3, 13, 'URGENT — Retard de livraison Kawasaki signalé par le client id=15. Colis FR-2026-NJA6500001 bloqué en transit depuis le 08/03. Chronopost contacté le 12/03 — en attente de réponse sous 48h.', 'urgent', '2026-03-12 10:00:00'),
(3, 4, 13, 'Prévente RTX 4080 en cours : 2 participants sur 5 requis. Objectif à atteindre avant le 31/05. Penser à relancer la communication sur les réseaux sociaux et envoyer un email aux anciens acheteurs de la prévente PC MSI.', 'alerte', '2026-03-10 14:00:00'),
(4, 5, 13, 'Prévente Vélo Électrique Urban Pro : 2 participants sur 3 requis. Presque à l\'objectif ! Une conversation ouverte avec Emma Martin (client id=20) — question garantie batterie résolue. Surveiller l\'atteinte de l\'objectif pour déclencher la génération des factures.', 'info', '2026-03-22 10:05:00');

-- --------------------------------------------------------

--
-- Structure de la table `participation`
--

CREATE TABLE `participation` (
  `id_particiption` int NOT NULL,
  `id_client` int DEFAULT NULL,
  `id_prevente` int DEFAULT NULL,
  `id_facture` int DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Déchargement des données de la table `participation`
--

INSERT INTO `participation` (`id_particiption`, `id_client`, `id_prevente`, `id_facture`, `created_at`) VALUES
(1, 15, 1, 1, '2025-11-10 14:00:00'),
(2, 20, 1, 2, '2025-11-15 16:00:00'),
(3, 21, 1, 3, '2025-11-20 10:00:00'),
(4, 22, 2, 4, '2025-11-20 11:00:00'),
(5, 15, 3, 5, '2026-01-15 09:00:00'),
(6, 23, 3, 6, '2026-01-20 10:00:00'),
(7, 15, 4, NULL, '2026-03-05 11:00:00'),
(8, 20, 4, NULL, '2026-03-07 14:00:00'),
(9, 15, 5, NULL, '2026-03-20 09:00:00'),
(10, 21, 5, NULL, '2026-03-22 10:00:00'),
(11, 20, 6, NULL, '2025-12-10 10:00:00'),
(12, 23, 6, NULL, '2025-12-15 11:00:00');

-- --------------------------------------------------------

--
-- Structure de la table `prevente`
--

CREATE TABLE `prevente` (
  `id_prevente` int NOT NULL,
  `date_limite` date DEFAULT NULL,
  `nombre_min` int DEFAULT NULL,
  `statut` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `prix_prevente` decimal(10,2) DEFAULT NULL,
  `id_produit` int DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `id_vendeur` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Déchargement des données de la table `prevente`
--

INSERT INTO `prevente` (`id_prevente`, `date_limite`, `nombre_min`, `statut`, `prix_prevente`, `id_produit`, `created_at`, `id_vendeur`) VALUES
(1, '2025-12-31', 3, 'terminée', '999.00', 1, '2025-11-01 10:00:00', 13),
(2, '2025-12-15', 1, 'terminée', '195000.00', 2, '2025-11-15 11:00:00', 13),
(3, '2026-02-28', 2, 'terminée', '6500.00', 3, '2026-01-10 09:00:00', 13),
(4, '2026-05-31', 5, 'en cours', '2499.00', 4, '2026-03-01 09:00:00', 13),
(5, '2026-05-15', 3, 'en cours', '1599.00', 5, '2026-03-15 10:00:00', 13),
(6, '2026-01-31', 10, 'annulée', '999.00', 1, '2025-12-01 10:00:00', 13);

-- --------------------------------------------------------

--
-- Structure de la table `produit`
--

CREATE TABLE `produit` (
  `id_produit` int NOT NULL,
  `id_categorie` int DEFAULT NULL,
  `nom_produit` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `description` varchar(3000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `prix` decimal(10,2) DEFAULT NULL,
  `image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `id_vendeur` int DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Déchargement des données de la table `produit`
--

INSERT INTO `produit` (`id_produit`, `id_categorie`, `nom_produit`, `description`, `prix`, `image`, `id_vendeur`, `created_at`) VALUES
(1, 1, 'PC Portable Gaming MSI GL75', 'MSI GL75 Leopard 10SER — La référence gaming nomade.\r\n\r\nÉcran 17,3\" Full HD 144 Hz pour une fluidité incomparable en jeu. Processeur Intel Core i7-10750H (6 cœurs, jusqu\'à 5 GHz en boost), 16 Go de RAM DDR4 3200 MHz. Stockage hybride : SSD NVMe 256 Go + HDD 1 To SATA. Carte graphique Nvidia GeForce RTX 2060 6 Go GDDR6 pour des performances stables dans tous les titres récents.\r\n\r\nClavier rétroéclairé SteelSeries Per-Key RGB, dalle IPS anti-reflets. Wi-Fi 802.11ac double bande + Bluetooth 5.0. 3 ports USB 3.2, 1 USB-C, HDMI 2.0, mini-DisplayPort. Windows 10 Home inclus. Autonomie estimée : 5 h bureautique.\r\n\r\nIdéal pour le gaming, le streaming et le montage vidéo nomade. Garantie 2 ans constructeur.', '1200.00', 'uploads/69b29c47d0a6c_PC-Portable-Gaming-msi-GL75-10SER-296FR-17-3-Intel-Core-i7-16-Go-RAM-256-G-D-1-To-SATA-Noir.jpg', 13, '2025-10-01 08:00:00'),
(2, 2, 'Porsche 911 GT3 RS 992', 'Porsche 911 GT3 RS (992) — L\'expression ultime de la performance sur circuit.\r\n\r\nMoteur 4.0 L Flat-6 atmosphérique 525 ch à 9 000 tr/min. Boîte PDK 7 rapports double embrayage. 0-100 km/h en 3,2 s, Vmax 296 km/h. Aérodynamique active avec DRS (Drag Reduction System), aileron arrière biplan réglable générant 860 kg d\'appui à vitesse maximale.\r\n\r\nCarrosserie avant, arrière et pavillon 100 % CFRP (fibre de carbone renforcée). Suspension PASM Sport, barres anti-roulis actives, direction arrière intégrale. Freins céramique composite PCCB en option. Pneus Michelin Pilot Sport Cup 2 R homologués route.\r\n\r\nLivraison sur commande, couleur et options au choix. Délai constructeur : 6 à 9 mois. Garantie 2 ans kilométrage illimité.', '220000.00', 'uploads/69e22019b822d_essai-porsche-911-gt3rs-992-2023_12.jpg', 13, '2025-10-05 09:00:00'),
(3, 2, 'Kawasaki Ninja 650', 'Kawasaki Ninja 650 (2024) — La sportive accessible à tous les permis A2.\r\n\r\nMoteur bicylindre parallèle 649 cm³ DOHC 4 soupapes par cylindre, 68 ch à 8 000 tr/min, 65,7 Nm à 6 700 tr/min. Boîte 6 rapports, démarreur électrique. Cadre en acier treillis à haute résistance. Fourche télescopique 41 mm, mono-amortisseur réglable en précharge. Freinage ABS Bosch de série, disques avant 300 mm pince 2 pistons.\r\n\r\nConsommation mixte homologuée : 5,1 L/100 km. Réservoir 15 L pour une autonomie d\'environ 290 km. Instrumentation full-LED, rétroviseurs réglables, guidon sport. Disponible en Phantom (noir mat) et Candy Lime Green.\r\n\r\nHomologuée A2 (restriction 35 kW), levable après 2 ans de permis. Garantie constructeur 2 ans.', '7299.00', 'uploads/695eef939c9d5_24MY_Ninja_650_BK2_STU__1_.png', 13, '2025-10-08 10:00:00'),
(4, 1, 'PC Fixe Gaming RTX 4080 — Config Ultra', 'Station gaming RTX 4080 montée et testée par INGETIS — Prête à jouer.\r\n\r\nProcesseur AMD Ryzen 9 7900X (12 cœurs / 24 threads, 5,6 GHz boost). 32 Go DDR5 6000 MHz CL36 (2 × 16 Go). SSD NVMe PCIe 5.0 2 To (7 400 Mo/s). Carte graphique Nvidia GeForce RTX 4080 16 Go GDDR6X (DLSS 3, Ray Tracing).\r\n\r\nRefroidissement : watercooling AIO 360 mm, 3 ventilateurs 120 mm PWM. Boîtier Corsair 4000D Airflow (2 façades mesh). Alimentation Corsair RM850x 80+ Gold modulaire. Carte mère ASUS ROG Strix X670E-F Gaming WiFi. Wi-Fi 6E + Bluetooth 5.3 intégrés.\r\n\r\nWindows 11 Pro inclus, activé et à jour. Benchmarks fournis. Garantie 3 ans pièces et main d&amp;#039;œuvre INGETIS.', '2800.00', 'uploads/pc_fixe_gaming_rtx4080.jpg', 13, '2025-10-12 11:00:00'),
(5, 3, 'Vélo Électrique Urban Pro 500W', 'Urban Pro 500W — Le vélo électrique urbain hautes performances.\r\n\r\nMoteur central Bosch Performance Line CX 500 W (85 Nm), 4 modes d\'assistance (Eco, Tour, Sport, Turbo). Batterie intégrée 48 V 14 Ah (672 Wh) — autonomie jusqu\'à 120 km en mode Eco. Recharge complète en 4 h 30. Vitesse max assistée : 25 km/h (conforme directive UE 2002/24/CE).\r\n\r\nCadre aluminium hydroformé 6061-T6 mixte, taille unique (compatible 165-195 cm). Fourche rigide aluminium avec absorpteur de vibrations intégré. Freins hydrauliques Shimano MT200, disques 180/160 mm. Dérailleur Shimano Alivio 9 vitesses. Pneus Schwalbe Marathon Plus 28\" anti-crevaison.\r\n\r\nÉcran LCD couleur rétroéclairé, application Bosch eBike Flow (iOS/Android). Éclairage avant/arrière LED homologué route. Certifié EN 15194. Livraison montée, réglée et vérifiée. Garantie 3 ans cadre, 2 ans batterie et composants.', '1850.00', 'uploads/velo_electrique_urban_pro.jpg', 13, '2025-10-15 12:00:00');

-- --------------------------------------------------------

--
-- Structure de la table `signalement`
--

CREATE TABLE `signalement` (
  `id_signalement` int NOT NULL,
  `id_client` int NOT NULL,
  `id_vendeur` int DEFAULT NULL,
  `id_prevente` int DEFAULT NULL,
  `objet` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `reponse` text,
  `statut` varchar(30) NOT NULL DEFAULT 'ouvert',
  `priorite` varchar(20) NOT NULL DEFAULT 'normale',
  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

--
-- Déchargement des données de la table `signalement`
--

INSERT INTO `signalement` (`id_signalement`, `id_client`, `id_vendeur`, `id_prevente`, `objet`, `description`, `reponse`, `statut`, `priorite`, `created_at`) VALUES
(1, 15, 13, 1, 'Facture non reçue par email', 'Bonjour, j\'ai bien effectué le paiement pour la prévente PC Gaming MSI mais je n\'ai pas reçu ma facture par email. Pouvez-vous me la renvoyer s\'il vous plaît ?', 'Bonjour, nous avons bien pris en compte votre signalement. Votre facture a été renvoyée à votre adresse email enregistrée. Vous pouvez également la télécharger directement depuis la section \"Mes Factures\" de votre espace client. Cordialement, INGETIS.', 'résolu', 'normale', '2026-01-13 10:00:00'),
(2, 15, 13, 3, 'Retard de livraison — Kawasaki Ninja', 'Bonjour, la date de livraison prévue était le 8 mars 2026 mais je n\'ai toujours pas reçu ma commande au 12 mars. Le suivi colis ne s\'est pas mis à jour depuis 4 jours. Pouvez-vous contacter le transporteur ?', NULL, 'ouvert', 'haute', '2026-03-12 09:00:00');

-- --------------------------------------------------------

--
-- Structure de la table `signaler`
--

CREATE TABLE `signaler` (
  `id_signal` int NOT NULL,
  `id_user` int DEFAULT NULL,
  `id_produit` int DEFAULT NULL,
  `date_signal` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Structure de la table `stocks`
--

CREATE TABLE `stocks` (
  `id_stock` int NOT NULL,
  `id_produit` int NOT NULL,
  `stock_physique` int NOT NULL DEFAULT '0',
  `stock_reserve` int NOT NULL DEFAULT '0',
  `seuil_alerte` int NOT NULL DEFAULT '10',
  `prix_achat` decimal(10,2) DEFAULT NULL,
  `emplacement` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `date_creation` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `date_modification` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Déchargement des données de la table `stocks`
--

INSERT INTO `stocks` (`id_stock`, `id_produit`, `stock_physique`, `stock_reserve`, `seuil_alerte`, `prix_achat`, `emplacement`, `date_creation`, `date_modification`) VALUES
(1, 1, 8, 0, 5, '900.00', 'A1-R01', '2025-10-01 08:00:00', '2026-01-10 09:00:00'),
(2, 2, 2, 0, 1, '185000.00', 'A2-R01', '2025-10-05 09:00:00', '2025-12-22 10:00:00'),
(3, 3, 15, 2, 5, '6200.00', 'A3-R02', '2025-10-08 10:00:00', '2026-03-05 09:00:00'),
(4, 4, 11, 2, 3, '2300.00', 'A4-R01', '2025-10-12 11:00:00', '2026-03-07 14:00:00'),
(5, 5, 18, 2, 5, '1500.00', 'A5-R03', '2025-10-15 12:00:00', '2026-03-22 10:00:00');

-- --------------------------------------------------------

--
-- Structure de la table `utilisateur`
--

CREATE TABLE `utilisateur` (
  `id_user` int NOT NULL,
  `nom` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `prenom` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `adresse` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `motdepasse` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Déchargement des données de la table `utilisateur`
--

INSERT INTO `utilisateur` (`id_user`, `nom`, `prenom`, `adresse`, `phone`, `email`, `motdepasse`, `created_at`) VALUES
(13, 'vendeur', 'vendeur', '92 rue Gay Lussac, Paris 75005', '0754385727', 'vendeur@gmail.com', '$2y$10$d.vdCBdlbzgE4YoU40wOwOvPMqLdzuVLarakbYadrNTGxR9v8c5Km', '2025-10-09 09:02:15'),
(14, 'gestion', 'gestion', '92 rue Gay Lussac, Paris 75005', '0754385727', 'gestion@gmail.com', '$2y$10$HKU/dWJel0LTV6sDQ8N/QOqjQuQSkDvvU2RrCI5b1n9dyaMIPi0SK', '2025-10-09 12:08:34'),
(15, 'client', 'client', '92 rue Gay Lussac, Paris 75005', '0754385727', 'client@gmail.com', '$2y$10$D/vKZIpupWVfgpBfDnw56ezIjhoBPQuibljxU5e6IVBkujoUK/hU6', '2025-10-16 11:03:16'),
(20, 'Martin', 'Emma', '14 avenue des Lilas, Lyon 69003', '0612345678', 'emma.martin@test.fr', '$2y$10$AZEpEqZh8VgOerR79qBMWuL8IqsGV1N5Ww/RqrFbVoQkYaFaBsLDy', '2025-11-01 09:00:00'),
(21, 'Moreau', 'Lucas', '7 rue du Moulin, Bordeaux 33000', '0623456789', 'lucas.moreau@test.fr', '$2y$10$AZEpEqZh8VgOerR79qBMWuL8IqsGV1N5Ww/RqrFbVoQkYaFaBsLDy', '2025-11-05 10:30:00'),
(22, 'Dubois', 'Camille', '3 impasse Beaumont, Marseille 13008', '0634567890', 'camille.dubois@test.fr', '$2y$10$AZEpEqZh8VgOerR79qBMWuL8IqsGV1N5Ww/RqrFbVoQkYaFaBsLDy', '2025-11-10 14:00:00'),
(23, 'Lambert', 'Théo', '22 boulevard Voltaire, Paris 75011', '0645678901', 'theo.lambert@test.fr', '$2y$10$AZEpEqZh8VgOerR79qBMWuL8IqsGV1N5Ww/RqrFbVoQkYaFaBsLDy', '2025-11-15 16:00:00');

-- --------------------------------------------------------

--
-- Structure de la table `vendeur`
--

CREATE TABLE `vendeur` (
  `id_user` int NOT NULL,
  `nom_entreprise` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `siret` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `adresse_entreprise` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `email_pro` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Déchargement des données de la table `vendeur`
--

INSERT INTO `vendeur` (`id_user`, `nom_entreprise`, `siret`, `adresse_entreprise`, `email_pro`) VALUES
(13, 'INGETIS', '03249235034900', '92 rue Gay Lussac, Paris 75005', 'contact@ingetis.fr');

--
-- Index pour les tables déchargées
--

--
-- Index pour la table `bloquer`
--
ALTER TABLE `bloquer`
  ADD PRIMARY KEY (`id_bloquer`),
  ADD KEY `idx_bloquer_gestionnaire` (`id_gestionnaire`),
  ADD KEY `idx_bloquer_vendeur` (`id_vendeur`);

--
-- Index pour la table `categorie`
--
ALTER TABLE `categorie`
  ADD PRIMARY KEY (`id_categorie`),
  ADD KEY `id_gestionnaire` (`id_gestionnaire`);

--
-- Index pour la table `client`
--
ALTER TABLE `client`
  ADD PRIMARY KEY (`id_user`);

--
-- Index pour la table `conversation`
--
ALTER TABLE `conversation`
  ADD PRIMARY KEY (`id_conversation`),
  ADD UNIQUE KEY `uk_conv` (`id_client`,`id_vendeur`,`id_prevente`),
  ADD KEY `idx_client` (`id_client`),
  ADD KEY `idx_vendeur` (`id_vendeur`),
  ADD KEY `idx_prevente` (`id_prevente`);

--
-- Index pour la table `debloquer`
--
ALTER TABLE `debloquer`
  ADD PRIMARY KEY (`id_debloquer`),
  ADD KEY `idx_debloquer_gestionnaire` (`id_gestionnaire`),
  ADD KEY `idx_debloquer_vendeur` (`id_vendeur`);

--
-- Index pour la table `expeditions`
--
ALTER TABLE `expeditions`
  ADD PRIMARY KEY (`id_expeditions`),
  ADD UNIQUE KEY `id_prevente` (`id_prevente`),
  ADD UNIQUE KEY `numero_tracking` (`numero_tracking`),
  ADD KEY `idx_tracking` (`numero_tracking`),
  ADD KEY `idx_statut` (`statut`);

--
-- Index pour la table `facture`
--
ALTER TABLE `facture`
  ADD PRIMARY KEY (`id_facture`),
  ADD KEY `fk_facture_prevente` (`id_prevente`),
  ADD KEY `fk_facture_client` (`id_client`);

--
-- Index pour la table `gestionnaire`
--
ALTER TABLE `gestionnaire`
  ADD PRIMARY KEY (`id_user`);

--
-- Index pour la table `message`
--
ALTER TABLE `message`
  ADD PRIMARY KEY (`id_message`),
  ADD KEY `idx_conv` (`id_conversation`,`created_at`),
  ADD KEY `id_expediteur` (`id_expediteur`);

--
-- Index pour la table `mouvements_stock`
--
ALTER TABLE `mouvements_stock`
  ADD PRIMARY KEY (`id`),
  ADD KEY `id_vendeur` (`id_vendeur`),
  ADD KEY `idx_produit` (`id_produit`),
  ADD KEY `idx_date` (`date_mouvement`);

--
-- Index pour la table `notes_internes`
--
ALTER TABLE `notes_internes`
  ADD PRIMARY KEY (`id_notes`),
  ADD KEY `id_vendeur` (`id_vendeur`),
  ADD KEY `idx_prevente` (`id_prevente`);

--
-- Index pour la table `participation`
--
ALTER TABLE `participation`
  ADD PRIMARY KEY (`id_particiption`),
  ADD KEY `id_client` (`id_client`),
  ADD KEY `id_prevente` (`id_prevente`),
  ADD KEY `id_facture` (`id_facture`);

--
-- Index pour la table `prevente`
--
ALTER TABLE `prevente`
  ADD PRIMARY KEY (`id_prevente`),
  ADD KEY `id_produit` (`id_produit`),
  ADD KEY `fk_prevente_vendeur` (`id_vendeur`);

--
-- Index pour la table `produit`
--
ALTER TABLE `produit`
  ADD PRIMARY KEY (`id_produit`),
  ADD KEY `id_vendeur` (`id_vendeur`),
  ADD KEY `id_categorie` (`id_categorie`);

--
-- Index pour la table `signalement`
--
ALTER TABLE `signalement`
  ADD PRIMARY KEY (`id_signalement`),
  ADD KEY `idx_signalement_client` (`id_client`),
  ADD KEY `idx_signalement_vendeur` (`id_vendeur`),
  ADD KEY `idx_signalement_prevente` (`id_prevente`);

--
-- Index pour la table `signaler`
--
ALTER TABLE `signaler`
  ADD PRIMARY KEY (`id_signal`),
  ADD KEY `id_user` (`id_user`),
  ADD KEY `id_produit` (`id_produit`);

--
-- Index pour la table `stocks`
--
ALTER TABLE `stocks`
  ADD PRIMARY KEY (`id_stock`),
  ADD UNIQUE KEY `id_produit` (`id_produit`),
  ADD KEY `idx_stock_disponible` (`stock_physique`,`stock_reserve`);

--
-- Index pour la table `utilisateur`
--
ALTER TABLE `utilisateur`
  ADD PRIMARY KEY (`id_user`);

--
-- Index pour la table `vendeur`
--
ALTER TABLE `vendeur`
  ADD PRIMARY KEY (`id_user`);

--
-- AUTO_INCREMENT pour les tables déchargées
--

--
-- AUTO_INCREMENT pour la table `bloquer`
--
ALTER TABLE `bloquer`
  MODIFY `id_bloquer` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--
-- AUTO_INCREMENT pour la table `categorie`
--
ALTER TABLE `categorie`
  MODIFY `id_categorie` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--
-- AUTO_INCREMENT pour la table `conversation`
--
ALTER TABLE `conversation`
  MODIFY `id_conversation` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--
-- AUTO_INCREMENT pour la table `debloquer`
--
ALTER TABLE `debloquer`
  MODIFY `id_debloquer` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--
-- AUTO_INCREMENT pour la table `expeditions`
--
ALTER TABLE `expeditions`
  MODIFY `id_expeditions` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--
-- AUTO_INCREMENT pour la table `facture`
--
ALTER TABLE `facture`
  MODIFY `id_facture` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--
-- AUTO_INCREMENT pour la table `message`
--
ALTER TABLE `message`
  MODIFY `id_message` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;

--
-- AUTO_INCREMENT pour la table `mouvements_stock`
--
ALTER TABLE `mouvements_stock`
  MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=20;

--
-- AUTO_INCREMENT pour la table `notes_internes`
--
ALTER TABLE `notes_internes`
  MODIFY `id_notes` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--
-- AUTO_INCREMENT pour la table `participation`
--
ALTER TABLE `participation`
  MODIFY `id_particiption` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=20;

--
-- AUTO_INCREMENT pour la table `prevente`
--
ALTER TABLE `prevente`
  MODIFY `id_prevente` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--
-- AUTO_INCREMENT pour la table `produit`
--
ALTER TABLE `produit`
  MODIFY `id_produit` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--
-- AUTO_INCREMENT pour la table `signalement`
--
ALTER TABLE `signalement`
  MODIFY `id_signalement` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--
-- AUTO_INCREMENT pour la table `signaler`
--
ALTER TABLE `signaler`
  MODIFY `id_signal` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--
-- AUTO_INCREMENT pour la table `stocks`
--
ALTER TABLE `stocks`
  MODIFY `id_stock` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

--
-- AUTO_INCREMENT pour la table `utilisateur`
--
ALTER TABLE `utilisateur`
  MODIFY `id_user` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=100;

--
-- Contraintes pour les tables déchargées
--

--
-- Contraintes pour la table `bloquer`
--
ALTER TABLE `bloquer`
  ADD CONSTRAINT `fk_bloquer_gestionnaire` FOREIGN KEY (`id_gestionnaire`) REFERENCES `gestionnaire` (`id_user`) ON DELETE SET NULL,
  ADD CONSTRAINT `fk_bloquer_vendeur` FOREIGN KEY (`id_vendeur`) REFERENCES `vendeur` (`id_user`) ON DELETE SET NULL;

--
-- Contraintes pour la table `categorie`
--
ALTER TABLE `categorie`
  ADD CONSTRAINT `categorie_ibfk_1` FOREIGN KEY (`id_gestionnaire`) REFERENCES `gestionnaire` (`id_user`);

--
-- Contraintes pour la table `client`
--
ALTER TABLE `client`
  ADD CONSTRAINT `client_ibfk_1` FOREIGN KEY (`id_user`) REFERENCES `utilisateur` (`id_user`);

--
-- Contraintes pour la table `conversation`
--
ALTER TABLE `conversation`
  ADD CONSTRAINT `conversation_ibfk_1` FOREIGN KEY (`id_client`) REFERENCES `utilisateur` (`id_user`) ON DELETE CASCADE,
  ADD CONSTRAINT `conversation_ibfk_2` FOREIGN KEY (`id_vendeur`) REFERENCES `utilisateur` (`id_user`) ON DELETE CASCADE,
  ADD CONSTRAINT `conversation_ibfk_3` FOREIGN KEY (`id_prevente`) REFERENCES `prevente` (`id_prevente`) ON DELETE CASCADE;

--
-- Contraintes pour la table `debloquer`
--
ALTER TABLE `debloquer`
  ADD CONSTRAINT `fk_debloquer_gestionnaire` FOREIGN KEY (`id_gestionnaire`) REFERENCES `gestionnaire` (`id_user`) ON DELETE SET NULL,
  ADD CONSTRAINT `fk_debloquer_vendeur` FOREIGN KEY (`id_vendeur`) REFERENCES `vendeur` (`id_user`) ON DELETE SET NULL;

--
-- Contraintes pour la table `expeditions`
--
ALTER TABLE `expeditions`
  ADD CONSTRAINT `expeditions_ibfk_1` FOREIGN KEY (`id_prevente`) REFERENCES `prevente` (`id_prevente`) ON DELETE RESTRICT;

--
-- Contraintes pour la table `facture`
--
ALTER TABLE `facture`
  ADD CONSTRAINT `fk_facture_client` FOREIGN KEY (`id_client`) REFERENCES `utilisateur` (`id_user`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_facture_prevente` FOREIGN KEY (`id_prevente`) REFERENCES `prevente` (`id_prevente`) ON DELETE CASCADE;

--
-- Contraintes pour la table `gestionnaire`
--
ALTER TABLE `gestionnaire`
  ADD CONSTRAINT `gestionnaire_ibfk_1` FOREIGN KEY (`id_user`) REFERENCES `utilisateur` (`id_user`);

--
-- Contraintes pour la table `message`
--
ALTER TABLE `message`
  ADD CONSTRAINT `message_ibfk_1` FOREIGN KEY (`id_conversation`) REFERENCES `conversation` (`id_conversation`) ON DELETE CASCADE,
  ADD CONSTRAINT `message_ibfk_2` FOREIGN KEY (`id_expediteur`) REFERENCES `utilisateur` (`id_user`) ON DELETE CASCADE;

--
-- Contraintes pour la table `mouvements_stock`
--
ALTER TABLE `mouvements_stock`
  ADD CONSTRAINT `mouvements_stock_ibfk_1` FOREIGN KEY (`id_produit`) REFERENCES `produit` (`id_produit`) ON DELETE RESTRICT,
  ADD CONSTRAINT `mouvements_stock_ibfk_2` FOREIGN KEY (`id_vendeur`) REFERENCES `vendeur` (`id_user`) ON DELETE RESTRICT;

--
-- Contraintes pour la table `notes_internes`
--
ALTER TABLE `notes_internes`
  ADD CONSTRAINT `notes_internes_ibfk_1` FOREIGN KEY (`id_prevente`) REFERENCES `prevente` (`id_prevente`) ON DELETE CASCADE,
  ADD CONSTRAINT `notes_internes_ibfk_2` FOREIGN KEY (`id_vendeur`) REFERENCES `vendeur` (`id_user`) ON DELETE RESTRICT;

--
-- Contraintes pour la table `participation`
--
ALTER TABLE `participation`
  ADD CONSTRAINT `participation_ibfk_1` FOREIGN KEY (`id_client`) REFERENCES `client` (`id_user`),
  ADD CONSTRAINT `participation_ibfk_2` FOREIGN KEY (`id_prevente`) REFERENCES `prevente` (`id_prevente`),
  ADD CONSTRAINT `participation_ibfk_3` FOREIGN KEY (`id_facture`) REFERENCES `facture` (`id_facture`);

--
-- Contraintes pour la table `prevente`
--
ALTER TABLE `prevente`
  ADD CONSTRAINT `fk_prevente_vendeur` FOREIGN KEY (`id_vendeur`) REFERENCES `vendeur` (`id_user`) ON DELETE SET NULL ON UPDATE CASCADE,
  ADD CONSTRAINT `prevente_ibfk_1` FOREIGN KEY (`id_produit`) REFERENCES `produit` (`id_produit`);

--
-- Contraintes pour la table `produit`
--
ALTER TABLE `produit`
  ADD CONSTRAINT `produit_ibfk_1` FOREIGN KEY (`id_vendeur`) REFERENCES `vendeur` (`id_user`),
  ADD CONSTRAINT `produit_ibfk_2` FOREIGN KEY (`id_categorie`) REFERENCES `categorie` (`id_categorie`);

--
-- Contraintes pour la table `signalement`
--
ALTER TABLE `signalement`
  ADD CONSTRAINT `fk_signalement_client` FOREIGN KEY (`id_client`) REFERENCES `utilisateur` (`id_user`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_signalement_prevente` FOREIGN KEY (`id_prevente`) REFERENCES `prevente` (`id_prevente`) ON DELETE SET NULL,
  ADD CONSTRAINT `fk_signalement_vendeur` FOREIGN KEY (`id_vendeur`) REFERENCES `utilisateur` (`id_user`) ON DELETE SET NULL;

--
-- Contraintes pour la table `signaler`
--
ALTER TABLE `signaler`
  ADD CONSTRAINT `signaler_ibfk_1` FOREIGN KEY (`id_user`) REFERENCES `utilisateur` (`id_user`),
  ADD CONSTRAINT `signaler_ibfk_2` FOREIGN KEY (`id_produit`) REFERENCES `produit` (`id_produit`);

--
-- Contraintes pour la table `stocks`
--
ALTER TABLE `stocks`
  ADD CONSTRAINT `stocks_ibfk_1` FOREIGN KEY (`id_produit`) REFERENCES `produit` (`id_produit`) ON DELETE CASCADE;

--
-- Contraintes pour la table `vendeur`
--
ALTER TABLE `vendeur`
  ADD CONSTRAINT `vendeur_ibfk_1` FOREIGN KEY (`id_user`) REFERENCES `utilisateur` (`id_user`);

-- --------------------------------------------------------
-- TABLE MANQUANTE : login_attempts (présente dans vente_groupe AMPPS)
-- --------------------------------------------------------
CREATE TABLE IF NOT EXISTS `login_attempts` (
  `id` int NOT NULL AUTO_INCREMENT,
  `email` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `ip_address` varchar(45) COLLATE utf8mb4_general_ci NOT NULL,
  `success` tinyint(1) NOT NULL DEFAULT '0',
  `attempted_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_email_time` (`email`,`attempted_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------
-- COLONNES MANQUANTES : utilisateur.remember_token / remember_token_expires
-- --------------------------------------------------------
ALTER TABLE `utilisateur`
  ADD COLUMN IF NOT EXISTS `remember_token` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL,
  ADD COLUMN IF NOT EXISTS `remember_token_expires` datetime DEFAULT NULL;

COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
