# v64 Frontend Feature / Screen Matrix

This matrix is the source of truth for the Back Office information architecture.
It prevents major domains (especially Reporting/Exports) from being omitted.

| Domain | Primary screens | Backend readiness | v64 UI state |
|---|---|---|---|
| Dashboard | Executive / operational dashboard | `reporting/dashboard`, `reporting/branches` | Connected |
| Sales | Sales list, sale detail, returns, payment status | Sale detail/returns/payments exist; general sale-list endpoint not yet exposed | Navigation + gap documented |
| POS | Cashier workspace, shift, barcode, checkout, cash settlement | Existing sales/cash/printing APIs | Existing v62 POS retained |
| Catalog | Products, categories, brands, units, barcode | CRUD APIs exist | Products/categories/brands reorganized into separate list pages |
| Pricing | Price lists, price entries, scopes, margin guards | APIs exist | Product create uses price-list contract; dedicated pricing page next |
| Inventory | Balances, movements, transfers, counts, valuations | APIs exist | Navigation foundation; dedicated screens next |
| Purchasing | Suppliers, PO, receipts, invoices, payables | APIs exist | Required navigation/module in roadmap |
| CRM | Customers, groups, timeline, loyalty, wallet, credit | APIs exist | Required module in roadmap |
| Cash | Shifts, accounts, movements, reconciliation | APIs exist | POS uses shifts; Back Office screens next |
| Reporting | Dashboard, branches, products, inventory, purchasing, cash, customers | Strong reporting APIs already exist | Report Center foundation + real branch report |
| Export | CSV, XLSX, PDF/Print, saved views | No unified backend export job API yet | CSV + Print/PDF browser export in v64; XLSX/backend export service documented next |
| Organization | Companies, branches, warehouses, registers, devices | APIs exist | Structured overview |
| IAM | Users/memberships, roles, permissions, scopes | APIs exist | Dedicated management UI required |
| Printing | Printers, groups, routes, agents, jobs | APIs exist | Dedicated operational UI required |
| Restaurant | Floors, tables, orders, KDS, fulfillment | APIs exist | Separate vertical module, not mixed into core retail pages |
| Production | Recipes, batches, costing | APIs exist | Separate module, not mixed into catalog |
| Settings | Definitions/effective values | APIs exist | Settings shell defined; screens next |
| Approvals | Approval requests/decisions | APIs exist | Notification/task center later |

## UX invariants

1. One page = one primary job.
2. Lists first; create/edit forms open only when requested.
3. Small CRUD uses Modal/Drawer; complex entities use dedicated pages.
4. Dashboard contains summaries and drill-downs, never admin forms.
5. Reports are a first-class module with date filters, charts, tables and exports.
6. Important list/report pages expose search, filters, export and print actions at the top.
7. Responsive behavior is designed, not achieved by shrinking desktop pages.
8. Light / Dark / System theme is supported globally.
9. Keyboard navigation and command palette are application-wide capabilities.
10. No company/branch/register public IDs are typed by normal cashiers.

## Export architecture

v64 ships browser CSV and print/PDF for the connected report. The target export
layer is:

- CSV for raw tabular interoperability.
- XLSX for formatted operational exports.
- PDF for branded reports.
- Print for immediate hardcopy.
- Same active filters must be applied to every export.
- Future: background export jobs for large datasets and scheduled delivery.
