-- Migration 017 — Columnas rubro y especialidad en tenants
-- Compatibe MySQL 5.7+. Seguro de re-ejecutar.

DROP PROCEDURE IF EXISTS migrate_017;

DELIMITER //
CREATE PROCEDURE migrate_017()
BEGIN
    DECLARE CONTINUE HANDLER FOR 1060 BEGIN END; -- Duplicate column
    DECLARE CONTINUE HANDLER FOR 1061 BEGIN END; -- Duplicate key

    -- Rubro canónico del negocio (inferido por Gemini y confirmado por el dueño)
    ALTER TABLE tenants
        ADD COLUMN rubro VARCHAR(20) NULL
            COMMENT 'barberia|odontologia|belleza|general';

    -- Especialidad en texto libre (ej. "odontología pediátrica", "barbería premium")
    -- null = sin especialidad o rubro general
    ALTER TABLE tenants
        ADD COLUMN especialidad VARCHAR(120) NULL
            COMMENT 'Especialidad inferida por Gemini, texto libre';

    -- Índice para filtrar por rubro en queries del admin
    ALTER TABLE tenants ADD INDEX idx_tenants_rubro (rubro);

    -- Migrar business_type existente al nuevo campo rubro donde sea posible
    -- (mapeo aproximado de los valores legacy)
    UPDATE tenants
    SET rubro = CASE
        WHEN LOWER(business_type) LIKE '%barber%' OR LOWER(business_type) LIKE '%barbería%'   THEN 'barberia'
        WHEN LOWER(business_type) LIKE '%dental%' OR LOWER(business_type) LIKE '%odonto%'
          OR LOWER(business_type) LIKE '%clínica%' OR LOWER(business_type) LIKE '%clinica%'   THEN 'odontologia'
        WHEN LOWER(business_type) LIKE '%belleza%' OR LOWER(business_type) LIKE '%salón%'
          OR LOWER(business_type) LIKE '%salon%'  OR LOWER(business_type) LIKE '%spa%'
          OR LOWER(business_type) LIKE '%estética%'                                            THEN 'belleza'
        ELSE NULL
    END
    WHERE rubro IS NULL AND business_type IS NOT NULL AND business_type != '';

END //
DELIMITER ;

CALL migrate_017();
DROP PROCEDURE IF EXISTS migrate_017;
