Files
2026-04-10 15:31:56 -07:00

72 lines
2.4 KiB
SQL

DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `sp_Student_GetFullProfile`(IN p_id_student CHAR(36))
BEGIN
-- Result set 1: Student card
SELECT
studentId,
identifier,
nextIepDate,
firstEntryDate,
lastEntryDate,
goalCount,
progressEventCount,
benchmarkCount
FROM v_student_card
WHERE studentId = p_id_student
LIMIT 1;
-- Result set 2: Goals
SELECT
s.`identifier` AS `studentIdentifier`,
vc.`goalId`,
vc.`goalParentId`,
vc.`description`,
vc.`category`,
vc.`baseline`,
vc.`targetCompletionDate`,
vc.`closeDate`,
vc.`achieved`,
vc.`closeNotes`,
vc.`progressEventCount`,
vc.`benchmarkCount`
FROM `v_goal_card` vc
INNER JOIN `student` s ON s.`id_student` = vc.`studentId`
WHERE vc.`studentId` = p_id_student
ORDER BY vc.`goalId`;
-- Result set 3: Benchmarks
SELECT
s.`identifier` AS `studentIdentifier`,
b.`id_benchmark` AS `benchmarkId`,
b.`id_goal` AS `goalId`,
g.`category` AS `goalCategory`,
b.`benchmark` AS `benchmark`,
b.`short_name` AS `shortName`,
u.`name` AS `createdByName`,
b.`created_at` AS `createdAt`,
b.`updated_at` AS `updatedAt`
FROM `benchmark` b
INNER JOIN `goal` g ON g.`id_goal` = b.`id_goal`
INNER JOIN `student` s ON s.`id_student` = g.`id_student`
LEFT JOIN `user` u ON u.`id_user` = b.`id_user_created`
WHERE g.`id_student` = p_id_student
ORDER BY b.`created_at` DESC;
-- Result set 4: Progress events (all goals for this student)
SELECT
vc.`progressEventId`,
vc.`goalId`,
vc.`content`,
vc.`createdAt`,
vc.`createdByName`
FROM `v_progress_event_card` vc
WHERE vc.`studentId` = p_id_student
ORDER BY vc.`createdAt` DESC;
-- Result set 5: Benchmark/progress-event associations
SELECT
peb.`id_progress_event` AS `progressEventId`,
peb.`id_benchmark` AS `benchmarkId`
FROM `progress_event_benchmark` peb
INNER JOIN `progress_event` pe ON pe.`id_progress_event` = peb.`id_progress_event`
INNER JOIN `goal` g ON g.`id_goal` = pe.`id_goal`
WHERE g.`id_student` = p_id_student;
END;;
DELIMITER ;