| 344 | | CREATE EXTENSION IF NOT EXISTS postgis; |
| 345 | | |
| 346 | | |
| 347 | | |
| 348 | | -- Тест процедура 1 — генерирај тикети |
| 349 | | CALL generate_tickets_for_screening(55105026, 350.00); |
| 350 | | |
| 351 | | ALTER TABLE TICKET ALTER COLUMN user_id DROP NOT NULL; |
| 352 | | ALTER TABLE TICKET ALTER COLUMN reservation_id DROP NOT NULL; |
| 353 | | |
| 354 | | SELECT column_name, is_nullable |
| 355 | | FROM information_schema.columns |
| 356 | | WHERE table_name = 'ticket' |
| 357 | | AND column_name IN ('user_id', 'reservation_id'); |
| 358 | | |
| 359 | | CALL generate_tickets_for_screening(55105026, 350.00); |
| 360 | | |
| 361 | | -- Земи слободен тикет од новата проекција |
| 362 | | SELECT ticket_id FROM TICKET |
| 363 | | WHERE screening_id = 55105026 |
| 364 | | AND user_id IS NULL |
| 365 | | LIMIT 1; |
| 366 | | |
| 367 | | -- Земи вистински user_id |
| 368 | | SELECT user_id FROM "USER" LIMIT 1; |
| 369 | | |
| 370 | | -- Земи вистински reservation_id со статус PENDING |
| 371 | | SELECT reservation_id FROM RESERVATION |
| 372 | | WHERE status = 'PENDING' |
| 373 | | LIMIT 1; |
| 374 | | |
| 375 | | -- Земи вистински product_id |
| 376 | | SELECT product_id FROM PRODUCT LIMIT 3; |
| 377 | | |
| 378 | | CALL purchase_ticket_with_products(12818005, 'admin01', 4000005, ARRAY[1, 2, 3]); |
| 379 | | CALL add_movie_review('admin01', 195, 8, 'Одличен филм, препорачувам!'); |
| 380 | | |
| 381 | | -- Земи филм за кој admin01 има тикет но нема review |
| 382 | | SELECT DISTINCT s.movie_id |
| 383 | | FROM TICKET t |
| 384 | | JOIN SCREENING s ON s.screening_id = t.screening_id |
| 385 | | WHERE t.user_id = 'admin01' |
| 386 | | AND s.movie_id NOT IN (SELECT movie_id FROM REVIEW WHERE user_id = 'admin01') |
| 387 | | LIMIT 1; |
| 388 | | |
| 389 | | SELECT DISTINCT s.movie_id |
| 390 | | FROM TICKET t |
| 391 | | JOIN SCREENING s ON s.screening_id = t.screening_id |
| 392 | | WHERE t.user_id = 'admin01' |
| 393 | | AND s.movie_id NOT IN (SELECT movie_id FROM REVIEW WHERE user_id = 'admin01') |
| 394 | | LIMIT 1; |
| 395 | | |
| 396 | | SELECT DISTINCT s.movie_id |
| 397 | | FROM TICKET t |
| 398 | | JOIN SCREENING s ON s.screening_id = t.screening_id |
| 399 | | WHERE t.user_id = 'admin01' |
| 400 | | AND s.movie_id NOT IN (SELECT movie_id FROM REVIEW WHERE user_id = 'admin01') |
| 401 | | LIMIT 1; |
| 402 | | SELECT user_id FROM "USER" WHERE user_id != 'admin01' LIMIT 1; |
| 403 | | |
| 404 | | SELECT DISTINCT s.movie_id |
| 405 | | FROM TICKET t |
| 406 | | JOIN SCREENING s ON s.screening_id = t.screening_id |
| 407 | | WHERE t.user_id = 'admin02' |
| 408 | | AND s.movie_id NOT IN (SELECT movie_id FROM REVIEW WHERE user_id = 'admin02') |
| 409 | | LIMIT 1; |
| 410 | | CALL add_movie_review('admin02', 195, 7, 'Многу добар филм!'); |
| | 344 | |
| | 345 | CREATE OR REPLACE TRIGGER trg_complete_past_reservations |
| | 346 | AFTER INSERT ON SCREENING |
| | 347 | FOR EACH ROW |
| | 348 | EXECUTE FUNCTION complete_past_reservations(); |