27 lines
1.3 KiB
SQL
27 lines
1.3 KiB
SQL
-- 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;
|