= Остави рецензија (Leave Review) == Актери Најавен корисник (клиент) == Чекор 1 Корисникот ја отвора страницата „My Appointments“. Системот ги прикажува сите негови термини и го пресметува условот дали може да се остави рецензија (терминот мора да е платен и завршен). SQL поглед што го користи системот: {{{ SELECT appointment_id, appointment_time, end_time, paid_payment_id, can_review FROM v_user_appointments_payment_state WHERE user_id = $1; }}} == Чекор 2 Корисникот избира термин за кој има право да остави рецензија и ја отвора формата за внес: * рејтинг (1–5) * коментар (опционално) == Чекор 3 Корисникот ја потврдува рецензијата. Системот ги проверува условите: * плаќањето постои, * статусот е PAID, * терминот е завршен, * терминот е од истиот корисник, * нема постоечка рецензија за ова плаќање. SQL што се користи: {{{ SELECT sp_create_review( $1::int, -- user_id $2::int, -- payment_id $3::int, -- rating $4::text -- comment ) AS review_id; }}} == Чекор 4 Системот ја креира рецензијата во базата. Внатрешната SQL операција во функцијата sp_create_review: {{{ INSERT INTO review (rating, comment, payment_id) VALUES (p_rating, p_comment, p_payment_id) RETURNING review_id; }}} == Резултат Новата рецензија е успешно зачувана во базата. Корисникот повеќе не може да остави друга рецензија за истиот термин. Рецензијата станува видлива во „My Appointments“ и во „Преглед на услуги“ каде се пресметуваат новите просечни оценки.