-- ============================================================
-- sql/dominios.sql — Tablas para gestión de dominios
-- Importar DESPUÉS de schema.sql
-- ============================================================

USE hosting_panel;

-- Extensiones disponibles con precios
CREATE TABLE IF NOT EXISTS extensiones_dominio (
    id INT AUTO_INCREMENT PRIMARY KEY,
    extension VARCHAR(20) NOT NULL UNIQUE,    -- .com, .net, .ec, etc.
    precio_registro DECIMAL(10,2) NOT NULL,
    precio_renovacion DECIMAL(10,2) NOT NULL,
    precio_transferencia DECIMAL(10,2) DEFAULT NULL,
    min_anos INT DEFAULT 1,
    max_anos INT DEFAULT 10,
    activo TINYINT(1) DEFAULT 1,
    descripcion VARCHAR(100),
    creado_en TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

-- Dominios registrados
CREATE TABLE IF NOT EXISTS dominios (
    id INT AUTO_INCREMENT PRIMARY KEY,
    usuario_id INT NOT NULL,
    dominio VARCHAR(255) NOT NULL UNIQUE,
    tipo ENUM('principal','addon','subdominio','externo') DEFAULT 'addon',
    estado ENUM('pendiente','activo','suspendido','vencido','cancelado','eliminado') DEFAULT 'pendiente',
    periodo_anos INT DEFAULT 1,
    fecha_registro TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    fecha_expiracion DATE NOT NULL,
    registrador VARCHAR(100) DEFAULT 'local',
    nameservers TEXT,
    ip_asignada VARCHAR(45),
    notas TEXT,
    renovacion_auto TINYINT(1) DEFAULT 1,
    FOREIGN KEY (usuario_id) REFERENCES usuarios(id) ON DELETE CASCADE
) ENGINE=InnoDB;

-- Historial de renovaciones y transacciones de dominios
CREATE TABLE IF NOT EXISTS dominios_historial (
    id INT AUTO_INCREMENT PRIMARY KEY,
    dominio_id INT NOT NULL,
    accion ENUM('registro','renovacion','transferencia','suspension','reactivacion') NOT NULL,
    anos INT DEFAULT 1,
    monto DECIMAL(10,2),
    referencia VARCHAR(100),
    notas TEXT,
    creado_en TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (dominio_id) REFERENCES dominios(id) ON DELETE CASCADE
) ENGINE=InnoDB;

-- ── Extensiones por defecto ──────────────────────────────────
INSERT IGNORE INTO extensiones_dominio (extension, precio_registro, precio_renovacion, descripcion) VALUES
('.com',    12.99, 14.99, 'Dominio comercial internacional'),
('.net',    14.99, 16.99, 'Infraestructura de red'),
('.org',    13.99, 15.99, 'Organizaciones'),
('.info',   11.99, 13.99, 'Información'),
('.ec',     25.00, 25.00, 'Dominio Ecuador - .ec'),
('.com.ec', 25.00, 25.00, 'Comercial Ecuador'),
('.net.ec', 25.00, 25.00, 'Red Ecuador'),
('.io',     49.99, 54.99, 'Tecnología / Startups'),
('.co',     29.99, 34.99, 'Colombia / Branding global'),
('.online', 9.99,  11.99, 'Presencia online'),
('.store',  14.99, 16.99, 'E-commerce'),
('.tech',   29.99, 34.99, 'Tecnología');
