-- Migración del primer sistema (Micro ERP) al catálogo unificado.
-- SQLite no permite IF NOT EXISTS en ALTER TABLE: ejecutar una sola vez
-- únicamente si no se usa la migración automática de app/migrations.php.
PRAGMA foreign_keys = ON;
BEGIN IMMEDIATE;

ALTER TABLE categorias ADD COLUMN slug TEXT NOT NULL DEFAULT '';
ALTER TABLE categorias ADD COLUMN orden_catalogo INTEGER NOT NULL DEFAULT 0;
ALTER TABLE categorias ADD COLUMN actualizado_en TEXT;

ALTER TABLE productos ADD COLUMN slug TEXT NOT NULL DEFAULT '';
ALTER TABLE productos ADD COLUMN descripcion_corta TEXT NOT NULL DEFAULT '';
ALTER TABLE productos ADD COLUMN precio_comparacion_centavos INTEGER;
ALTER TABLE productos ADD COLUMN destacado INTEGER NOT NULL DEFAULT 0;
ALTER TABLE productos ADD COLUMN orden_catalogo INTEGER NOT NULL DEFAULT 0;

UPDATE categorias
SET slug = 'categoria-' || id,
    actualizado_en = COALESCE(actualizado_en, creado_en, CURRENT_TIMESTAMP)
WHERE slug = '';

UPDATE productos
SET slug = 'producto-' || id
WHERE slug = '';

CREATE TABLE IF NOT EXISTS eventos_pedido (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    session_id TEXT NOT NULL,
    total_centavos INTEGER NOT NULL CHECK (total_centavos >= 0),
    items_json TEXT NOT NULL,
    origen TEXT NOT NULL DEFAULT 'web_whatsapp',
    creado_en TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
);

CREATE UNIQUE INDEX IF NOT EXISTS uq_categorias_slug ON categorias(slug) WHERE slug != '';
CREATE UNIQUE INDEX IF NOT EXISTS uq_productos_slug ON productos(slug) WHERE slug != '';
CREATE INDEX IF NOT EXISTS idx_categorias_catalogo ON categorias(activo, orden_catalogo, nombre);
CREATE INDEX IF NOT EXISTS idx_productos_catalogo ON productos(activo, destacado, orden_catalogo, nombre);
CREATE INDEX IF NOT EXISTS idx_eventos_pedido_fecha ON eventos_pedido(creado_en);
CREATE INDEX IF NOT EXISTS idx_eventos_pedido_session ON eventos_pedido(session_id);

INSERT OR IGNORE INTO configuracion (clave, valor) VALUES
    ('whatsapp_numero', ''),
    ('url_publica', ''),
    ('catalogo_encabezado', 'Productos seleccionados, atención directa.'),
    ('catalogo_pie', 'Consultá disponibilidad antes de finalizar tu pedido.'),
    ('seo_titulo', 'Catálogo de productos'),
    ('seo_descripcion', 'Explorá nuestro catálogo y armá tu pedido.'),
    ('google_analytics_id', ''),
    ('google_ads_id', ''),
    ('google_ads_conversion_label', '');

INSERT INTO migraciones (id) VALUES ('20260730_catalogo_sqlite');
COMMIT;
