Changes between Initial Version and Version 1 of ShowServices


Ignore:
Timestamp:
03/02/26 09:47:19 (3 weeks ago)
Author:
202033
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ShowServices

    v1 v1  
     1= Приказ на сите услуги што ги нуди салонот
     2
     3== Актери
     4 * Најавен или ненајавен корисник
     5
     6== Чекор 1
     7Корисникот кликнува на копчето „Services“ во навигацијата.
     8
     9== Чекор 2
     10Системот ги вчитува сите категории и услугите што припаѓаат на нив преку SQL погледот `v_services_grouped_by_category`:
     11
     12{{{
     13SELECT category_id, category_name, services
     14FROM v_services_grouped_by_category
     15ORDER BY category_id;
     16}}}
     17
     18Овој поглед ги агрегира услугите по категории и ги прикажува нивните цени, времетраење, просечна оцена, број на рецензии и целосната листа на рецензии (reviews).
     19
     20== Чекор 3
     21Системот проверува дали табелата `Package` ја содржи колоната `total_price`, што е потребно за пресметка на крајната цена на секој пакет:
     22
     23{{{
     24SELECT 1
     25FROM information_schema.columns
     26WHERE table_name = 'package'
     27  AND column_name = 'total_price'
     28LIMIT 1;
     29}}}
     30
     31== Чекор 4
     32Системот ги вчитува сите пакети и услугите што ги содржат пакетите, вклучувајќи попустена цена по услуга и пресметана вкупна цена:
     33
     34{{{
     35SELECT
     36  p.package_id,
     37  p.name AS package_name,
     38  p.max_usage,
     39  ${totalPriceExpr}::numeric AS total_price,
     40  s.service_id,
     41  s.name AS service_name,
     42  ps.discounted_price
     43FROM Package p
     44LEFT JOIN LATERAL (
     45  SELECT COALESCE(SUM(ps2.discounted_price), 0)::numeric AS calc_total_price
     46  FROM PackageService ps2
     47  WHERE ps2.package_id = p.package_id
     48) package_price ON true
     49LEFT JOIN PackageService ps
     50  ON ps.package_id = p.package_id
     51LEFT JOIN Service s
     52  ON s.service_id = ps.service_id
     53ORDER BY p.package_id, s.name;
     54}}}
     55
     56== Чекор 5
     57Системот ја прикажува страницата „Services“, која ги содржи:
     58 * сите категории,
     59 * сите услуги во секоја категорија,
     60 * деталите за услуги (име, цена, времетраење, број на рецензии и комплетен список на рецензии),
     61 * сите достапни пакети со нивната пресметана цена и детали за услугите во нив.
     62
     63[[Image(showservices-1.jpg, width=600px)]]
     64