wiki:UserDashboard

Version 1 (modified by 202033, 3 weeks ago) ( diff )

--

Профил на Корисник

Актери

  • Најавен корисник

Чекор 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

Системот ја прикажува страницата „Профил“ со:

  • основните информации за корисникот
  • листа на претстојни термини
  • листа на минати термини
Note: See TracWiki for help on using the wiki.