-- Migración: Agregar sistema de permisos por mecánico para checklists
-- Fecha: 2025-11-25
-- Descripción: Crea tabla intermedia para controlar qué mecánicos pueden usar cada checklist

-- Crear tabla de permisos checklist-mecánico
CREATE TABLE IF NOT EXISTS checklist_permissions (
    id SERIAL PRIMARY KEY,
    checklist_id INTEGER NOT NULL REFERENCES checklists(id) ON DELETE CASCADE,
    mechanic_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
    
    -- Constraint para evitar duplicados
    UNIQUE(checklist_id, mechanic_id)
);

-- Crear índices para mejorar rendimiento
CREATE INDEX idx_checklist_permissions_checklist ON checklist_permissions(checklist_id);
CREATE INDEX idx_checklist_permissions_mechanic ON checklist_permissions(mechanic_id);

-- Comentarios para documentación
COMMENT ON TABLE checklist_permissions IS 'Control de acceso de mecánicos a checklists. Si no hay registros para un checklist, todos los mecánicos tienen acceso.';
COMMENT ON COLUMN checklist_permissions.checklist_id IS 'ID del checklist restringido';
COMMENT ON COLUMN checklist_permissions.mechanic_id IS 'ID del mecánico autorizado';

-- Verificar que la migración se ejecutó correctamente
SELECT 'Tabla checklist_permissions creada exitosamente' AS status;
