VoituresApi-API/voituresapi (1).sql

219 lines
6.9 KiB
MySQL
Raw Normal View History

2026-09-16 09:11:08 +00:00
-- phpMyAdmin SQL Dump
-- version 5.2.3
-- https://www.phpmyadmin.net/
--
-- Hôte : 127.0.0.1:3306
-- Généré le : mer. 16 sep. 2026 à 08:43
-- Version du serveur : 8.4.7
-- Version de PHP : 8.3.28
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
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 : `voituresapi`
--
DELIMITER $$
--
-- Procédures
--
DROP PROCEDURE IF EXISTS `sp_deleteVoiture`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_deleteVoiture` (IN `p_id` INT) BEGIN
DELETE FROM cars WHERE id = p_id;
SELECT ROW_COUNT() AS affected;
END$$
DROP PROCEDURE IF EXISTS `sp_getEtatVoiture`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_getEtatVoiture` (IN `p_id` INT) BEGIN
SELECT c.*,
(SELECT valeur FROM kilometrage WHERE car_id = c.id ORDER BY date_releve DESC, id DESC LIMIT 1) AS dernier_km
FROM cars c
WHERE c.id = p_id;
SELECT * FROM maintenance_logs WHERE car_id = p_id ORDER BY date_evenement DESC;
SELECT * FROM notes WHERE car_id = p_id ORDER BY date_creation DESC;
END$$
DROP PROCEDURE IF EXISTS `sp_getKilometrages`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_getKilometrages` (IN `p_id` INT, IN `p_limit` INT) BEGIN
SELECT id, car_id, valeur, date_releve
FROM kilometrage
WHERE car_id = p_id
ORDER BY date_releve DESC, id DESC
LIMIT p_limit;
END$$
DROP PROCEDURE IF EXISTS `sp_insertVoiture`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_insertVoiture` (IN `p_marque` VARCHAR(255), IN `p_modele` VARCHAR(255), IN `p_annee` INT, IN `p_dateAchat` DATE, IN `p_VIN` VARCHAR(255), IN `p_immatriculation` VARCHAR(20)) BEGIN
INSERT INTO cars (marque, modele, annee, dateAchat, VIN, immatriculation)
VALUES (p_marque, p_modele, p_annee, p_dateAchat, p_VIN, p_immatriculation);
2026-09-16 09:11:08 +00:00
SELECT LAST_INSERT_ID() AS new_id;
END$$
DELIMITER ;
-- --------------------------------------------------------
--
-- Structure de la table `cars`
--
DROP TABLE IF EXISTS `cars`;
CREATE TABLE IF NOT EXISTS `cars` (
`id` int NOT NULL AUTO_INCREMENT,
`marque` varchar(50) NOT NULL,
`modele` varchar(50) NOT NULL,
`annee` int NOT NULL,
`dateAchat` date NOT NULL,
`VIN` varchar(17) DEFAULT NULL,
`immatriculation` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_immatriculation` (`immatriculation`)
2026-09-16 09:11:08 +00:00
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Déchargement des données de la table `cars`
--
INSERT INTO `cars` (`id`, `marque`, `modele`, `annee`, `dateAchat`, `VIN`, `immatriculation`) VALUES
(1, 'Peugeot', '207', 2009, '2025-05-20', 'VF3WA8HZCXXXXXXXX', 'AB-123-CD'),
(2, 'Peugeot', '208', 2010, '2025-05-20', 'VF3WA8HZCXXXXXXXX', 'EF-456-GH');
2026-09-16 09:11:08 +00:00
-- --------------------------------------------------------
--
-- Structure de la table `kilometrage`
--
DROP TABLE IF EXISTS `kilometrage`;
CREATE TABLE IF NOT EXISTS `kilometrage` (
`car_id` int NOT NULL,
`date_releve` date NOT NULL,
`valeur` int NOT NULL,
KEY `fk_km_car_id` (`car_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Déchargement des données de la table `kilometrage`
--
INSERT INTO `kilometrage` (`car_id`, `date_releve`, `valeur`) VALUES
(1, '2026-04-20', 133000),
(1, '2026-04-20', 133200);
-- --------------------------------------------------------
--
-- Structure de la table `maintenance_logs`
--
DROP TABLE IF EXISTS `maintenance_logs`;
CREATE TABLE IF NOT EXISTS `maintenance_logs` (
`id` int NOT NULL AUTO_INCREMENT,
`car_id` int NOT NULL,
`type_entretien` varchar(100) NOT NULL,
`date_evenement` date NOT NULL,
`kilometrage` int NOT NULL,
`description` text,
`prix` decimal(10,2) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fk_car_id` (`car_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Déchargement des données de la table `maintenance_logs`
--
INSERT INTO `maintenance_logs` (`id`, `car_id`, `type_entretien`, `date_evenement`, `kilometrage`, `description`, `prix`) VALUES
(1, 1, 'Vidange', '2023-10-15', 145000, 'Huile 5W40 + Filtre à huile', 85.00),
(2, 1, 'Pneus', '2024-02-01', 152000, 'Changement pneus avant Michelin', 160.00);
-- --------------------------------------------------------
--
-- Structure de la table `notes`
--
DROP TABLE IF EXISTS `notes`;
CREATE TABLE IF NOT EXISTS `notes` (
`id` int NOT NULL AUTO_INCREMENT,
`car_id` int NOT NULL,
`titre` varchar(100) DEFAULT NULL,
`contenu` text NOT NULL,
`date_creation` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_notes_car_id` (`car_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Déchargement des données de la table `notes`
--
INSERT INTO `notes` (`id`, `car_id`, `titre`, `contenu`, `date_creation`) VALUES
(2, 1, 'Clé', 'Ne pas oublier de faire revenir légèrement la clé vers la gauche une fois démarrée', '2026-04-20 14:58:46'),
(3, 1, 'Batterie', 'Recharger la batterie', '2026-04-20 15:03:01');
--
-- Contraintes pour les tables déchargées
--
--
-- Contraintes pour la table `kilometrage`
--
ALTER TABLE `kilometrage`
ADD CONSTRAINT `fk_km_car_id` FOREIGN KEY (`car_id`) REFERENCES `cars` (`id`) ON DELETE CASCADE;
--
-- Contraintes pour la table `maintenance_logs`
--
ALTER TABLE `maintenance_logs`
ADD CONSTRAINT `fk_car_id` FOREIGN KEY (`car_id`) REFERENCES `cars` (`id`) ON DELETE CASCADE;
--
-- Contraintes pour la table `notes`
--
ALTER TABLE `notes`
ADD CONSTRAINT `fk_notes_car_id` FOREIGN KEY (`car_id`) REFERENCES `cars` (`id`) ON DELETE CASCADE;
--
-- Structure de la table `users`
--
DROP TABLE IF EXISTS `users`;
CREATE TABLE IF NOT EXISTS `users` (
`id` int NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(255) NOT NULL,
`nom` varchar(100) DEFAULT NULL,
`role` varchar(20) NOT NULL DEFAULT 'user',
`api_token` varchar(64) DEFAULT NULL,
`token_expires_at` datetime DEFAULT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_username` (`username`),
UNIQUE KEY `idx_api_token` (`api_token`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Déchargement des données de la table `users`
--
INSERT INTO `users` (`id`, `username`, `password`, `nom`, `role`, `api_token`) VALUES
(1, 'admin', '$2y$10$v0vjF8yL15gA1kXfA9q3hOb00Q0pM0N8dMh2pA7uT1VlqjXlZ9rKq', 'Administrateur', 'admin', 'admin-token-secret-12345'),
(2, 'user', '$2y$10$Q4M1s1Fk6vjF8yL15gA1kXfA9q3hOb00Q0pM0N8dMh2pA7uT1Vlqy', 'Utilisateur Standard', 'user', 'user-token-secret-67890');
2026-09-16 09:11:08 +00:00
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 */;