wiki:ShowServices

Version 1 (modified by 202033, 3 weeks ago) ( diff )

--

Приказ на сите услуги што ги нуди салонот

Актери

  • Најавен или ненајавен корисник

Чекор 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)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.