StackTrading Docs

SRS: UC_4.7.2 — Notification Center: Filters

FieldValue
BA in ChargeTrang Nguyen
Date Created2026-08-08
Versionv1.1
Document Referencesdocs/BA/Common_rule/notification_center_matrix.md §1 (API surface) · docs/BA/UC_4.1-4.17/dashboard_sim/UC_4.7.2/QnA_init_docs.md (QN-4.7.2-01..05) · UC_4.7.1 (bell/dropdown host) · [CHR-54] (new "Billings & Subscriptions" category)

UC_4.7.2 — Notification Center: Filters

1. Overview

FieldContent
IDUC_4.7.2
Use CaseNotification Center: Filters
DescriptionDefines the filter engine hosted inside the notification dropdown panel opened via the bell icon (Ref:UC_4.7.1) — an All/Unread toggle, a multi-select category filter, and a date filter (preset dropdown: Today / Yesterday / Last 7 days / Last 30 days), combined with AND logic. The same filter dimensions and combination rule apply to the full notification list rendered inside that panel, owned by UC_4.7.3. This UC does not own the notification list rendering or the mark-as-read mechanics — see UC_4.7.3. 🆕[CHR-54] The category filter now has a 6th value, Billings & Subscriptions (Flow 22 — Monthly Data Fee Billing). This UC only adds the category value to the filter list; the underlying event mapping (Payment Failure WARN, End-of-Month Downgrade CRITICAL) is documented in the LIVE Notification Center UC (Ref: UC_4.12.4 BR_4.12.4.1), not here.
Zapier Flow
Zapier Table
3rd Party

References/Wireframe/Stage 2/Dashboard/No Notification.png · References/Wireframe/Stage 2/Dashboard/Notification expanded.png · References/Wireframe/Stage 2/Dashboard/Notification shortened.png · References/Wireframe/Stage 2/Dashboard/Notification_Mark as Read.png — dropdown panel wireframes showing the filter tabs' visual context (no dedicated wireframe exists for the filter controls in isolation; see the dropdown panel screenshots referenced in UC_4.7.1).

2. Trigger

  • User opens the notification dropdown panel (Ref: UC_4.7.1) — filters default to their initial state, date filter defaulting to Last 7 days (Ref: BR_4.7.2.4).
  • User interacts with the All/Unread toggle, the category filter, or the date filter dropdown.

3. Pre-conditions

  • The notification dropdown panel is open.
  • Applies to both SIM and LIVE account types — the filter engine (All/Unread toggle, category multi-select, date filter dropdown) is the same shared UI regardless of account type.

4. Post-conditions

  • The notification list (owned by UC_4.7.3) reflects the current combination of status + category (array) + start_date/end_date resolved from the selected date preset, joined by AND (Ref: BR_4.7.2.1).

5. Basic Flow

  1. Filter panel renders with default state: "All" tab active (status filter), no category selected (i.e. all 5 categories implicitly included), date filter defaulted to Last 7 days (Ref: BR_4.7.2.4).
  2. User clicks the "Unread" tab → status filter switches to Unread; list re-queries with status=Unread plus any other active filters (Ref: BR_4.7.2.2).
  3. User selects one or more category tabs (e.g. "Risk Warning" + "System Status") → category filter becomes a multi-value array; list re-queries with category=[...] plus any other active filters (Ref: BR_4.7.2.3).
  4. User opens the date filter dropdown and selects one of the preset values (Today / Yesterday / Last 7 days / Last 30 days) → the selected preset resolves to a start_date/end_date pair (Ref: BR_4.7.2.4); list re-queries with all active filters combined by AND (Ref: BR_4.7.2.1).
  5. User clicks the "All" tab again → status, category, and date filters all reset to their default state (Ref: BR_4.7.2.5).

6. Alternative Flow

  • [If the user selects a category with zero confirmed backend events] (Payout Events / Mentor-Community Prompts, Ref: UC_4.7.1 BR_4.7.1.1; and Billings & Subscriptions 🆕[CHR-54], whose event mapping is documented on the LIVE UC, not SIM — Ref: UC_4.12.4 BR_4.12.4.1) → the filter still applies (tab is selectable), but the resulting list is always empty (Ref: UC_4.7.3 empty-state rule).

7. Exceptional Flow

  • None specific to this UC — network/error handling for the underlying GET /notifications call is owned by UC_4.7.3.

8. Business Rules

BR_4.7.2.1: Filter Combination Logic — AND

The 3 filter dimensions (status, category, date range) combine with AND logic. GET /notifications is called with all currently-active params (status, category, start_date/end_date) at once; the result satisfies every active filter simultaneously, never a union of independently-filtered sets. (Source: QN-4.7.2-01; notification_center_matrix.md §1)

BR_4.7.2.2: All/Unread Is a 2-State Tab Toggle

"All" and "Unread" are 2 mutually-exclusive tabs (not a dropdown, not a 3-way toggle with a separate "Read" tab). Default active tab is "All". The status API param accepts only All or Unread. (Source: QN-4.7.2-02)

BR_4.7.2.3: Category Filter Is Multi-Select

Users can select multiple category tabs simultaneously (e.g. "Risk Warning" + "System Status" at once). Default selection state is "All categories" (no explicit category filter applied, equivalent to selecting all 6). The category API param must accept an array of values, not a single string. [ASSUMPTION] — this is a change from the original category param shape documented as a single string in notification_center_matrix.md §1; the API contract must be updated to accept an array. Flag for backend confirmation before implementation. (Source: QN-4.7.2-03)

🆕 [CHR-54] Category count is now 6, not 5: per client confirmation, a 6th category value — Billings & Subscriptions — is added to the standard taxonomy (previously A-13's 5: Risk Warning, Level Events, Payout Events, System Status, Mentor/Community Prompts). This UC only adds the filter value; it has no confirmed backend event source in the SIM-side UCs — the underlying Flow 22 event mapping is documented in UC_4.12.4 (Ref: [CHR-54]).

BR_4.7.2.4: Date Filter Is a Preset-Value Dropdown, Not a Range Picker

The date control is not a date-range picker. It is a dropdown/select control offering 4 fixed preset values: Today, Yesterday, Last 7 days, Last 30 days. Default selected value on panel open: Last 7 days (Ref: §5 Basic Flow step 1). Each preset resolves internally to a start_date/end_date pair before being sent to GET /notifications — it does not control the list's sort order. The list's sort order is always timestamp_utc descending (Ref: UC_4.7.3 Screen Description), independent of any date filter applied.

Preset → date range resolution (all ranges are inclusive of the current day):

  • Today: from 00:00:00 today to the current moment (server/client date basis).
  • Yesterday: the full calendar day immediately preceding today (00:00:0023:59:59 of yesterday).
  • Last 7 days: a rolling 7-day window that includes today — i.e. today plus the 6 calendar days immediately before it (today − 6 days through today, inclusive).
  • Last 30 days: a rolling 30-day window that includes today — i.e. today plus the 29 calendar days immediately before it (today − 29 days through today, inclusive).

(Source: QN-4.7.2-04, updated per direct BA instruction 2026-08-13 — supersedes the original date-range-picker design.)

9. Screen Description

No.Field NameField TypeDisplaying rule / Behaviour rule
1All/Unread ToggleTabDisplaying rule:- 2 tabs: "All", "Unread". Default state: "All" active.- Selection mode: Single.Behaviour rule:- On click "Unread": applies status=Unread (Ref: BR_4.7.2.2).- On click "All": resets all filters to default (Ref: BR_4.7.2.5).
2Category FilterCheckbox GroupDisplaying rule:- 6 options, always all visible: Risk Warning, Level Events, Payout Events, System Status, Mentor/Community Prompts (Ref: A-13), and Billings & Subscriptions 🆕[CHR-54] (Flow 22 — Monthly Data Fee Billing; event mapping owned by UC_4.12.4 BR_4.12.4.1, not this UC). Default state: none checked (equivalent to "all categories").- Selection mode: Multiple.Behaviour rule:- On check/uncheck: updates the category array filter param (Ref: BR_4.7.2.3); combines with other active filters by AND.
3Date FilterDropdown (Single-selection)Displaying rule:- 4 preset options: Today, Yesterday, Last 7 days, Last 30 days. Default selected: Last 7 days (Ref: BR_4.7.2.4).- Last 7 days = a rolling 7-day window including the current day (today + the 6 days before it).- Last 30 days = a rolling 30-day window including the current day (today + the 29 days before it).Behaviour rule:- On selecting a preset: resolves the preset to a start_date/end_date pair and applies it as the date filter (Ref: BR_4.7.2.4); combines with other active filters by AND.

Update History

DateVersionUpdated itemBeforeAfterNotes
2026-08-22v1 → v1.1CR_ID citation (L9, 23, 64, 94×2, 118 — 6 occurrences)CR-20260817-001 (+ dead link to References/CR/2026-08-17_billing-subscriptions-notification-category/CR_summary.md)[CHR-54] (REPLACE hoàn toàn, không giữ mã cũ) + corrected link to References/CR/2026-08-17_CR54_billing-subscriptions-notification-category/CR_summary.mdBA confirmed 2026-08-22: doc cited stale pre-renumbering ID CR-20260817-001 (that ID now belongs to the FAQ CR, unrelated) instead of the corrected CR-20260817-003 (Billings & Subscriptions notification, CHR-54) — per CR_summary.md's own audit note, all citations for this topic should use the renumbered ID. v4 Change Plan row A31 was based on the stale literal string and would have applied the wrong CHR — overridden per BA decision

On this page