| 183 | |
| 184 | |
| 185 | = Процедури и тригери (Stored Procedures & Triggers) = |
| 186 | |
| 187 | == Што додадовме == |
| 188 | * Погледи: vw_user_spend, vw_class_utilization, vw_training_pop_monthly |
| 189 | * Тригери: BEFORE INSERT guard, AFTER INSERT/DELETE на "User_Booked_Class" (одржуваат seats_available) |
| 190 | * Складирана функција: book_class(user_id, class_id) |
| 191 | * Индекси (од страната Оптимизација) |
| 192 | |
| 193 | == Скрипта == |
| 194 | Целиот SQL е во `backend/sql/blisscore_enhancements.sql` и содржи: |
| 195 | - 3x CREATE VIEW (vw_user_spend, vw_class_utilization, vw_training_pop_monthly) |
| 196 | - 3x CREATE FUNCTION за тригерите (guard/decrement/increment) |
| 197 | - 3x CREATE TRIGGER за "User_Booked_Class" |
| 198 | - CREATE FUNCTION book_class(p_user_id BIGINT, p_class_id BIGINT) RETURNS text |
| 199 | - Индекси |
| 200 | |