This commit is contained in:
ivan-pelly
2026-04-19 14:09:30 -07:00
parent 09673ab53c
commit cd204e4d10
33 changed files with 1521 additions and 11 deletions
@@ -0,0 +1,16 @@
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `sp_Program_GetByDistrictId`(
IN p_id_school_district CHAR(36)
)
BEGIN
SELECT
id_program,
id_school_district,
name,
description,
created_at
FROM program
WHERE id_school_district = p_id_school_district
ORDER BY name;
END;;
DELIMITER ;
+12
View File
@@ -0,0 +1,12 @@
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `sp_Role_GetAll`()
BEGIN
SELECT
id_role,
name,
internal_name,
description
FROM role
ORDER BY name;
END;;
DELIMITER ;
@@ -0,0 +1,32 @@
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `sp_UserProgram_Insert`(
IN p_id_user_program CHAR(36),
IN p_id_user CHAR(36),
IN p_id_program CHAR(36),
IN p_id_role CHAR(36),
IN p_is_primary TINYINT
)
BEGIN
INSERT INTO user_program
(
id_user_program,
id_user,
id_program,
id_role,
is_primary,
status,
joined_at
)
VALUES
(
p_id_user_program,
p_id_user,
p_id_program,
p_id_role,
p_is_primary,
'active',
UTC_TIMESTAMP()
);
SELECT ROW_COUNT() AS rows_affected;
END;;
DELIMITER ;
@@ -0,0 +1,24 @@
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `sp_User_GetByDistrictId`(
IN p_id_school_district CHAR(36)
)
BEGIN
SELECT DISTINCT
u.id_user,
u.email,
u.name,
u.created_at,
up.id_program,
p.name AS program_name,
r.id_role,
r.name AS role_name,
r.internal_name AS role_internal_name
FROM `user` u
INNER JOIN user_program up ON up.id_user = u.id_user
INNER JOIN program p ON p.id_program = up.id_program
INNER JOIN role r ON r.id_role = up.id_role
WHERE p.id_school_district = p_id_school_district
AND up.status = 'active'
ORDER BY u.name, p.name;
END;;
DELIMITER ;
+41
View File
@@ -0,0 +1,41 @@
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `sp_User_Insert`(
IN p_id_user CHAR(36),
IN p_email VARCHAR(255),
IN p_name VARCHAR(255),
IN p_password_hash VARCHAR(255),
IN p_password_salt VARCHAR(255)
)
BEGIN
INSERT INTO `user`
(
id_user,
email,
name,
password_hash,
password_salt,
password_updated_at,
failed_login_attempts,
created_at
)
VALUES
(
p_id_user,
p_email,
p_name,
p_password_hash,
p_password_salt,
UTC_TIMESTAMP(),
0,
UTC_TIMESTAMP()
);
SELECT
id_user,
email,
name,
created_at
FROM `user`
WHERE id_user = p_id_user
LIMIT 1;
END;;
DELIMITER ;