-- Script de création de la base de données pour la gestion des numéros
-- À exécuter sur le serveur MySQL/MariaDB du serveur WHMCS

-- Créer la base de données
CREATE DATABASE IF NOT EXISTS `numbers_inventory` 
    CHARACTER SET utf8mb4 
    COLLATE utf8mb4_unicode_ci;

USE `numbers_inventory`;

-- Table pour stocker les numéros
CREATE TABLE IF NOT EXISTS `numbers` (
    `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    `number` VARCHAR(20) NOT NULL COMMENT 'Numéro de téléphone (ex: 0612345678)',
    `type` ENUM('mobile', 'fixe') NOT NULL COMMENT 'Type de numéro',
    `status` ENUM('free', 'reserved', 'assigned') NOT NULL DEFAULT 'free' COMMENT 'Statut du numéro',
    `tenant` VARCHAR(255) DEFAULT NULL COMMENT 'Nom du tenant FusionPBX qui utilise ce numéro',
    `userid` INT(11) UNSIGNED DEFAULT NULL COMMENT 'ID client WHMCS',
    `orderid` INT(11) UNSIGNED DEFAULT NULL COMMENT 'ID commande WHMCS',
    `reserved_at` DATETIME DEFAULT NULL COMMENT 'Date de réservation',
    `assigned_at` DATETIME DEFAULT NULL COMMENT 'Date d''attribution définitive',
    `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `note` TEXT DEFAULT NULL COMMENT 'Note optionnelle',
    PRIMARY KEY (`id`),
    UNIQUE KEY `unique_number` (`number`),
    KEY `idx_status` (`status`),
    KEY `idx_type` (`type`),
    KEY `idx_tenant` (`tenant`),
    KEY `idx_userid` (`userid`),
    KEY `idx_orderid` (`orderid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci 
  COMMENT='Inventaire des numéros de téléphone disponibles';

-- Index pour recherche rapide des numéros libres
CREATE INDEX `idx_free_numbers` ON `numbers` (`status`, `type`);

