mirror of
https://github.com/opelly27/WinStudentGoalTracker.git
synced 2026-05-20 07:37:38 +00:00
Database updates
This commit is contained in:
@@ -10,12 +10,10 @@ CREATE DEFINER=`root`@`%` PROCEDURE `sp_RefreshToken_Replace`(
|
||||
IN p_user_agent VARCHAR(512)
|
||||
)
|
||||
BEGIN
|
||||
-- Revoke the old token
|
||||
UPDATE refresh_token
|
||||
SET revoked_at = UTC_TIMESTAMP()
|
||||
WHERE id_refresh_token = p_old_token_id
|
||||
AND revoked_at IS NULL;
|
||||
-- Create the new token
|
||||
INSERT INTO refresh_token
|
||||
(
|
||||
id_refresh_token,
|
||||
@@ -36,7 +34,6 @@ BEGIN
|
||||
p_device_info,
|
||||
p_user_agent
|
||||
);
|
||||
-- Link old token to new one
|
||||
UPDATE refresh_token
|
||||
SET replaced_by_token_id = p_id_refresh_token
|
||||
WHERE id_refresh_token = p_old_token_id;
|
||||
|
||||
@@ -1,59 +1,38 @@
|
||||
DELIMITER ;;
|
||||
CREATE DEFINER=`root`@`%` PROCEDURE `sp_SeedData_1`()
|
||||
BEGIN
|
||||
-- =============================================================================
|
||||
-- Seed Data Script - create minimal set of working data
|
||||
-- =============================================================================
|
||||
-- =============================================================================
|
||||
-- 1. SCHOOL DISTRICT
|
||||
-- =============================================================================
|
||||
INSERT INTO school_district (id_school_district, name, contact_email, created_at)
|
||||
VALUES ('a1b2c3d4-0001-4000-a000-000000000001', 'Parent District', 'contact@dummydistrict.edu', UTC_TIMESTAMP());
|
||||
-- =============================================================================
|
||||
-- 2. PROGRAM (child of the district above)
|
||||
-- =============================================================================
|
||||
INSERT INTO program (id_program, id_school_district, name, description, created_at)
|
||||
VALUES ('b2c3d4e5-0001-4000-a000-000000000001', 'a1b2c3d4-0001-4000-a000-000000000001', 'Test Program', 'A sample program for testing', UTC_TIMESTAMP());
|
||||
-- =============================================================================
|
||||
-- 3. ROLES
|
||||
-- =============================================================================
|
||||
INSERT INTO role (id_role, name, internal_name, description, created_at) VALUES
|
||||
('c3d4e5f6-0001-4000-a000-000000000001', 'Super Admin', 'super_admin', 'Full system access', UTC_TIMESTAMP()),
|
||||
('c3d4e5f6-0002-4000-a000-000000000001', 'District Admin', 'district_admin', 'District-level administration', UTC_TIMESTAMP()),
|
||||
('c3d4e5f6-0003-4000-a000-000000000001', 'Program Admin', 'program_admin', 'Program-level administration', UTC_TIMESTAMP()),
|
||||
('c3d4e5f6-0004-4000-a000-000000000001', 'Teacher', 'teacher', 'Teacher role', UTC_TIMESTAMP()),
|
||||
('c3d4e5f6-0005-4000-a000-000000000001', 'Paraeducator', 'paraeducator', 'Paraeducator role', UTC_TIMESTAMP()),
|
||||
('c3d4e5f6-0006-4000-a000-000000000001', 'Student', 'student', 'Student role', UTC_TIMESTAMP());
|
||||
-- =============================================================================
|
||||
-- 4. USERS ? 2 Teachers + 1 Paraeducator
|
||||
-- =============================================================================
|
||||
-- Teacher 1
|
||||
INSERT INTO user (id_user, id_role, email, name, password_hash, password_salt, created_at)
|
||||
VALUES ('d4e5f6a7-0001-4000-a000-000000000001', 'c3d4e5f6-0004-4000-a000-000000000001',
|
||||
'teacher1@example.com', 'Teacher One', NULL, NULL, UTC_TIMESTAMP());
|
||||
-- Teacher 2
|
||||
INSERT INTO user (id_user, id_role, email, name, password_hash, password_salt, created_at)
|
||||
VALUES ('d4e5f6a7-0002-4000-a000-000000000001', 'c3d4e5f6-0004-4000-a000-000000000001',
|
||||
'teacher2@example.com', 'Teacher Two', NULL, NULL, UTC_TIMESTAMP());
|
||||
-- Paraeducator 1
|
||||
INSERT INTO user (id_user, id_role, email, name, password_hash, password_salt, created_at)
|
||||
VALUES ('d4e5f6a7-0003-4000-a000-000000000001', 'c3d4e5f6-0005-4000-a000-000000000001',
|
||||
'para1@example.com', 'Para One', NULL, NULL, UTC_TIMESTAMP());
|
||||
-- =============================================================================
|
||||
-- 5. USER_PROGRAM ? link all 3 users to the program
|
||||
-- =============================================================================
|
||||
INSERT INTO user_program (id_user_program, id_user, id_program, is_primary, status, joined_at) VALUES
|
||||
('e5f6a7b8-0001-4000-a000-000000000001', 'd4e5f6a7-0001-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 1, 'active', UTC_TIMESTAMP()),
|
||||
('e5f6a7b8-0002-4000-a000-000000000001', 'd4e5f6a7-0002-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 1, 'active', UTC_TIMESTAMP()),
|
||||
('e5f6a7b8-0003-4000-a000-000000000001', 'd4e5f6a7-0003-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 1, 'active', UTC_TIMESTAMP());
|
||||
-- =============================================================================
|
||||
-- 6. STUDENTS ? 5 students under the program
|
||||
-- =============================================================================
|
||||
INSERT INTO student (id_student, id_program, identifier, program_year, enrollment_date, expected_grad, created_at) VALUES
|
||||
('f6a7b8c9-0001-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 'STU-001', 1, '2025-09-01', '2029-06-15', UTC_TIMESTAMP()),
|
||||
('f6a7b8c9-0002-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 'STU-002', 1, '2025-09-01', '2029-06-15', UTC_TIMESTAMP()),
|
||||
('f6a7b8c9-0003-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 'STU-003', 2, '2024-09-01', '2028-06-15', UTC_TIMESTAMP()),
|
||||
('f6a7b8c9-0004-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 'STU-004', 2, '2024-09-01', '2028-06-15', UTC_TIMESTAMP()),
|
||||
('f6a7b8c9-0005-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 'STU-005', 3, '2023-09-01', '2027-06-15', UTC_TIMESTAMP());
|
||||
-- 1. SCHOOL DISTRICT
|
||||
INSERT INTO school_district (id_school_district, name, contact_email, created_at)
|
||||
VALUES ('a1b2c3d4-0001-4000-a000-000000000001', 'Parent District', 'contact@dummydistrict.edu', UTC_TIMESTAMP());
|
||||
-- 2. PROGRAM
|
||||
INSERT INTO program (id_program, id_school_district, name, description, created_at)
|
||||
VALUES ('b2c3d4e5-0001-4000-a000-000000000001', 'a1b2c3d4-0001-4000-a000-000000000001', 'Test Program', 'A sample program for testing', UTC_TIMESTAMP());
|
||||
-- 3. ROLES
|
||||
INSERT INTO role (id_role, name, internal_name, description, created_at) VALUES
|
||||
('c3d4e5f6-0001-4000-a000-000000000001', 'Super Admin', 'super_admin', 'Full system access', UTC_TIMESTAMP()),
|
||||
('c3d4e5f6-0002-4000-a000-000000000001', 'District Admin', 'district_admin', 'District-level administration', UTC_TIMESTAMP()),
|
||||
('c3d4e5f6-0003-4000-a000-000000000001', 'Program Admin', 'program_admin', 'Program-level administration', UTC_TIMESTAMP()),
|
||||
('c3d4e5f6-0004-4000-a000-000000000001', 'Teacher', 'teacher', 'Teacher role', UTC_TIMESTAMP()),
|
||||
('c3d4e5f6-0005-4000-a000-000000000001', 'Paraeducator', 'paraeducator', 'Paraeducator role', UTC_TIMESTAMP()),
|
||||
('c3d4e5f6-0006-4000-a000-000000000001', 'Student', 'student', 'Student role', UTC_TIMESTAMP());
|
||||
-- 4. USERS (no id_role)
|
||||
INSERT INTO user (id_user, email, name, password_hash, password_salt, created_at)
|
||||
VALUES ('d4e5f6a7-0001-4000-a000-000000000001', 'teacher1@example.com', 'Teacher One', NULL, NULL, UTC_TIMESTAMP());
|
||||
INSERT INTO user (id_user, email, name, password_hash, password_salt, created_at)
|
||||
VALUES ('d4e5f6a7-0002-4000-a000-000000000001', 'teacher2@example.com', 'Teacher Two', NULL, NULL, UTC_TIMESTAMP());
|
||||
INSERT INTO user (id_user, email, name, password_hash, password_salt, created_at)
|
||||
VALUES ('d4e5f6a7-0003-4000-a000-000000000001', 'para1@example.com', 'Para One', NULL, NULL, UTC_TIMESTAMP());
|
||||
-- 5. USER_PROGRAM (now includes id_role)
|
||||
INSERT INTO user_program (id_user_program, id_user, id_program, id_role, is_primary, status, joined_at) VALUES
|
||||
('e5f6a7b8-0001-4000-a000-000000000001', 'd4e5f6a7-0001-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 'c3d4e5f6-0004-4000-a000-000000000001', 1, 'active', UTC_TIMESTAMP()),
|
||||
('e5f6a7b8-0002-4000-a000-000000000001', 'd4e5f6a7-0002-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 'c3d4e5f6-0004-4000-a000-000000000001', 1, 'active', UTC_TIMESTAMP()),
|
||||
('e5f6a7b8-0003-4000-a000-000000000001', 'd4e5f6a7-0003-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 'c3d4e5f6-0005-4000-a000-000000000001', 1, 'active', UTC_TIMESTAMP());
|
||||
-- 6. STUDENTS
|
||||
INSERT INTO student (id_student, id_program, identifier, program_year, enrollment_date, expected_grad, created_at) VALUES
|
||||
('f6a7b8c9-0001-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 'STU-001', 1, '2025-09-01', '2029-06-15', UTC_TIMESTAMP()),
|
||||
('f6a7b8c9-0002-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 'STU-002', 1, '2025-09-01', '2029-06-15', UTC_TIMESTAMP()),
|
||||
('f6a7b8c9-0003-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 'STU-003', 2, '2024-09-01', '2028-06-15', UTC_TIMESTAMP()),
|
||||
('f6a7b8c9-0004-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 'STU-004', 2, '2024-09-01', '2028-06-15', UTC_TIMESTAMP()),
|
||||
('f6a7b8c9-0005-4000-a000-000000000001', 'b2c3d4e5-0001-4000-a000-000000000001', 'STU-005', 3, '2023-09-01', '2027-06-15', UTC_TIMESTAMP());
|
||||
END;;
|
||||
DELIMITER ;
|
||||
|
||||
@@ -3,18 +3,14 @@ CREATE DEFINER=`root`@`%` PROCEDURE `sp_User_GetByEmail`(IN p_email VARCHAR(255)
|
||||
BEGIN
|
||||
SELECT
|
||||
u.id_user,
|
||||
u.id_role,
|
||||
u.email,
|
||||
u.name,
|
||||
u.password_hash,
|
||||
u.password_salt,
|
||||
u.failed_login_attempts,
|
||||
u.locked_until,
|
||||
u.created_at,
|
||||
r.internal_name AS role_internal_name,
|
||||
r.name AS role_display_name
|
||||
u.created_at
|
||||
FROM `user` u
|
||||
LEFT JOIN role r ON u.id_role = r.id_role
|
||||
WHERE u.email = p_email
|
||||
LIMIT 1;
|
||||
END;;
|
||||
|
||||
@@ -3,18 +3,14 @@ CREATE DEFINER=`root`@`%` PROCEDURE `sp_User_GetById`(IN p_id_user CHAR(36))
|
||||
BEGIN
|
||||
SELECT
|
||||
u.id_user,
|
||||
u.id_role,
|
||||
u.email,
|
||||
u.name,
|
||||
u.password_hash,
|
||||
u.password_salt,
|
||||
u.failed_login_attempts,
|
||||
u.locked_until,
|
||||
u.created_at,
|
||||
r.internal_name AS role_internal_name,
|
||||
r.name AS role_display_name
|
||||
u.created_at
|
||||
FROM `user` u
|
||||
LEFT JOIN role r ON u.id_role = r.id_role
|
||||
WHERE u.id_user = p_id_user
|
||||
LIMIT 1;
|
||||
END;;
|
||||
|
||||
Reference in New Issue
Block a user