-- =============================================================================
-- Migración 001 — RBAC expandido
-- Agrega columnas de permisos granulares a role_modules.
-- Proyecto: WhatsApp ERP Multi-módulo
-- Fecha:    2026-04-16
-- IMPORTANTE: Migración ADITIVA. No elimina ni renombra columnas existentes.
-- =============================================================================

-- Ampliar table role_modules con permisos por acción
ALTER TABLE role_modules
    ADD COLUMN IF NOT EXISTS can_view   TINYINT(1) NOT NULL DEFAULT 1 COMMENT 'Puede ver el módulo',
    ADD COLUMN IF NOT EXISTS can_create TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Puede crear registros',
    ADD COLUMN IF NOT EXISTS can_edit   TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Puede editar registros',
    ADD COLUMN IF NOT EXISTS can_delete TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Puede eliminar registros',
    ADD COLUMN IF NOT EXISTS can_export TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Puede exportar datos',
    ADD COLUMN IF NOT EXISTS extra_json JSON        NULL            COMMENT 'Permisos extras específicos del módulo (JSON)';

-- Retrocompatibilidad: los registros existentes con permission='write' reciben can_create/edit/delete = 1
UPDATE role_modules
SET    can_create = 1, can_edit = 1, can_delete = 1, can_export = 1
WHERE  permission = 'write' OR permission IS NULL;

-- Los que tienen permission='read' solo tienen can_view = 1 (ya es el DEFAULT, no tocar)

