-- =============================================================================
-- MIGRACIONES PENDIENTES DE APLICAR EN PRODUCCIÓN (159.203.75.55)
-- =============================================================================
-- Este archivo acumula los cambios de schema que ya se aplicaron en DESARROLLO
-- y están esperando ser aplicados en PRODUCCIÓN en el próximo deploy.
--
-- Convenciones:
--   - Cada bloque empieza con un comentario: fecha + descripción + base afectada
--   - Siempre envolver con SET SESSION sql_mode = '' ... y restaurar al final
--   - Una vez aplicado en prod, mover el bloque al final (sección APLICADAS)
--     con la fecha real de aplicación, o eliminarlo.
--
-- Bases:
--   c2070042_distri    → módulo distribuidora
--   c2070042_hsj       → web pública / usuarios internos
--   c2070042_cerraje   → módulo cerrajería
--
-- Cómo ejecutar en prod (desde WSL con clave SSH configurada):
--   scp sql/migraciones_pendientes_prod.sql root@159.203.75.55:/tmp/
--   ssh root@159.203.75.55 "mysql -uroot -p'PASS' < /tmp/migraciones_pendientes_prod.sql"
-- =============================================================================


-- -----------------------------------------------------------------------------
-- (sin migraciones pendientes)
-- -----------------------------------------------------------------------------


-- =============================================================================
-- APLICADAS EN PRODUCCIÓN (histórico)
-- =============================================================================

-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-15] [2026-05-15] Campo bonificación por cliente
-- Base: c2070042_distri
-- Relacionado: modal_cliente.php, ClientesDao.php, cliente.class.php,
--   scripts-clientes.js, Cliente.js — bonificación por defecto al facturar.
-- Nota: el MySQL de los droplets no soporta ADD COLUMN IF NOT EXISTS;
--   se aplicó con ALTER TABLE simple previa verificación en information_schema.
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

ALTER TABLE clientes ADD COLUMN bonificacion INT NOT NULL DEFAULT 0;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-05-08] Índices para búsqueda de pedidos en panel pedidos
-- Base: c2070042_distri
-- Relacionado: distribuidora/api_rest/daos/pedidosDao.php (getPedidosBasicPaginado)
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

SET @s := IF(
  (SELECT COUNT(*) FROM information_schema.statistics
     WHERE table_schema = DATABASE()
       AND table_name = 'pedidos'
       AND index_name = 'idx_pedidos_id_cliente') = 0,
  'ALTER TABLE pedidos ADD INDEX idx_pedidos_id_cliente (id_cliente)',
  'SELECT 1');
PREPARE stmt FROM @s; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @s := IF(
  (SELECT COUNT(*) FROM information_schema.statistics
     WHERE table_schema = DATABASE()
       AND table_name = 'pedidos'
       AND index_name = 'idx_pedidos_id_estado') = 0,
  'ALTER TABLE pedidos ADD INDEX idx_pedidos_id_estado (id_estado)',
  'SELECT 1');
PREPARE stmt FROM @s; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @s := IF(
  (SELECT COUNT(*) FROM information_schema.statistics
     WHERE table_schema = DATABASE()
       AND table_name = 'pedidos'
       AND index_name = 'idx_pedidos_id_armador') = 0,
  'ALTER TABLE pedidos ADD INDEX idx_pedidos_id_armador (id_armador)',
  'SELECT 1');
PREPARE stmt FROM @s; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @s := IF(
  (SELECT COUNT(*) FROM information_schema.statistics
     WHERE table_schema = DATABASE()
       AND table_name = 'clientes'
       AND column_name = 'cod') = 0,
  'ALTER TABLE clientes ADD INDEX idx_clientes_cod (cod)',
  'SELECT 1');
PREPARE stmt FROM @s; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-05-08] Ofertas: agregar tipo (familia | cantidad) y porcentaje_descuento
-- Base: c2070042_distri
-- Nota: aplicado SIN "IF NOT EXISTS" (MySQL no lo soporta para ADD COLUMN).
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

ALTER TABLE ofertas
    ADD COLUMN tipo ENUM('familia','cantidad') NOT NULL DEFAULT 'familia' AFTER id_tipo_cliente,
    ADD COLUMN porcentaje_descuento DECIMAL(5,2) NULL DEFAULT NULL AFTER cantidad_requerida;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-05-07] cod_expreso en clientes + tabla expresos + permiso sidebar productos_carlos
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

ALTER TABLE clientes ADD COLUMN cod_expreso INT DEFAULT 0;
ALTER TABLE clientes ADD INDEX cod_idx (cod);

CREATE TABLE IF NOT EXISTS expresos (
    id INT(11) NOT NULL AUTO_INCREMENT,
    cod INT(11) NOT NULL,
    nombre VARCHAR(255) DEFAULT NULL,
    direccion VARCHAR(255) DEFAULT NULL,
    telefonos VARCHAR(255) DEFAULT NULL,
    email VARCHAR(255) DEFAULT NULL,
    fecha_actualizacion DATETIME DEFAULT NULL,
    eliminado TINYINT(1) NOT NULL DEFAULT 0,
    PRIMARY KEY (id),
    UNIQUE KEY cod_unique (cod)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT IGNORE INTO sidebar_permisos (id_tipo_usuario, key_panel, visible)
SELECT DISTINCT id_tipo_usuario, 'productos_carlos', 1
FROM sidebar_permisos;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09 PARCIAL] [2026-05-05] Recuento físico de stock
-- Base: c2070042_distri
-- Relacionado: distribuidora/api_rest/daos/stockDao.php
-- NOTA: el ALTER TABLE stock_movimientos NO se aplicó porque la tabla no existía
--       en prod. Las tablas stock_movimientos y stock_productos se autocrean en
--       el constructor de stockDao.php con el ENUM correcto (incluyendo
--       'recuento_fisico') desde el primer hit.
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

CREATE TABLE IF NOT EXISTS recuento_sesion (
    id INT NOT NULL AUTO_INCREMENT,
    fecha_inicio DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    fecha_fin DATETIME NULL,
    estado ENUM('en_curso','finalizada','descartada') NOT NULL DEFAULT 'en_curso',
    ocultar_sin_movimiento TINYINT(1) NOT NULL DEFAULT 0,
    total_items INT NOT NULL DEFAULT 0,
    items_contados INT NOT NULL DEFAULT 0,
    nota TEXT NULL,
    PRIMARY KEY (id),
    KEY idx_estado (estado)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS recuento_items (
    id INT NOT NULL AUTO_INCREMENT,
    id_sesion INT NOT NULL,
    id_marca INT NOT NULL DEFAULT 0,
    nombre_marca VARCHAR(150) DEFAULT NULL,
    id_producto INT NOT NULL,
    codigo_producto INT DEFAULT NULL,
    titulo VARCHAR(255) DEFAULT NULL,
    variable VARCHAR(200) DEFAULT '',
    demanda_marca_snapshot DECIMAL(12,2) DEFAULT 0,
    demanda_mensual_snapshot DECIMAL(10,2) DEFAULT 0,
    stock_sistema_snapshot DECIMAL(10,2) DEFAULT 0,
    cantidad_contada DECIMAL(10,2) DEFAULT NULL,
    diferencia DECIMAL(10,2) DEFAULT NULL,
    estado ENUM('pendiente','contado','saltado') NOT NULL DEFAULT 'pendiente',
    orden_marca INT NOT NULL DEFAULT 0,
    orden_dentro_marca INT NOT NULL DEFAULT 0,
    fecha_contado DATETIME NULL,
    PRIMARY KEY (id),
    KEY idx_sesion_orden (id_sesion, orden_marca, orden_dentro_marca),
    KEY idx_sesion_estado (id_sesion, estado),
    KEY idx_sesion_marca (id_sesion, id_marca)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ALTER TABLE stock_movimientos MODIFY COLUMN tipo ENUM(...)  -- NO APLICADO (ver nota)

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-05-05] Tabla buscador_clicks
-- Base: c2070042_hsj
-- -----------------------------------------------------------------------------
USE c2070042_hsj;
SET SESSION sql_mode = '';

CREATE TABLE IF NOT EXISTS buscador_clicks (
  termino VARCHAR(150) NOT NULL,
  id_producto INT NOT NULL,
  clicks INT NOT NULL DEFAULT 1,
  ultimo_click DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (termino, id_producto),
  KEY idx_termino (termino),
  KEY idx_producto (id_producto)
);

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09 PARCIAL] [2026-05-05] Columna popularidad a productos
-- Base: c2070042_hsj
-- NOTA: Solo se aplicó el ADD COLUMN + INDEX. El UPDATE inicial desde
--       ventas_historicas NO se ejecutó porque esa tabla no existe en prod.
--       popularidad queda en 0 (DEFAULT) hasta que se importen ventas o se
--       cree la tabla y se corra el UPDATE manualmente.
-- -----------------------------------------------------------------------------
USE c2070042_hsj;
SET SESSION sql_mode = '';

ALTER TABLE productos ADD COLUMN popularidad INT NOT NULL DEFAULT 0;
ALTER TABLE productos ADD INDEX idx_popularidad (popularidad);

-- UPDATE productos p LEFT JOIN ventas_historicas... -- NO APLICADO (tabla no existe en prod)

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-05-04] Paneles faltantes en sidebar_permisos
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

INSERT IGNORE INTO sidebar_permisos (id_tipo_usuario, key_panel, visible)
SELECT t.id_tipo, p.panel, 1
FROM (
    SELECT 1 AS id_tipo UNION SELECT 2 UNION SELECT 5 UNION SELECT 6 UNION SELECT 10
) t
CROSS JOIN (
    SELECT 'twilio' AS panel
    UNION SELECT 'control_recepcion'
    UNION SELECT 'facturacion_libre'
    UNION SELECT 'catalogo_productos'
) p;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-05-04] FULLTEXT productos.titulo
-- Base: c2070042_hsj
-- -----------------------------------------------------------------------------
USE c2070042_hsj;
SET SESSION sql_mode = '';

ALTER TABLE productos ADD FULLTEXT INDEX ft_titulo (titulo);

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-05-04] Panel Catálogo de Productos en sidebar_permisos
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

INSERT IGNORE INTO sidebar_permisos (id_tipo_usuario, key_panel, visible)
SELECT id_tipo, 'catalogo_productos', 1
FROM (SELECT 1 AS id_tipo UNION SELECT 2 UNION SELECT 5 UNION SELECT 6 UNION SELECT 10) tipos;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-05-04] facturacion_libre_items
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

CREATE TABLE IF NOT EXISTS facturacion_libre_items (
  id INT AUTO_INCREMENT PRIMARY KEY,
  id_pedido INT NOT NULL,
  id_item_pedido INT NOT NULL,
  titulo VARCHAR(500) NOT NULL DEFAULT '',
  cantidad DECIMAL(10,2) NOT NULL DEFAULT 0,
  precio DECIMAL(10,2) NOT NULL DEFAULT 0,
  id_usuario INT NOT NULL DEFAULT 0,
  fecha DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uk_item_pedido (id_item_pedido),
  INDEX idx_id_pedido (id_pedido)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-05-01] whatsapp_config
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

CREATE TABLE IF NOT EXISTS whatsapp_config (
    clave      VARCHAR(100) NOT NULL,
    valor      TEXT         NOT NULL,
    updated_at DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (clave)
);

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-04-30] whatsapp_conversaciones
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

CREATE TABLE IF NOT EXISTS whatsapp_conversaciones (
    id          INT AUTO_INCREMENT PRIMARY KEY,
    from_number VARCHAR(30)              NOT NULL,
    role        ENUM('user','assistant') NOT NULL,
    content     TEXT                     NOT NULL,
    created_at  TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_conv (from_number, created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-04-30] Campos WhatsApp en clientes
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

ALTER TABLE clientes
    ADD COLUMN telefono_whatsapp VARCHAR(30) DEFAULT NULL,
    ADD COLUMN whatsapp_verificado TINYINT(1) NOT NULL DEFAULT 0,
    ADD COLUMN whatsapp_nombre VARCHAR(100) DEFAULT NULL;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-04-30] twilio_mensajes_log
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

CREATE TABLE IF NOT EXISTS twilio_mensajes_log (
    id            INT AUTO_INCREMENT PRIMARY KEY,
    to_number     VARCHAR(30)  NOT NULL,
    from_number   VARCHAR(50)  NOT NULL,
    channel       ENUM('whatsapp','sms') NOT NULL DEFAULT 'whatsapp',
    body          TEXT         NOT NULL,
    twilio_sid    VARCHAR(50)  DEFAULT NULL,
    status        VARCHAR(30)  DEFAULT NULL,
    error_message TEXT         DEFAULT NULL,
    created_at    DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_created_at (created_at),
    INDEX idx_to_number  (to_number)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-04-24] Cobranzas: resultado de repartidor
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

ALTER TABLE cobranzas
    ADD COLUMN monto_cobrado DECIMAL(10,2) DEFAULT NULL,
    ADD COLUMN nota_repartidor VARCHAR(500) DEFAULT NULL,
    ADD COLUMN fecha_resolucion_repartidor DATETIME DEFAULT NULL;

ALTER TABLE cobranzas MODIFY COLUMN estado
    ENUM('pendiente','enviado_a_cobrar','cobrado','no_cobrado','anulado')
    NOT NULL DEFAULT 'pendiente';

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-04-24] compras.estado ENUM + planillas_reparto_items.id_compra
-- Base: c2070042_distri + c2070042_hsj
-- Nota: planillas_reparto_items.id_compra aplicado SIN "IF NOT EXISTS".
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

ALTER TABLE compras MODIFY COLUMN estado
    ENUM('pendiente','recibida_para_controlar','para_control_admin','recepcion_controlada','en_camino')
    NOT NULL DEFAULT 'pendiente';

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

USE c2070042_hsj;
SET SESSION sql_mode = '';
ALTER TABLE planillas_reparto_items ADD COLUMN id_compra INT NULL DEFAULT NULL;
SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-04-24] Control de recepción
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

CREATE TABLE IF NOT EXISTS control_recepcion (
    id               INT AUTO_INCREMENT PRIMARY KEY,
    id_compra        INT NOT NULL,
    id_usuario       INT NOT NULL,
    fecha_inicio     DATETIME NOT NULL,
    fecha_finalizado DATETIME NULL,
    numero_remito    VARCHAR(100) NULL,
    foto_remito_path VARCHAR(255) NULL,
    nota_general     TEXT NULL,
    estado           ENUM('en_progreso','finalizado') NOT NULL DEFAULT 'en_progreso',
    INDEX idx_id_compra (id_compra),
    INDEX idx_estado (estado)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS control_recepcion_items (
    id               INT AUTO_INCREMENT PRIMARY KEY,
    id_control       INT NOT NULL,
    id_item_compra   INT NOT NULL,
    estado           ENUM('recibido','no_recibido','parcial') NOT NULL DEFAULT 'recibido',
    cantidad_recibida DECIMAL(10,2) NULL,
    observacion      TEXT NULL,
    INDEX idx_id_control (id_control),
    UNIQUE KEY uq_control_item (id_control, id_item_compra)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE compras ADD COLUMN id_usuario_controlador INT NULL;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-04-23] llamados_mostrador
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

CREATE TABLE IF NOT EXISTS llamados_mostrador (
  id INT AUTO_INCREMENT PRIMARY KEY,
  fecha DATETIME DEFAULT CURRENT_TIMESTAMP,
  id_usuario INT DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-04-22] config_alertas_panel + seeds
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

CREATE TABLE IF NOT EXISTS config_alertas_panel (
    panel       VARCHAR(60) NOT NULL,
    id_estado   INT NOT NULL,
    activa      TINYINT(1) NOT NULL DEFAULT 0,
    PRIMARY KEY (panel, id_estado)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT IGNORE INTO config_alertas_panel (panel, id_estado, activa) VALUES
('mostrador', 0, 0), ('mostrador', 1, 1), ('mostrador', 3, 0), ('mostrador', 4, 0),
('mostrador', 5, 1), ('mostrador', 6, 0), ('mostrador', 7, 0), ('mostrador', 10, 0),
('mostrador', 11, 1), ('mostrador', 15, 0), ('mostrador', 16, 0), ('mostrador', 100, 0),
('en_armado', 0, 0), ('en_armado', 1, 1), ('en_armado', 3, 0), ('en_armado', 4, 0),
('en_armado', 5, 0), ('en_armado', 6, 0), ('en_armado', 7, 0), ('en_armado', 10, 1),
('en_armado', 11, 0), ('en_armado', 15, 1), ('en_armado', 16, 1), ('en_armado', 100, 1),
('para_facturar', 0, 0), ('para_facturar', 1, 0), ('para_facturar', 3, 1), ('para_facturar', 4, 0),
('para_facturar', 5, 0), ('para_facturar', 6, 0), ('para_facturar', 7, 0), ('para_facturar', 10, 0),
('para_facturar', 11, 0), ('para_facturar', 15, 0), ('para_facturar', 16, 0), ('para_facturar', 100, 0),
('para_controlar', 0, 0), ('para_controlar', 1, 0), ('para_controlar', 3, 0), ('para_controlar', 4, 1),
('para_controlar', 5, 0), ('para_controlar', 6, 0), ('para_controlar', 7, 0), ('para_controlar', 10, 0),
('para_controlar', 11, 0), ('para_controlar', 15, 0), ('para_controlar', 16, 0), ('para_controlar', 100, 0),
('envio_de_pedidos', 0, 0), ('envio_de_pedidos', 1, 0), ('envio_de_pedidos', 3, 0), ('envio_de_pedidos', 4, 0),
('envio_de_pedidos', 5, 1), ('envio_de_pedidos', 6, 1), ('envio_de_pedidos', 7, 1), ('envio_de_pedidos', 10, 0),
('envio_de_pedidos', 11, 0), ('envio_de_pedidos', 15, 0), ('envio_de_pedidos', 16, 0), ('envio_de_pedidos', 100, 0),
('dashboard', 0, 1), ('dashboard', 1, 1), ('dashboard', 3, 1), ('dashboard', 4, 1),
('dashboard', 5, 1), ('dashboard', 6, 1), ('dashboard', 7, 1), ('dashboard', 10, 1),
('dashboard', 11, 1), ('dashboard', 15, 1), ('dashboard', 16, 1), ('dashboard', 100, 1);

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-04-22] config_alertas_pedido — seeds estados 11 y 100
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

INSERT IGNORE INTO config_alertas_pedido (id_tipo_usuario, id_estado, activa) VALUES
    (1,  11,  1), (1,  100, 1),
    (10, 11,  1), (10, 100, 1),
    (4,  11,  1), (4,  100, 1),
    (5,  11,  0), (5,  100, 0),
    (6,  11,  0), (6,  100, 0),
    (2,  11,  0), (2,  100, 0),
    (3,  11,  0), (3,  100, 0);

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-04-22] pedidos_estados id=11 "A resolver por mostrador"
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

INSERT INTO pedidos_estados (id, estado) VALUES (11, 'a resolver por mostrador')
    ON DUPLICATE KEY UPDATE estado = VALUES(estado);

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-04-21] usuarios_internos_perfil
-- Base: c2070042_hsj
-- Recordar: en prod hay que crear el directorio de avatares con permisos:
--   mkdir -p /var/www/html/img/avatares
--   chown www-data:www-data /var/www/html/img/avatares
--   chmod 775 /var/www/html/img/avatares
-- -----------------------------------------------------------------------------
USE c2070042_hsj;
SET SESSION sql_mode = '';

CREATE TABLE IF NOT EXISTS usuarios_internos_perfil (
    id_usuario_interno INT NOT NULL PRIMARY KEY,
    nombre_completo VARCHAR(120) NULL,
    avatar VARCHAR(255) NULL,
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    CONSTRAINT fk_usuarios_internos_perfil_usuario
        FOREIGN KEY (id_usuario_interno) REFERENCES usuarios_internos(id)
        ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


-- -----------------------------------------------------------------------------
-- [APLICADO 2026-05-09] [2026-04-21] config_alertas_pedido CREATE + seeds
-- Base: c2070042_distri
-- -----------------------------------------------------------------------------
USE c2070042_distri;
SET SESSION sql_mode = '';

CREATE TABLE IF NOT EXISTS config_alertas_pedido (
    id_tipo_usuario INT NOT NULL,
    id_estado       INT NOT NULL,
    activa          TINYINT(1) NOT NULL DEFAULT 0,
    PRIMARY KEY (id_tipo_usuario, id_estado)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT IGNORE INTO config_alertas_pedido (id_tipo_usuario, id_estado, activa) VALUES
(1, 0, 1), (1, 1, 1), (1, 3, 1), (1, 4, 1), (1, 5, 1), (1, 6, 1),
(1, 7, 1), (1, 10, 1), (1, 15, 1), (1, 16, 1),
(10, 0, 1), (10, 1, 1), (10, 3, 1), (10, 4, 1), (10, 5, 1), (10, 6, 1),
(10, 7, 1), (10, 10, 1), (10, 15, 1), (10, 16, 1),
(4, 0, 0), (4, 1, 1), (4, 3, 0), (4, 4, 0), (4, 5, 0), (4, 6, 0),
(4, 7, 0), (4, 10, 1), (4, 15, 1), (4, 16, 1),
(5, 0, 0), (5, 1, 0), (5, 3, 1), (5, 4, 1), (5, 5, 0), (5, 6, 0),
(5, 7, 0), (5, 10, 0), (5, 15, 0), (5, 16, 0),
(6, 0, 0), (6, 1, 0), (6, 3, 0), (6, 4, 1), (6, 5, 1), (6, 6, 0),
(6, 7, 0), (6, 10, 0), (6, 15, 0), (6, 16, 0),
(2, 0, 0), (2, 1, 0), (2, 3, 0), (2, 4, 0), (2, 5, 0), (2, 6, 0),
(2, 7, 0), (2, 10, 0), (2, 15, 0), (2, 16, 0),
(3, 0, 0), (3, 1, 0), (3, 3, 0), (3, 4, 0), (3, 5, 0), (3, 6, 0),
(3, 7, 0), (3, 10, 0), (3, 15, 0), (3, 16, 0);

SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
