| Version 1 (modified by , 3 weeks ago) ( diff ) |
|---|
Преглед на рецензии за услуга
Актери
- Најавен или ненајавен корисник
Чекор 1
Корисникот се наоѓа на страницата за Преглед на услуги и избира конкретна услуга, по што кликнува на копчето „View reviews“.
Чекор 2
Системот ја пронаоѓа избраната услуга во веќе вчитаните податоци според service_id и го зема полето reviews за таа услуга.
Секоја рецензија во ова поле содржи:
rating– оценка,comment– текст на рецензијата,created_at– датум и време на креирање,reviewer– корисник кој ја оставил рецензијата.
Податоците за рецензиите се генерираат во базата преку следниот SQL поглед:
CREATE OR REPLACE VIEW v_services_grouped_by_category AS
SELECT
c.category_id,
c.name AS category_name,
COALESCE(
jsonb_agg(
jsonb_build_object(
'service_id', s.service_id,
'name', s.name,
'price', s.price,
'duration_minutes', s.duration_minutes,
'avg_rating', COALESCE(svc.avg_rating, 0),
'review_count', COALESCE(svc.review_count, 0),
'reviews', COALESCE(svc.reviews, '[]'::jsonb)
)
ORDER BY s.service_id
) FILTER (WHERE s.service_id IS NOT NULL),
'[]'::jsonb
) AS services
FROM category c
LEFT JOIN service s ON s.category_id = c.category_id
LEFT JOIN LATERAL (
SELECT
ROUND(AVG(r.rating)::numeric, 1) AS avg_rating,
COUNT(r.review_id) AS review_count,
COALESCE(
jsonb_agg(
jsonb_build_object(
'review_id', r.review_id,
'rating', r.rating,
'comment', r.comment,
'created_at', r.created_at,
'reviewer', u.full_name
)
ORDER BY r.created_at DESC
) FILTER (WHERE r.review_id IS NOT NULL),
'[]'::jsonb
) AS reviews
FROM appointmentservice aps
JOIN appointment a ON a.appointment_id = aps.appointment_id
JOIN payment p ON p.appointment_id = a.appointment_id
JOIN review r ON r.payment_id = p.payment_id
JOIN "User" u ON u.user_id = a.user_id
WHERE aps.service_id = s.service_id
AND p.status = 'PAID'
) svc ON true
GROUP BY c.category_id, c.name;
Чекор 3
Системот ги прикажува сите рецензии за избраната услуга, вклучувајќи:
- оценка,
- име на рецензентот,
- датум и време,
- текст на коментарот.
Корисникот може да ги прегледа сите рецензии и повторно да го затвори делот со кликнување на „View reviews“.
Attachments (1)
- reviews-1.jpg (108.0 KB ) - added by 3 weeks ago.
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.
