| | 1 | = UseCase06 - Leave a client review |
| | 2 | ** Initiating actor: Client ** |
| | 3 | == Description |
| | 4 | A logged-in client can submit a review about another user in the system. |
| | 5 | == Scenario |
| | 6 | 1. Client opens a target user profile. |
| | 7 | {{{ |
| | 8 | SELECT user_id, username, name, surname |
| | 9 | FROM users |
| | 10 | WHERE username = 'client.igor'; |
| | 11 | }}} |
| | 12 | 2. Clicks the "Leave review" button. |
| | 13 | 3. Client enters rating, comment and submits. |
| | 14 | {{{ |
| | 15 | BEGIN; |
| | 16 | |
| | 17 | WITH new_review AS ( |
| | 18 | INSERT INTO reviews (reviewer_id, rating, comment, created_at) |
| | 19 | VALUES ( |
| | 20 | (SELECT user_id FROM users WHERE username = 'client.sara'), |
| | 21 | 5, |
| | 22 | 'Very helpful and professional. Recommended!', |
| | 23 | NOW() |
| | 24 | ) |
| | 25 | RETURNING review_id |
| | 26 | ) |
| | 27 | |
| | 28 | INSERT INTO user_reviews (review_id, target_user_id) |
| | 29 | SELECT |
| | 30 | nr.review_id, |
| | 31 | (SELECT user_id FROM users WHERE username = 'client.igor') |
| | 32 | FROM new_review nr; |
| | 33 | |
| | 34 | COMMIT; |
| | 35 | }}} |