| 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 | |