# RFID Page Design

## Goal

Add an RFID management page to `tiar-csms` that follows the existing `/rfid` page in `tiar-dashboard`. This stage is a UI preview with mock data only; it must not call the backend or persist mutations.

## Scope

- Add the `/rfid` route and connect the existing **RFID Cards** navigation item to it.
- Match the reference page's two tabs: **RFID** and **Group RFID**.
- RFID tab: table columns for name, RFID code, parent group, active status, user, and created date; include search, filter, sorting, pagination, refresh, export, and create/edit/delete affordances.
- Group RFID tab: table columns for group name, description, active status, RFID count, created date, and updated date; include search/filter, sorting, pagination, refresh, and create/edit/delete affordances.
- Use local mock records so the visible table and dialogs can be reviewed without backend requests. Create/edit/delete actions update only in-memory records; tab, search, filters, sorting, and pagination use URL query parameters.
- Keep the existing CSMS visual system and responsive behavior while matching the reference layout and density.
- Do not add dependencies.
- Exclude a separate group-detail route. The reference links group names to `/parent-rfid/:id`, but no matching page exists in the reference app source.

## Data and interactions

- Seed a small, clearly fictional set of RFID and group records.
- Create RFID form mirrors the reference fields: organization, user, name, RFID code, active, optional parent group, description, and expiry.
- Create/edit group forms use group name, description, and active status.
- Use existing shared dialog, form, table, pagination, and toast primitives where available.
- Refresh resets in-memory records to their initial mock state and clears list query parameters. No action should issue an HTTP request.

## API findings for a later integration stage

The Postman collection contains CRUD requests for `/v1/admin/tenant/rfids` and `/v1/admin/tenant/parent-rfids`; the tenant-service source has corresponding handlers. API integration is intentionally deferred until the UI is reviewed.

## Acceptance criteria

- The existing navigation item opens `/rfid` and shows the two reference tabs.
- Search, filters, sorting, pagination, and local CRUD interactions work against mock data in both tabs.
- The page has useful empty states and remains usable at narrow viewport widths.
- No RFID request is sent to the backend.
- No document is included in any commit or push.
