| | 1 | = Профил на Корисник |
| | 2 | |
| | 3 | == Актери |
| | 4 | * Најавен корисник |
| | 5 | |
| | 6 | == Чекор 1 |
| | 7 | Корисникот кликнува на линкот/копчето со своето име или страницата му се прикажува по успешна најава. |
| | 8 | |
| | 9 | == Чекор 2 |
| | 10 | Системот го идентификува најавениот корисник (преку неговиот user_id) и ги вчитува основните податоци за профилот. |
| | 11 | |
| | 12 | {{{ |
| | 13 | SELECT u.user_id, u.full_name, u.email, u.phone, u.created_at |
| | 14 | FROM "User" u |
| | 15 | WHERE u.user_id = $1; |
| | 16 | }}} |
| | 17 | |
| | 18 | == Чекор 3 |
| | 19 | Системот ги вчитува улогите на корисникот од табелите UserRole и Role, за да знае кои делови од профилот и кои функционалности му се достапни. |
| | 20 | |
| | 21 | {{{ |
| | 22 | SELECT r.name |
| | 23 | FROM UserRole ur |
| | 24 | JOIN Role r ON ur.role_id = r.role_id |
| | 25 | WHERE ur.user_id = $1; |
| | 26 | }}} |
| | 27 | |
| | 28 | == Чекор 4 |
| | 29 | Системот ги вчитува сите идни закажани термини на корисникот. |
| | 30 | Системот ја користи view табелата v_user_appointments и филтрира по корисник и термин во иднина: |
| | 31 | |
| | 32 | {{{ |
| | 33 | SELECT |
| | 34 | appointment_id, |
| | 35 | to_char(appointment_time, 'YYYY-MM-DD"T"HH24:MI:SS') AS appointment_time, |
| | 36 | to_char(end_time, 'YYYY-MM-DD"T"HH24:MI:SS') AS end_time, |
| | 37 | total_price, |
| | 38 | notes, |
| | 39 | status_name, |
| | 40 | appointment_type, |
| | 41 | services |
| | 42 | FROM v_user_appointments |
| | 43 | WHERE user_id = $1 |
| | 44 | AND appointment_time >= NOW() |
| | 45 | ORDER BY appointment_time ASC; |
| | 46 | }}} |
| | 47 | |
| | 48 | Овие податоци се прикажуваат во делот „Upcoming Appointments“ на профилот. |
| | 49 | |
| | 50 | == Чекор 5 |
| | 51 | Системот ги вчитува сите минати термини на корисникот, повторно преку view табелата v_user_appointments, но со услов за термини во минатото: |
| | 52 | |
| | 53 | {{{ |
| | 54 | SELECT |
| | 55 | appointment_id, |
| | 56 | to_char(appointment_time, 'YYYY-MM-DD"T"HH24:MI:SS') AS appointment_time, |
| | 57 | to_char(end_time, 'YYYY-MM-DD"T"HH24:MI:SS') AS end_time, |
| | 58 | total_price, |
| | 59 | notes, |
| | 60 | status_name, |
| | 61 | appointment_type, |
| | 62 | services |
| | 63 | FROM v_user_appointments |
| | 64 | WHERE user_id = $1 |
| | 65 | AND appointment_time < NOW() |
| | 66 | ORDER BY appointment_time DESC; |
| | 67 | }}} |
| | 68 | |
| | 69 | Овие податоци се прикажуваат во делот „Past Appointments“. |
| | 70 | |
| | 71 | == Чекор 6 |
| | 72 | Системот ја прикажува страницата „Профил“ со: |
| | 73 | * основните информации за корисникот |
| | 74 | * листа на претстојни термини |
| | 75 | * листа на минати термини |