Requirements: Inventory v00
Functional requirements for Inventory v00 — see the project goal for purpose and scope. Each requirement has a stable identifier used by verification.md and specification.md. Requirements describe what the system does once implemented, not how it is built.
Data model & API (operations)
Section titled “Data model & API (operations)”- REQ-INV-001 — The
Itementity has a nullable fieldtotalInventoryCountof typeQuantity(anamountand aunit). - REQ-INV-002 — The
Itementity has a nullable fieldlastCountDateof typeDateTime(a timestamp plus an IANA timezone). Wire contract:{ "timestamp": <epoch millis>, "tz": "<IANA name>" }, wheretzis the plain IANA string (e.g."America/New_York"). - REQ-INV-003 — Creating an Item accepts both fields; both are optional, and
an omitted field is persisted as
null. - REQ-INV-004 — Reading an Item returns both fields,
nullwhen unset. - REQ-INV-005 — Updating an Item (PUT full-document replace) persists the
submitted values; a field omitted from the request is cleared to
null, and thenullis durable across subsequent reads. - REQ-INV-006 — Quantity normalization for
totalInventoryCount: whenamountis present andunitabsent,unitdefaults to"each"; whenunitis present andamountabsent,amountdefaults to0; when both are absent the whole field isnull. (This satisfies the persistence layer’s both-columns-null-or-both-set rule by filling the missing half rather than rejecting.) - REQ-INV-007 — No range or content validation beyond nullability: any
numeric
amount, anyunitstring, and any timestamp are accepted. - REQ-INV-008 — Both fields are additive and backward compatible: existing Item create/read/update payloads that omit them remain valid and unchanged in behavior.
Items List View (arda-frontend-app)
Section titled “Items List View (arda-frontend-app)”- REQ-INV-010 — The Items List View exposes three columns: count
amount, countunit, and last count date. All three are hidden by default and made visible through the column-visibility menu. - REQ-INV-011 — The three columns are inline-editable; edits persist through the same update path as the existing editable columns.
- REQ-INV-012 — Inline editing mirrors the existing quantity columns: count
amountuses the default numeric editor, countunituses the unit editor, and last count date uses a date cell editor at date granularity. A date chosen inline is stored as noon (12:00) in the hinted timezone (noon avoids off-by-one date shifts under timezone/DST conversion); precise time-of-day is only set via the Detail Edit panel. - REQ-INV-013 — Columns format per existing conventions (en-US); an empty value renders as the existing placeholder.
- REQ-INV-014 — Because count
amountandunitare separate cells with the REQ-INV-006 defaults, a single inline edit cannot set the whole count tonull; fully clearing the count is done in the Detail Edit panel.
Item Detail panel (arda-frontend-app)
Section titled “Item Detail panel (arda-frontend-app)”- REQ-INV-020 — The Item Detail View panel displays both fields under an “Inventory Count” group placed at the end of the panel; empty values render as the existing placeholder.
- REQ-INV-021 — The Item Detail Edit panel exposes both fields under an “Inventory Count” group placed at the end (and listed in the panel’s table of contents): a number + unit input for the count and a clearable date-time input for the date.
- REQ-INV-022 — Either field can be set to a value and later cleared back
to
nullin the Edit panel, and thenullpersists on reload. - REQ-INV-023 — When
lastCountDateisnull, the date-time edit control pre-seeds to “now” for convenience; the user may accept it, change it, or clear it back tonull.
Documentation
Section titled “Documentation”- REQ-INV-030 — The Item current-system functional reference documents both new fields (type, nullability, and the normalization/default behavior).
Copyright: (c) Arda Systems 2025-2026, All rights reserved
Copyright: © Arda Systems 2025-2026, All rights reserved