Профил на Корисник
Актери
- Најавен корисник
Чекор 1
Корисникот кликнува на линкот/копчето со своето име или страницата му се прикажува по успешна најава.
Чекор 2
Системот го идентификува најавениот корисник (преку неговиот user_id) и ги вчитува основните податоци за профилот.
SELECT u.user_id, u.full_name, u.email, u.phone, u.created_at FROM "User" u WHERE u.user_id = $1;
Чекор 3
Системот ги вчитува улогите на корисникот од табелите UserRole и Role, за да знае кои делови од профилот и кои функционалности му се достапни.
SELECT r.name FROM UserRole ur JOIN Role r ON ur.role_id = r.role_id WHERE ur.user_id = $1;
Чекор 4
Системот ги вчитува сите идни закажани термини на корисникот. Системот ја користи view табелата v_user_appointments и филтрира по корисник и термин во иднина:
SELECT appointment_id, to_char(appointment_time, 'YYYY-MM-DD"T"HH24:MI:SS') AS appointment_time, to_char(end_time, 'YYYY-MM-DD"T"HH24:MI:SS') AS end_time, total_price, notes, status_name, appointment_type, services FROM v_user_appointments WHERE user_id = $1 AND appointment_time >= NOW() ORDER BY appointment_time ASC;
Овие податоци се прикажуваат во делот „Upcoming Appointments“ на профилот.
Чекор 5
Системот ги вчитува сите минати термини на корисникот, повторно преку view табелата v_user_appointments, но со услов за термини во минатото:
SELECT appointment_id, to_char(appointment_time, 'YYYY-MM-DD"T"HH24:MI:SS') AS appointment_time, to_char(end_time, 'YYYY-MM-DD"T"HH24:MI:SS') AS end_time, total_price, notes, status_name, appointment_type, services FROM v_user_appointments WHERE user_id = $1 AND appointment_time < NOW() ORDER BY appointment_time DESC;
Овие податоци се прикажуваат во делот „Past Appointments“.
Чекор 6
Системот ја прикажува страницата „Профил“ со:
- основните информации за корисникот
- листа на претстојни термини
- листа на минати термини
