-- Création de la table "utilisateurs"
CREATE TABLE IF NOT EXISTS `utilisateurs` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `prenom` VARCHAR(100) NOT NULL,
  `nom` VARCHAR(100) NOT NULL,
  `email` VARCHAR(255) NOT NULL UNIQUE,
  `mot_de_passe` VARCHAR(255) NOT NULL,
  `token_reset` VARCHAR(255) DEFAULT NULL,
  `token_expires` DATETIME DEFAULT NULL,
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `deleted_at` DATETIME DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Création de la table "pays"
CREATE TABLE IF NOT EXISTS `pays` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `nom` VARCHAR(100) NOT NULL,
  `code` VARCHAR(5) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Création de la table "adresses"
CREATE TABLE IF NOT EXISTS `adresses` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `utilisateur_id` INT(11) NOT NULL,
  `type` ENUM('facturation','livraison') NOT NULL DEFAULT 'livraison',
  `label` VARCHAR(100) DEFAULT NULL,
  `adresse_ligne1` VARCHAR(255) NOT NULL,
  `adresse_ligne2` VARCHAR(255) DEFAULT NULL,
  `code_postal` VARCHAR(20) NOT NULL,
  `ville` VARCHAR(100) NOT NULL,
  `pays_id` INT(11) NOT NULL,
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `deleted_at` DATETIME DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_adresses_utilisateur` (`utilisateur_id`),
  KEY `fk_adresses_pays` (`pays_id`),
  CONSTRAINT `fk_adresses_utilisateur` FOREIGN KEY (`utilisateur_id`) REFERENCES `utilisateurs` (`id`) ON DELETE CASCADE,
  CONSTRAINT `fk_adresses_pays` FOREIGN KEY (`pays_id`) REFERENCES `pays` (`id`) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
