Приказ на сите услуги што ги нуди салонот
Актери
- Најавен или ненајавен корисник
Чекор 1
Корисникот кликнува на копчето „Services“ во навигацијата.
Чекор 2
Системот ги вчитува сите категории и услугите што припаѓаат на нив преку SQL погледот v_services_grouped_by_category:
SELECT category_id, category_name, services FROM v_services_grouped_by_category ORDER BY category_id;
Овој поглед ги агрегира услугите по категории и ги прикажува нивните цени, времетраење, просечна оцена, број на рецензии и целосната листа на рецензии (reviews).
Чекор 3
Системот проверува дали табелата Package ја содржи колоната total_price, што е потребно за пресметка на крајната цена на секој пакет:
SELECT 1 FROM information_schema.columns WHERE table_name = 'package' AND column_name = 'total_price' LIMIT 1;
Чекор 4
Системот ги вчитува сите пакети и услугите што ги содржат пакетите, вклучувајќи попустена цена по услуга и пресметана вкупна цена:
SELECT
p.package_id,
p.name AS package_name,
p.max_usage,
${totalPriceExpr}::numeric AS total_price,
s.service_id,
s.name AS service_name,
ps.discounted_price
FROM Package p
LEFT JOIN LATERAL (
SELECT COALESCE(SUM(ps2.discounted_price), 0)::numeric AS calc_total_price
FROM PackageService ps2
WHERE ps2.package_id = p.package_id
) package_price ON true
LEFT JOIN PackageService ps
ON ps.package_id = p.package_id
LEFT JOIN Service s
ON s.service_id = ps.service_id
ORDER BY p.package_id, s.name;
Чекор 5
Системот ја прикажува страницата „Services“, која ги содржи:
- сите категории,
- сите услуги во секоја категорија,
- деталите за услуги (име, цена, времетраење, број на рецензии и комплетен список на рецензии),
- сите достапни пакети со нивната пресметана цена и детали за услугите во нив.
Attachments (1)
- showservices-1.jpg (134.4 KB ) - added by 3 weeks ago.
Download all attachments as: .zip

