-- phpMyAdmin SQL Dump
-- version 4.6.6deb4+deb9u2
-- https://www.phpmyadmin.net/
--
-- Client :  localhost:3306
-- Généré le :  Ven 14 Avril 2023 à 12:29
-- Version du serveur :  10.1.48-MariaDB-0+deb9u2
-- Version de PHP :  7.0.33-0+deb9u12

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
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 :  `eastmaster`
--

DELIMITER $$
--
-- Procédures
--
CREATE DEFINER=`prof1234`@`localhost` PROCEDURE `enregistreBoisson` (IN `nomboisson` VARCHAR(50), IN `prixboisson` INT)  INSERT INTO boisson (boisson.nomboisson, boisson.prixboisson) VALUES (nomboisson, prixboisson)$$

CREATE DEFINER=`prof1234`@`localhost` PROCEDURE `enregistreCommande` (IN `nomentree` VARCHAR(50), IN `prixentree` DOUBLE, IN `nomplat` VARCHAR(50), IN `prixplat` DOUBLE, IN `nomdessert` VARCHAR(50), IN `prixdessert` DOUBLE, IN `nomboisson` VARCHAR(50), IN `prixboisson` DOUBLE, IN `numeroentree` INT(11), IN `numeroplat` INT(11), IN `numerodessert` INT(11), IN `numeroboisson` INT(11))  INSERT INTO reservation (numeroentree, numeroplat, numerodessert, numeroboisson) VALUES (
    (SELECT numeroentree FROM entree WHERE entree.nomentree = nomentree AND entree.prixentree = prixentree), 
    (SELECT numeroplat FROM plat WHERE plat.nomplat = nomplat AND plat.prixplat = prixplat), 
    (SELECT numerodessert FROM dessert WHERE dessert.nomdessert = nomdessert AND dessert.prixdessert = prixdessert), 
    (SELECT numeroboisson FROM boisson WHERE boisson.nomboisson = nomboisson AND boisson.prixboisson = prixboisson)
)$$

CREATE DEFINER=`prof1234`@`localhost` PROCEDURE `enregistreDessert` (IN `nomdessert` VARCHAR(50), IN `prixdessert` DOUBLE)  INSERT INTO dessert (dessert.nomdessert, dessert.prixdessert) VALUES (nomdessert, prixdessert)$$

CREATE DEFINER=`prof1234`@`localhost` PROCEDURE `enregistreEntree` (IN `nomentree` VARCHAR(50), IN `prixentree` VARCHAR(50))  INSERT INTO entree (entree.nomentree, entree.prixentree) VALUES (nomentree, prixentree)$$

CREATE DEFINER=`prof1234`@`localhost` PROCEDURE `enregistrePlat` (IN `nomplat` VARCHAR(50), IN `prixplat` DOUBLE)  INSERT INTO plat (plat.nomplat, plat.prixplat) VALUES (nomplat, prixplat)$$

CREATE DEFINER=`prof1234`@`localhost` PROCEDURE `enregistreReserv` (IN `nom` VARCHAR(50), IN `prenom` VARCHAR(50), IN `email` VARCHAR(50), IN `type_chambre` VARCHAR(50), IN `date_arrivee` DATE, IN `date_depart` DATE)  NO SQL
BEGIN
    
    BEGIN
        INSERT INTO chambre (chambre.typechambre) 
        VALUES (type_chambre);
    END;

    BEGIN
        INSERT INTO reservchambre (reservchambre.datedeb, reservchambre.datefin) 
        VALUES (date_depart, date_arrivee);
    END;

    BEGIN
        INSERT INTO client (client.nom, client.prenom, client.email) 
        VALUES (nom, prenom, email);
    END;
    
    BEGIN
        INSERT INTO reservchambre (reservchambre.numerochambre) 
        VALUES ((SELECT id FROM chambre WHERE chambre.typechambre = type_chambre));
    END;
   
    BEGIN
        INSERT INTO reservchambre (reservchambre.numeroclient) 
        VALUES ((SELECT id FROM client WHERE client.email = email
                AND client.nom = nom
                AND client.prenom = prenom));
    END;
    
END$$

CREATE DEFINER=`prof1234`@`localhost` PROCEDURE `listeRemise` ()  NO SQL
SELECT * FROM remise$$

CREATE DEFINER=`prof1234`@`localhost` PROCEDURE `recupChambres` (IN `type_chambre` VARCHAR(50), IN `date_arrivee` DATE, IN `date_depart` DATE, OUT `nb_chambres` INT)  SELECT COUNT(*) as nb_chambres
FROM chambre
INNER JOIN reservchambre
ON chambre.id = reservchambre.numerochambre
WHERE chambre.typechambre = type_chambre
        AND ((reservchambre.datedeb <= date_arrivee AND reservchambre.datefin > date_arrivee)
        OR (reservchambre.datedeb >= date_arrivee AND reservchambre.datefin < date_depart))$$

DELIMITER ;

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

--
-- Structure de la table `boisson`
--

CREATE TABLE `boisson` (
  `numeroboisson` int(11) NOT NULL,
  `nomboisson` varchar(255) NOT NULL,
  `prixboisson` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Contenu de la table `boisson`
--

INSERT INTO `boisson` (`numeroboisson`, `nomboisson`, `prixboisson`) VALUES
(1, 'Boisson n°1', 3.83),
(2, 'Boisson n°2', 1.12);

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

--
-- Structure de la table `chambre`
--

CREATE TABLE `chambre` (
  `id` int(11) NOT NULL,
  `typechambre` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Contenu de la table `chambre`
--

INSERT INTO `chambre` (`id`, `typechambre`) VALUES
(23, 'Suite'),
(24, ''),
(25, ''),
(26, 'suite'),
(27, 'suite'),
(28, 'suite');

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

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

CREATE TABLE `client` (
  `nom` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `prenom` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Contenu de la table `client`
--

INSERT INTO `client` (`nom`, `prenom`, `email`, `id`) VALUES
('palaref', 'michel', 'jesuisperdu@lost.ou', 1),
('sparrow', 'jack', 'jack.sparrow@black.pearl', 2),
('p', 'p', 'p@p.p', 10),
('j', 'l', 'lp@lp', 11),
('j', 'l', 'lp@lp', 12),
('o', 'o', 'o@o', 13);

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

--
-- Structure de la table `dessert`
--

CREATE TABLE `dessert` (
  `numerodessert` int(11) NOT NULL,
  `nomdessert` varchar(255) NOT NULL,
  `prixdessert` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Contenu de la table `dessert`
--

INSERT INTO `dessert` (`numerodessert`, `nomdessert`, `prixdessert`) VALUES
(1, 'Dessert n°1', 2.5),
(2, 'Dessert n°2', 3.99);

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

--
-- Structure de la table `entree`
--

CREATE TABLE `entree` (
  `numeroentree` int(11) NOT NULL,
  `nomentree` varchar(255) NOT NULL,
  `prixentree` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Contenu de la table `entree`
--

INSERT INTO `entree` (`numeroentree`, `nomentree`, `prixentree`) VALUES
(1, 'Entree n°1', 6.5),
(2, 'Entrée n°2', 6.3),
(3, 'ntree', 14);

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

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

CREATE TABLE `facture` (
  `numerofacture` int(11) NOT NULL,
  `montant` double DEFAULT NULL,
  `destinataire` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

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

--
-- Structure de la table `plat`
--

CREATE TABLE `plat` (
  `numeroplat` int(11) NOT NULL,
  `nomplat` varchar(255) NOT NULL,
  `prixplat` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Contenu de la table `plat`
--

INSERT INTO `plat` (`numeroplat`, `nomplat`, `prixplat`) VALUES
(1, 'Plat n°1', 19.5),
(2, 'Plat n°2', 15.75);

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

--
-- Structure de la table `remise`
--

CREATE TABLE `remise` (
  `id` int(11) NOT NULL,
  `min` int(11) NOT NULL,
  `max` int(11) NOT NULL,
  `taux` float NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Contenu de la table `remise`
--

INSERT INTO `remise` (`id`, `min`, `max`, `taux`) VALUES
(1, 5, 10, 0.6),
(2, 10, 500, 0.1);

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

--
-- Structure de la table `reservation`
--

CREATE TABLE `reservation` (
  `numerotable` int(11) NOT NULL,
  `numeroentree` int(11) NOT NULL,
  `numeroplat` int(11) NOT NULL,
  `numerodessert` int(11) NOT NULL,
  `numeroboisson` int(11) NOT NULL,
  `nbpersonne` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

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

--
-- Structure de la table `reservchambre`
--

CREATE TABLE `reservchambre` (
  `datedeb` date DEFAULT NULL,
  `datefin` date DEFAULT NULL,
  `numeroclient` int(11) DEFAULT NULL,
  `numerochambre` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Contenu de la table `reservchambre`
--

INSERT INTO `reservchambre` (`datedeb`, `datefin`, `numeroclient`, `numerochambre`) VALUES
('2024-01-07', '2023-02-02', NULL, NULL),
('2024-01-07', '2023-02-02', NULL, NULL),
('2024-01-07', '2023-02-02', NULL, NULL),
('2024-01-07', '2023-02-02', NULL, NULL),
('2024-01-07', '2023-02-02', NULL, NULL),
('2024-01-07', '2023-02-02', NULL, NULL),
(NULL, NULL, NULL, 23),
('2024-01-07', '2023-02-02', NULL, NULL),
('2024-06-23', '2023-03-05', NULL, NULL),
(NULL, NULL, NULL, 25),
(NULL, NULL, 10, NULL),
('2002-02-02', '2001-01-01', NULL, NULL),
('2002-02-02', '2001-01-01', NULL, NULL),
('2002-02-02', '2001-01-01', NULL, NULL);

--
-- Index pour les tables exportées
--

--
-- Index pour la table `boisson`
--
ALTER TABLE `boisson`
  ADD PRIMARY KEY (`numeroboisson`);

--
-- Index pour la table `chambre`
--
ALTER TABLE `chambre`
  ADD PRIMARY KEY (`id`);

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

--
-- Index pour la table `dessert`
--
ALTER TABLE `dessert`
  ADD PRIMARY KEY (`numerodessert`);

--
-- Index pour la table `entree`
--
ALTER TABLE `entree`
  ADD PRIMARY KEY (`numeroentree`);

--
-- Index pour la table `facture`
--
ALTER TABLE `facture`
  ADD PRIMARY KEY (`numerofacture`);

--
-- Index pour la table `plat`
--
ALTER TABLE `plat`
  ADD PRIMARY KEY (`numeroplat`);

--
-- Index pour la table `remise`
--
ALTER TABLE `remise`
  ADD PRIMARY KEY (`id`),
  ADD KEY `id` (`id`);

--
-- Index pour la table `reservation`
--
ALTER TABLE `reservation`
  ADD PRIMARY KEY (`numerotable`),
  ADD KEY `numeroentree` (`numeroentree`),
  ADD KEY `numeroplat` (`numeroplat`),
  ADD KEY `numerodessert` (`numerodessert`),
  ADD KEY `numeroboisson` (`numeroboisson`) USING BTREE;

--
-- Index pour la table `reservchambre`
--
ALTER TABLE `reservchambre`
  ADD KEY `idclient` (`numeroclient`) USING BTREE,
  ADD KEY `idchambre` (`numerochambre`) USING BTREE;

--
-- AUTO_INCREMENT pour les tables exportées
--

--
-- AUTO_INCREMENT pour la table `boisson`
--
ALTER TABLE `boisson`
  MODIFY `numeroboisson` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
--
-- AUTO_INCREMENT pour la table `chambre`
--
ALTER TABLE `chambre`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=29;
--
-- AUTO_INCREMENT pour la table `client`
--
ALTER TABLE `client`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14;
--
-- AUTO_INCREMENT pour la table `dessert`
--
ALTER TABLE `dessert`
  MODIFY `numerodessert` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
--
-- AUTO_INCREMENT pour la table `entree`
--
ALTER TABLE `entree`
  MODIFY `numeroentree` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
--
-- AUTO_INCREMENT pour la table `facture`
--
ALTER TABLE `facture`
  MODIFY `numerofacture` int(11) NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT pour la table `plat`
--
ALTER TABLE `plat`
  MODIFY `numeroplat` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
--
-- AUTO_INCREMENT pour la table `remise`
--
ALTER TABLE `remise`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
--
-- Contraintes pour les tables exportées
--

--
-- Contraintes pour la table `reservation`
--
ALTER TABLE `reservation`
  ADD CONSTRAINT `reservation_ibfk_1` FOREIGN KEY (`numerodessert`) REFERENCES `dessert` (`numerodessert`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `reservation_ibfk_2` FOREIGN KEY (`numeroentree`) REFERENCES `entree` (`numeroentree`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `reservation_ibfk_3` FOREIGN KEY (`numeroboisson`) REFERENCES `boisson` (`numeroboisson`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `reservation_ibfk_4` FOREIGN KEY (`numeroplat`) REFERENCES `plat` (`numeroplat`) ON DELETE NO ACTION ON UPDATE NO ACTION;

--
-- Contraintes pour la table `reservchambre`
--
ALTER TABLE `reservchambre`
  ADD CONSTRAINT `reservchambre_ibfk_1` FOREIGN KEY (`numeroclient`) REFERENCES `client` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `reservchambre_ibfk_2` FOREIGN KEY (`numerochambre`) REFERENCES `chambre` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;

/*!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 */;
