Changes between Version 17 and Version 18 of AdvancedApplicationDevelopment


Ignore:
Timestamp:
09/30/25 09:10:24 (2 weeks ago)
Author:
223270
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedApplicationDevelopment

    v17 v18  
    7979AFTER DELETE ON review
    8080FOR EACH ROW EXECUTE FUNCTION trg_recalc_dest_flag_trigger();
     81}}}
     82
     832. Тежинска просечна оцена, каде што помал број рецензии имаат помала тежина - без деактивирање, само со можност за admin да ги филтрира.
     84{{{
     85CREATE OR REPLACE FUNCTION recalc_destination_flag_weighted(p_dest INT)
     86RETURNS VOID LANGUAGE plpgsql AS $$
     87DECLARE
     88    avg_rating FLOAT;
     89    total_reviews INT;
     90    weight_rating FLOAT;
     91BEGIN
     92    SELECT AVG(quality), COUNT(*) INTO avg_rating, total_reviews
     93    FROM review
     94    WHERE id_destination = p_dest;
     95
     96    IF total_reviews < 5 THEN
     97        weight_rating := avg_rating * (total_reviews::FLOAT / 5);
     98    ELSE
     99        weight_rating := avg_rating;
     100    END IF;
     101
     102    IF total_reviews >= 1 AND COALESCE(weight_rating, 0) < 3 THEN
     103        UPDATE destination SET is_flagged = TRUE WHERE id_destination = p_dest;
     104    ELSE
     105        UPDATE destination SET is_flagged = FALSE WHERE id_destination = p_dest;
     106    END IF;
     107END;
     108$$;
    81109}}}
    82110