trading-platform-database/ddl/schemas/education/functions/03-auto_complete_enrollment.sql

30 lines
1.1 KiB
PL/PgSQL

-- =====================================================
-- FUNCTION: education.auto_complete_enrollment()
-- =====================================================
-- Proyecto: OrbiQuant IA (Trading Platform)
-- Módulo: OQI-002 - Education
-- Especificación: ET-EDU-001-database.md
-- Descripción: Completa automáticamente el enrollment cuando alcanza 100%
-- =====================================================
CREATE OR REPLACE FUNCTION education.auto_complete_enrollment()
RETURNS TRIGGER AS $$
BEGIN
-- Si el progreso llegó al 100% y está activo, completarlo
IF NEW.progress_percentage >= 100 AND NEW.status = 'active' THEN
NEW.status := 'completed';
NEW.completed_at := NOW();
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
COMMENT ON FUNCTION education.auto_complete_enrollment() IS 'Completa automáticamente el enrollment al alcanzar 100%';
-- Trigger para auto-completar enrollment
CREATE TRIGGER auto_complete_enrollment_trigger
BEFORE UPDATE ON education.enrollments
FOR EACH ROW
EXECUTE FUNCTION education.auto_complete_enrollment();