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