-- Phase 7: Population-Based Logic

-- 1. Table: Poblacion INEI
CREATE TABLE IF NOT EXISTS poblacion_inei_2017 (
  ubigeo VARCHAR(6) PRIMARY KEY,
  tipo ENUM('provincia','distrito') NOT NULL,
  region_ubigeo VARCHAR(2) NOT NULL,
  provincia_ubigeo VARCHAR(4) NULL,
  nombre VARCHAR(150) NOT NULL,
  poblacion INT NOT NULL,
  fuente VARCHAR(255) NOT NULL DEFAULT 'INEI / CSV Usuario',
  url_fuente VARCHAR(255) NULL,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- 2. Table: Reglas Regidores
CREATE TABLE IF NOT EXISTS reglas_regidores (
  id INT AUTO_INCREMENT PRIMARY KEY,
  poblacion_min INT NOT NULL,
  poblacion_max INT NULL,
  regidores INT NOT NULL,
  fuente_normativa VARCHAR(255) NOT NULL,
  url_normativa VARCHAR(255) NULL
);

TRUNCATE TABLE reglas_regidores;
INSERT INTO reglas_regidores (poblacion_min, poblacion_max, regidores, fuente_normativa, url_normativa) VALUES
(0,       25000,   5,  'Resolución N.º 0913-2021-JNE (criterio poblacional)', 'https://busquedas.elperuano.pe/dispositivo/NL/2015666-1'),
(25001,   50000,   7,  'Resolución N.º 0913-2021-JNE (criterio poblacional)', 'https://busquedas.elperuano.pe/dispositivo/NL/2015666-1'),
(50001,  100000,   9,  'Resolución N.º 0913-2021-JNE (criterio poblacional)', 'https://busquedas.elperuano.pe/dispositivo/NL/2015666-1'),
(100001, 300000,  11,  'Resolución N.º 0913-2021-JNE (criterio poblacional)', 'https://busquedas.elperuano.pe/dispositivo/NL/2015666-1'),
(300001, 500000,  13,  'Resolución N.º 0913-2021-JNE (criterio poblacional)', 'https://busquedas.elperuano.pe/dispositivo/NL/2015666-1'),
(500001,1500000,  15,  'Resolución N.º 0913-2021-JNE (criterio poblacional)', 'https://busquedas.elperuano.pe/dispositivo/NL/2015666-1'),
(1500001, NULL,   15,  'Resolución N.º 0913-2021-JNE (criterio poblacional)', 'https://busquedas.elperuano.pe/dispositivo/NL/2015666-1');

-- 3. Update Settings Table if needed (User asked for cuota_joven config)
-- Check if columns exist first or just recreate table simpler for MVP dev
-- For safety in this environment, I'll Alter.
ALTER TABLE settings ADD COLUMN IF NOT EXISTS cuota_joven DECIMAL(5,2) NOT NULL DEFAULT 0.20;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS joven_min INT NOT NULL DEFAULT 18;
ALTER TABLE settings ADD COLUMN IF NOT EXISTS joven_max INT NOT NULL DEFAULT 29;
