Skip to content

Extra Printing Options — Post-Implementation Specification

The printing format system now supports 15 sizes per category (card, label, breadcrumb): X_SMALL, SMALL, MEDIUM, LARGE, X_LARGE, and SPECIAL_01 through SPECIAL_10. CSV upload accepts both protobuf enum names and display-name aliases. Template configuration includes an active flag for future frontend filtering.

The specification originally stated 48 entries (16 per category). The actual count is 45 (15 per category) because LARGE+QR was folded into SPECIAL_01 rather than retained as a separate row. The specification docs were corrected during implementation.

D-02: CSV alias mechanism — valueAliases in ColumnDef

Section titled “D-02: CSV alias mechanism — valueAliases in ColumnDef”

The specification described alias resolution in ItemCsvUploadService.kt. The actual implementation adds valueAliases as a general-purpose feature of the ColumnDef configuration, resolved in Row.kt’s parseScalar ENUM branch. This is a broader, more reusable design than specified.

D-03: ItemCsvUploadService takes MappingConfig instead of separate maps

Section titled “D-03: ItemCsvUploadService takes MappingConfig instead of separate maps”

The specification showed headerAliases and valueAliases as separate constructor parameters. The implementation passes the MappingConfig object directly, which is cleaner and more stable.

The initial implementation lowercased the resolved value, which made findValueByName() a dead branch. This was caught in code review and fixed to preserve original casing for non-alias values while lowercasing only the alias lookup key.

MetricValue
Files changed (operations)16
Lines added / removed+494 / -58
New enum values33 (11 per category)
New pdf-templates.json entries33
New spreadsheet rows33
New unit tests4
Test files updated6
Commits2 (feat + fix)
PRs2 (operations, documentation)
Tickets created1 (frontend, management#850)

All 24 acceptance criteria from the goal file are addressed:

  • Spreadsheet (AC 1–4): Done
  • Backend (AC 5–14): Done (AC 13 coverage verified via koverVerify)
  • Frontend ticket (AC 15–20): Done (management#850)
  • System integration (AC 21–24): Pending deployment verification

Copyright: (c) Arda Systems 2025-2026, All rights reserved