-- Migration pour ajouter la table sectors_adresses
-- Cette table stocke les adresses associées à chaque secteur

CREATE TABLE IF NOT EXISTS `sectors_adresses` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fk_sector` int(11) NOT NULL,
  `fk_address` bigint(20) NOT NULL COMMENT 'ID de l''adresse dans la base adresses',
  `numero` varchar(10) DEFAULT NULL,
  `voie` varchar(255) DEFAULT NULL,
  `code_postal` varchar(5) DEFAULT NULL,
  `commune` varchar(100) DEFAULT NULL,
  `latitude` decimal(10,8) NOT NULL,
  `longitude` decimal(11,8) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_sector` (`fk_sector`),
  KEY `idx_address` (`fk_address`),
  KEY `idx_code_postal` (`code_postal`),
  KEY `idx_commune` (`commune`),
  KEY `idx_coords` (`latitude`, `longitude`),
  CONSTRAINT `fk_sectors_adresses_sector` FOREIGN KEY (`fk_sector`) REFERENCES `ope_sectors` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Index pour améliorer les performances des requêtes géographiques
CREATE INDEX idx_sectors_adresses_geo ON sectors_adresses (fk_sector, latitude, longitude);

-- Commentaire sur la table
ALTER TABLE `sectors_adresses` 
COMMENT = 'Table de liaison entre les secteurs et les adresses géographiques contenues dans leurs périmètres';