v1.0.63 Backend / v1.0.57 Frontend - Edición y auditoría de preguntas

This commit is contained in:
2025-11-27 01:26:15 -03:00
parent 6f3a6d40f4
commit cdd1b3507b
6 changed files with 323 additions and 3 deletions

View File

@@ -0,0 +1,44 @@
-- Migration: Add question_audit_log table
-- Date: 2025-11-27
-- Description: Add audit logging for question changes
CREATE TABLE IF NOT EXISTS question_audit_log (
id SERIAL PRIMARY KEY,
question_id INTEGER NOT NULL,
checklist_id INTEGER NOT NULL,
user_id INTEGER NOT NULL,
action VARCHAR(50) NOT NULL,
field_name VARCHAR(100),
old_value TEXT,
new_value TEXT,
comment TEXT,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
-- Foreign keys
CONSTRAINT fk_question_audit_question
FOREIGN KEY (question_id)
REFERENCES questions(id)
ON DELETE CASCADE,
CONSTRAINT fk_question_audit_checklist
FOREIGN KEY (checklist_id)
REFERENCES checklists(id)
ON DELETE CASCADE,
CONSTRAINT fk_question_audit_user
FOREIGN KEY (user_id)
REFERENCES users(id)
);
-- Create indexes for better query performance
CREATE INDEX idx_question_audit_question_id ON question_audit_log(question_id);
CREATE INDEX idx_question_audit_checklist_id ON question_audit_log(checklist_id);
CREATE INDEX idx_question_audit_created_at ON question_audit_log(created_at);
CREATE INDEX idx_question_audit_action ON question_audit_log(action);
-- Add comment to table
COMMENT ON TABLE question_audit_log IS 'Registro de auditoría para cambios en preguntas de checklists';
COMMENT ON COLUMN question_audit_log.action IS 'Tipo de acción: created, updated, deleted';
COMMENT ON COLUMN question_audit_log.field_name IS 'Nombre del campo modificado (solo para updates)';
COMMENT ON COLUMN question_audit_log.old_value IS 'Valor anterior del campo';
COMMENT ON COLUMN question_audit_log.new_value IS 'Valor nuevo del campo';