| | 1 | = Купување пакет (Детално) = |
| | 2 | |
| | 3 | == Актери == |
| | 4 | - Клиент (Student) најавен |
| | 5 | |
| | 6 | == Чекор 1 - Најава == |
| | 7 | {{{ |
| | 8 | SELECT * |
| | 9 | FROM "User" |
| | 10 | WHERE email = :email |
| | 11 | AND password_hash = :pass; |
| | 12 | }}} |
| | 13 | |
| | 14 | == Чекор 2 - Листа на понудени пакети == |
| | 15 | {{{ |
| | 16 | SELECT p.* |
| | 17 | FROM "Package" p |
| | 18 | ORDER BY p.price; |
| | 19 | }}} |
| | 20 | |
| | 21 | == Чекор 3 - Корисникот клика “Купи” на одреден package_id == |
| | 22 | Системот создава запис во bridging табелата: |
| | 23 | {{{ |
| | 24 | INSERT INTO "User_Package" (user_id, package_id) |
| | 25 | VALUES (:curr_user_id, :selected_package_id); |
| | 26 | }}} |
| | 27 | |
| | 28 | == (Опционално) Ажурирање на број на часови == |
| | 29 | Ако следиме колку часови остануваат во пакетот: |
| | 30 | {{{ |
| | 31 | UPDATE "User_Package" |
| | 32 | SET classes_remaining = p.num_classes |
| | 33 | FROM "Package" p |
| | 34 | WHERE "User_Package".package_id = p.package_id |
| | 35 | AND user_id = :curr_user_id |
| | 36 | AND package_id = :selected_package_id; |
| | 37 | }}} |
| | 38 | |
| | 39 | == Резултат == |
| | 40 | Клиентот го има пакетот (на пр. “5-Class Pass”) за да букира часови бесплатно. |
| | 41 | |
| | 42 | ---- |
| | 43 | |