Manage Product › Product List
🎬 Simulate: Main · main Reset

Product List

+ Add Product
Filter
Products 4 active · 1 inactive (default: active only)
Product Name Type Price (LAK) Covered Items Status Action
Basic Digital Skills · Lifetime Lifetime ₭ 450,000 1 Course Active Edit
Basic Digital Skills · 1 Year Period ₭ 350,000 1 Course Active Edit
Digital Literacy Track Lifetime ₭ 1,150,000 3 Courses + 1 Special Program + 2 Tags Active Edit
Technical Skills Pathway · 6 Months Period ₭ 720,000 1 Special Program + 3 Tags Active Edit
Pilot Course (legacy) Lifetime ₭ 200,000 1 Course Inactive Edit
Page 1 of 1 · 5 items

Screen Flow (from uc-bil-07-manage-product.flow.puml):

📝 Spec notes — UC-BIL.07 / SCR-BIL.08 (fields, actions, requirements)
Identity
  • Screen: SCR-BIL.08 — Product List
  • Use case: UC-BIL.07 — Manage Product
  • Primary actor: Sale Admin (ACT-12)
Brief description

Product List is the admin-facing master page for UC-BIL.07 — Sale Admin sees the entire Product catalog (lifetime + period) with filters for type, status, and link kind. Each row shows name, type, price, covered-item summary, status, and an Edit button. Status changes (activate / deactivate) are performed exclusively through the Edit form (SCR-BIL.09) — there is no separate Deactivate button on this screen.

Fields
  • filter_type "Product Type" — enum (all / lifetime / period) · default: all · always visible · editable
  • filter_status "Status" — enum (all / active / inactive) · default: active · always visible · editable
  • filter_link_kind "Linked To" — enum (all / course / special_program / tag) · default: all · always visible · editable
  • row_name "Product Name" — text · Product.name · always · read-only
  • row_type "Type" — enum (lifetime / period) · Product.type · always · read-only
  • row_price "Price (LAK)" — number · Product.price · always · read-only
  • row_link_summary "Covered Items" — computed (count summary: courses + special programs + tags) · always · read-only
  • row_status "Status" — enum (active / inactive) · Product.status · always · read-only
  • page_no "Page" — number · default: 1 · visible when total_pages > 1 · min: 1
Actions
  • search "Search" — always enabled · triggers UC-BIL.07-M-1 (re-loads product list with applied filters)
  • clear "Clear" — always enabled · resets all filters to defaults (type: all, status: active, linked_to: all)
  • add_product "+ Add Product" — always enabled · triggers UC-BIL.07-M-2 → navigates to Product Form (create mode)
  • edit_product "Edit" — always enabled per row · triggers UC-BIL.07-A-2A-1 → navigates to Product Form (edit mode, pre-filled)
  • prev_page "Previous" — enabled when page_no > 1 · triggers UC-BIL.07-M-1
  • next_page "Next" — enabled when page_no < total_pages · triggers UC-BIL.07-M-1
Additional requirements
  1. RBAC — Sale Admin (ACT-12) or Super Administrator (ACT-04); reject 403 + log security event if user lacks the role. [refs: NFR-10]
  2. Product list default shows active only (filter_status default = active); inactive Products appear when admin selects filter_status = all or inactive. [refs: —]
  3. Pagination default 20 rows/page. [refs: NFR-02]
  4. Success notification (toast or inline banner) shown after Add / Edit success — message includes product name and action performed. [refs: —]
⚠ UC open issues
  • Product schema (multi-link lists) conflicts with entities.puml and UC-BIL.01 data_touched (old link_type/link_ref single-link) — awaiting /analyze-entities reconcile.
  • SpecialProgram + Tag entities not yet registered in LMS Core entities.puml — /analyze-entities must add them.
  • Price/type change on a Product with active Subscriptions — current design: "no impact (snapshot pricing stored in Transaction)" — awaiting DTVE confirmation.