CREATE DATABASE IF NOT EXISTS solprimc_bosca_directorio CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE solprimc_bosca_directorio;

SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS slide_extra_data;
DROP TABLE IF EXISTS contingencias;
DROP TABLE IF EXISTS deuda;
DROP TABLE IF EXISTS users;
DROP TABLE IF EXISTS slides;
DROP TABLE IF EXISTS EERR;
DROP TABLE IF EXISTS BALANCE;
DROP TABLE IF EXISTS PLAN;
DROP TABLE IF EXISTS SEGMENTOS;
SET FOREIGN_KEY_CHECKS = 1;

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  email VARCHAR(190) NOT NULL UNIQUE,
  name VARCHAR(190) NOT NULL,
  password_hash VARCHAR(255) NOT NULL,
  role ENUM('admin','user') NOT NULL DEFAULT 'user',
  active TINYINT(1) NOT NULL DEFAULT 1,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE slides (
  id INT AUTO_INCREMENT PRIMARY KEY,
  slide_no INT NOT NULL UNIQUE,
  title VARCHAR(255) NOT NULL,
  content LONGTEXT NULL,
  links_json JSON NULL,
  source_type ENUM('informativa','eerr','balance','deuda','contingencias','extra') NOT NULL DEFAULT 'informativa',
  active TINYINT(1) NOT NULL DEFAULT 1,
  hidden TINYINT(1) NOT NULL DEFAULT 0,
  sort_order INT NOT NULL DEFAULT 0,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Formato idéntico al Excel EERR.xlsx: ORIGEN, CODSUBCTA, CODCCO, CODARE, CODLOC, CODCCL, PERIODO, MES, QTY, MONTO.
CREATE TABLE EERR (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  ORIGEN VARCHAR(20) NOT NULL,
  CODSUBCTA VARCHAR(30) NOT NULL,
  CODCCO VARCHAR(30) NULL,
  CODARE VARCHAR(30) NULL,
  CODLOC VARCHAR(30) NULL,
  CODCCL VARCHAR(30) NULL,
  PERIODO INT NOT NULL,
  MES TINYINT NOT NULL,
  QTY DECIMAL(18,4) NOT NULL DEFAULT 0,
  MONTO DECIMAL(18,2) NOT NULL DEFAULT 0,
  INDEX idx_eerr_periodo_mes (PERIODO, MES),
  INDEX idx_eerr_origen (ORIGEN),
  INDEX idx_eerr_codsubcta (CODSUBCTA),
  INDEX idx_eerr_segmentos (CODCCO, CODARE, CODLOC, CODCCL)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Formato idéntico al Excel BALANCE.xlsx: ORIGEN, CODCTA, NOMCTA, CODSUBCTA, NOMSUBCTA, CODCCO, CODARE, CODLOC, CODCCL, PERIODO, MES, MONTO.
CREATE TABLE BALANCE (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  ORIGEN VARCHAR(20) NOT NULL,
  CODCTA VARCHAR(30) NOT NULL,
  NOMCTA VARCHAR(255) NULL,
  CODSUBCTA VARCHAR(30) NOT NULL,
  NOMSUBCTA VARCHAR(255) NULL,
  CODCCO VARCHAR(30) NULL,
  CODARE VARCHAR(30) NULL,
  CODLOC VARCHAR(30) NULL,
  CODCCL VARCHAR(30) NULL,
  PERIODO INT NOT NULL,
  MES TINYINT NOT NULL,
  MONTO DECIMAL(18,2) NOT NULL DEFAULT 0,
  INDEX idx_balance_periodo_mes (PERIODO, MES),
  INDEX idx_balance_codcta (CODCTA),
  INDEX idx_balance_codsubcta (CODSUBCTA)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Formato idéntico al Excel PLAN.xlsx.
CREATE TABLE PLAN (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  PERIODO INT NOT NULL,
  CODSUBCTA VARCHAR(30) NOT NULL,
  NOMSUBCTA VARCHAR(255) NULL,
  CODCTA VARCHAR(30) NULL,
  NOMCTA VARCHAR(255) NULL,
  TIPCTA INT NULL,
  NOMTIPCTA VARCHAR(120) NULL,
  CODABUCTA VARCHAR(30) NULL,
  NOMABUCTA VARCHAR(255) NULL,
  CODPADCTA VARCHAR(30) NULL,
  NOMPADCTA VARCHAR(255) NULL,
  INDEX idx_plan_periodo (PERIODO),
  INDEX idx_plan_codsubcta (CODSUBCTA),
  INDEX idx_plan_tipcta (TIPCTA),
  INDEX idx_plan_codcta (CODCTA)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Formato idéntico al Excel SEGMENTOS.xlsx.
CREATE TABLE SEGMENTOS (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  PERIODO INT NOT NULL,
  TIPO VARCHAR(120) NOT NULL,
  CODIGO_OCR VARCHAR(30) NOT NULL,
  NOMBRE_OCR VARCHAR(255) NOT NULL,
  INDEX idx_segmentos_periodo (PERIODO),
  INDEX idx_segmentos_tipo (TIPO),
  INDEX idx_segmentos_codigo (CODIGO_OCR)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE deuda (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  periodo CHAR(7) NOT NULL,
  cuenta VARCHAR(255) NOT NULL,
  monto_2021 DECIMAL(18,2) DEFAULT 0,
  monto_2022 DECIMAL(18,2) DEFAULT 0,
  monto_2023 DECIMAL(18,2) DEFAULT 0,
  monto_2024 DECIMAL(18,2) DEFAULT 0,
  monto_2025 DECIMAL(18,2) DEFAULT 0,
  monto_periodo DECIMAL(18,2) DEFAULT 0,
  tasa VARCHAR(60) NULL,
  orden INT NOT NULL DEFAULT 0,
  INDEX idx_deuda_periodo (periodo)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE contingencias (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  periodo CHAR(7) NOT NULL,
  slide_no INT NOT NULL,
  abogado VARCHAR(190) NULL,
  rit_rol VARCHAR(190) NULL,
  jurisdiccion VARCHAR(190) NULL,
  lugar VARCHAR(120) NULL,
  materia TEXT NULL,
  origen TEXT NULL,
  estado TEXT NULL,
  cuantia VARCHAR(190) NULL,
  orden INT NOT NULL DEFAULT 0,
  INDEX idx_cont_periodo_slide (periodo, slide_no)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE slide_extra_data (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  periodo CHAR(7) NOT NULL,
  slide_no INT NOT NULL,
  titulo VARCHAR(255) NULL,
  columna_1 TEXT NULL,
  columna_2 TEXT NULL,
  columna_3 TEXT NULL,
  columna_4 TEXT NULL,
  columna_5 TEXT NULL,
  columna_6 TEXT NULL,
  columna_7 TEXT NULL,
  columna_8 TEXT NULL,
  orden INT NOT NULL DEFAULT 0,
  INDEX idx_extra_periodo_slide (periodo, slide_no)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO users (email,name,password_hash,role,active) VALUES
('cviveros@solprim.cl','Cristian Viveros','$2y$12$iFp8Q2YNRFo6NSOgbB6RAO.Rh8kWxzGfgGsCZjBhNisXwgbfcVtEa','admin',1);

INSERT INTO slides (slide_no,title,content,links_json,source_type,active,hidden,sort_order) VALUES
(1,'Informes al 31 de Marzo 2026','Informes al 31 de Marzo 2026

Comité Bosca 07 de mayo 2026','[]','informativa',1,0,1),
(2,'Índice','Índice
Informe de Gestión Marzo 2026
Participación por producto Marzo 2026 
Informe de Ventas Marzo 2026
Balance a Marzo 2026
Estructura de Deuda a Marzo 2026 
Flujo de caja Marzo 2026
Informe Juicios y Contingencias','[]','informativa',1,0,2),
(3,'Informe Gestión a Marzo 2026','Informe Gestión a Marzo 2026','[]','eerr',1,0,3),
(4,'Participación por Producto','Participación por Producto
Marzo 2026','[]','eerr',1,0,4),
(5,'Informe Venta','Informe Venta 
Total Sucursales
Marzo 2026','[]','eerr',1,0,5),
(6,'Informe Venta - Sucursales','Informe Venta - Sucursales
Región Metropolitana
Marzo 2026','[]','eerr',1,0,6),
(7,'Informe Venta - Sucursales','Informe Venta - Sucursales
Zona Centro
Marzo 2026','[]','eerr',1,0,7),
(8,'Informe Venta – Sucursales','Informe Venta – Sucursales 
Zona Sur
Marzo 2026','[]','eerr',1,0,8),
(9,'Informe Venta – Sucursales','Informe Venta – Sucursales 
Zona Sur
Marzo 2026','[]','eerr',1,0,9),
(10,'Informe Venta - Distribuidores','Informe Venta - Distribuidores
Marzo 2026','[]','eerr',1,0,10),
(11,'Informe Venta','Informe Venta 
Otros Canales de Venta Internos
Marzo 2026','[]','eerr',1,0,11),
(12,'Informe Venta','Informe Venta
Canales Digitales
Marzo 2026','[]','eerr',1,0,12),
(13,'Estructura de Deuda a Marzo 2026 (M$)','Estructura de Deuda a Marzo 2026 (M$)','[]','balance',1,0,13),
(14,'Balances Diciembre 2021 -2025 y Marzo 2026','Balances Diciembre 2021 -2025 y Marzo 2026','[]','balance',1,0,14),
(15,'Informe Juicios y Contingencias','Informe Juicios y Contingencias
Marzo 2026','[]','contingencias',1,0,15),
(16,'Informe Juicios y Contingencias','Informe Juicios y Contingencias
Marzo 2026','[]','contingencias',1,0,16),
(17,'Informe Juicios y Contingencias','Informe Juicios y Contingencias
Marzo 2026','[]','contingencias',1,0,17),
(18,'Informes al 31 de Marzo 2026','Informes al 31 de Marzo 2026','[]','informativa',1,0,18),
(19,'Ingresos y Costos','Ingresos y Costos 
por Ventas
Mes y Acumulado 
Marzo 2026','["slide3.xml"]','eerr',1,0,19),
(20,'Informe Venta','Informe Venta 
Total Sucursales
Marzo 2025-2026','[]','eerr',1,0,20),
(21,'Informe Venta - Sucursales','Informe Venta - Sucursales
Región Metropolitana y Zona Centro
Marzo 2025-2026','[]','eerr',1,0,21),
(22,'Informe Venta - Sucursales','Informe Venta - Sucursales
Zona Sur
Marzo 2025-2026','[]','eerr',1,0,22),
(23,'Informe Venta – Sucursales','Informe Venta – Sucursales 
Zona Sur
Marzo 2026','[]','eerr',1,0,23),
(24,'Informe Venta – Sucursales','Informe Venta – Sucursales 
Zona Sur
Marzo 2026','[]','eerr',1,0,24),
(25,'Gastos Gerencia Operaciones','Gastos Gerencia Operaciones
Inf Gestión Marzo 2026','["slide3.xml"]','eerr',1,0,25),
(26,'Gastos Gerencia Operaciones - Gerencia','Gastos Gerencia Operaciones - Gerencia
Inf Gestión Marzo 2026','["slide25.xml"]','eerr',1,0,26),
(27,'Gastos Gerencia Operaciones - Abastecimiento','Gastos Gerencia Operaciones - Abastecimiento
Inf Gestión Marzo 2026','["slide25.xml"]','eerr',1,0,27),
(28,'Gastos Gerencia Operaciones - Producción','Gastos Gerencia Operaciones - Producción
Inf Gestión Marzo 2026','["slide25.xml"]','eerr',1,0,28),
(29,'Gastos Gerencia Operaciones - Bodega MP','Gastos Gerencia Operaciones - Bodega MP
Inf Gestión Marzo 2026','["slide25.xml"]','eerr',1,0,29),
(30,'Gastos Gerencia Comercial','Gastos Gerencia Comercial 
 Inf Gestión Marzo 2026','["slide3.xml"]','eerr',1,0,30),
(31,'Gastos Gerencia Comercial - Gerencia','Gastos Gerencia Comercial - Gerencia
Inf Gestión Marzo 2026','["slide30.xml"]','eerr',1,0,31),
(32,'Gastos Gerencia Comercial - Sucursales','Gastos Gerencia Comercial - Sucursales
Inf Gestión Marzo 2026','["slide30.xml"]','eerr',1,0,32),
(33,'Gastos Gerencia Comercial – Distribuidores','Gastos Gerencia Comercial – Distribuidores
Inf Gestión Marzo 2026','["slide30.xml"]','eerr',1,0,33),
(34,'Gastos Gerencia Comercial - Servicios','Gastos Gerencia Comercial - Servicios
Inf Gestión Marzo 2026','["slide30.xml"]','eerr',1,0,34),
(35,'Gastos Gerencia Comercial – Otros Canales','Gastos Gerencia Comercial – Otros Canales
Inf Gestión Marzo 2026','["slide30.xml"]','eerr',1,0,35),
(36,'Gastos Gerencia Comercial – Compras Institucionales','Gastos Gerencia Comercial – Compras Institucionales 
Inf Gestión Marzo 2026','["slide30.xml"]','eerr',1,0,36),
(37,'Gastos Gerencia Comercial – Venta Web','Gastos Gerencia Comercial – Venta Web 
Inf Gestión Marzo 2026','["slide30.xml"]','eerr',1,0,37),
(38,'Gastos Gerencia Comercial – MktPlace','Gastos Gerencia Comercial – MktPlace
Inf Gestión Marzo 2026','["slide30.xml"]','eerr',1,0,38),
(39,'Gastos Gerencia Comercial – Logistica y Distribución','Gastos Gerencia Comercial – Logistica y Distribución
Inf Gestión Marzo 2026','["slide30.xml"]','eerr',1,0,39),
(40,'Gastos Gerencia Comercial – Exportaciones','Gastos Gerencia Comercial – Exportaciones
Inf Gestión Marzo 2026','["slide30.xml"]','eerr',1,0,40),
(41,'Gastos Gerencia Administración y Finanzas','Gastos Gerencia Administración y Finanzas
Inf Gestión Marzo 2026','["slide3.xml"]','eerr',1,0,41),
(42,'Gastos Gerencia Adm y Fin - Gerencia','Gastos Gerencia Adm y Fin - Gerencia
Inf Gestión Marzo 2026','["slide41.xml"]','eerr',1,0,42),
(43,'Gastos Gerencia Adm y Fin - Finanzas y Contabilidad','Gastos Gerencia Adm y Fin - Finanzas y Contabilidad
Inf Gestión Marzo 2026','["slide41.xml"]','eerr',1,0,43),
(44,'Gastos Gerencia Adm y Fin - RRHH e Informática','Gastos Gerencia Adm y Fin - RRHH e Informática
Inf Gestión Marzo 2026','["slide41.xml"]','eerr',1,0,44),
(45,'Gastos Gerencia Desarrollo','Gastos Gerencia Desarrollo
Inf Gestión Marzo 2026','["slide3.xml"]','eerr',1,0,45),
(46,'Gastos Gerencia Desarrollo','Gastos Gerencia Desarrollo
Gerencia – Laboratorio – Diseño - Taller
Inf Gestión Marzo 2026','["slide45.xml"]','eerr',1,0,46),
(47,'Jefatura Mantención e Infraestructura','Jefatura Mantención e Infraestructura
Inf Gestión Marzo 2026','["slide3.xml"]','eerr',1,0,47),
(48,'Jefatura Mantención e Infraestructura','Jefatura Mantención e Infraestructura
Jefatura-Mantención-Aseo
Inf Gestión Marzo 2026','["slide47.xml"]','eerr',1,0,48),
(49,'Ingresos y Egresos','Ingresos y Egresos 
Fuera de la Explotación
Marzo 2026','["slide3.xml"]','eerr',1,0,49),
(50,'Activo Circulante','Activo Circulante
Balance Marzo 2026','["slide14.xml"]','balance',1,0,50),
(51,'Activo Fijo','Activo Fijo
Balance Marzo 2026','["slide14.xml"]','balance',1,0,51),
(52,'Otros Activos','Otros Activos
Balance Marzo 2026','["slide14.xml"]','balance',1,0,52),
(53,'Pasivo Circulante','Pasivo Circulante
Balance Marzo 2026','["slide14.xml"]','balance',1,0,53),
(54,'Pasivo a Largo Plazo','Pasivo a Largo Plazo
Balance Marzo 2026','["slide14.xml"]','balance',1,0,54),
(55,'Patrimonio','Patrimonio
Balance Marzo 2026','["slide14.xml"]','balance',1,0,55);
