Task: Appraise party_status across all layers and produce evaluation checklist
Table of Contents
This page documents a task in the Commission: party_status story. It captures the goal, current status, acceptance, and any notes or results.
Goal
Understand the current state of party_status across every access layer (Qt, shell, CLI, SQL schema) and produce a structured evaluation checklist that records what is already working, what is missing, and what needs to be implemented. This checklist drives every subsequent task in the story.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Commission: party_status |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-06-25 |
Acceptance
- Qt list, detail, history, delete, and eventing assessed and status recorded.
- Shell list/add/remove command status recorded (expected: not yet implemented).
- CLI list/add/remove command status recorded (expected: not yet implemented).
- SQL schema review completed; any schema gaps noted.
- Evaluation checklist committed to the task Result section.
Plan
Surveyed every access layer by grepping named files, reading headers, cross-checking the entity coverage matrix, and inspecting the user manual structure.
Notes
The entity coverage matrix at doc/analysis/entity_coverage_matrix.org
already records party_status as: SQL=Y, Domain=Y, Tbl IO=Y, JSON IO=Y,
Qt=Y, HTTP=N, CLI=N, Shell=N, Wt=N. The appraisal confirms and details
this picture. Qt coverage is structural (all classes exist) — functional
verification post-NATS migration still needs a live run.
PRs
| PR | Title |
|---|---|
| #1322 | [agile] Appraise party_status and sync SQL + C++ core codegen |
Review
| Comment summary | File | Decision | Notes |
|---|---|---|---|
Result
Evaluation checklist — party_status (2026-06-25)
SQL layer ✅ COMPLETE
| Item | Status | Notes |
|---|---|---|
Table ores_refdata_party_statuses_tbl |
✅ | Temporal (valid_from/valid_to), versioned, unique index on live row, tenant scoped |
| Insert trigger with version increment and tenant/account validation | ✅ | ores_refdata_party_statuses_insert_trg |
| Soft-delete rule | ✅ | Sets valid_to = current_timestamp |
| NATS notify trigger | ✅ | ores_refdata_party_statuses_notify_trg → channel ores_refdata_party_statuses |
Validation function ores_refdata_validate_party_status_fn |
✅ | Used as FK substitute by dependent tables |
| Drop scripts | ✅ | refdata_party_statuses_drop.sql, refdata_party_statuses_notify_trigger_drop.sql |
| Seed data | ✅ | Active, Inactive, Suspended (system tenant) |
C++ domain / core / API layer ✅ COMPLETE
| Item | Status | File(s) |
|---|---|---|
| Domain type | ✅ | party_status.hpp |
| JSON I/O | ✅ | party_status_json_io.hpp/cpp |
| Table I/O | ✅ | party_status_table.hpp/cpp, party_status_table_io.hpp/cpp |
| Mapper | ✅ | party_status_mapper.hpp/cpp |
| Repository | ✅ | party_status_repository.hpp/cpp |
| Service | ✅ | party_status_service.hpp/cpp |
| NATS handler | ✅ | party_status_handler.hpp |
| NATS protocol | ✅ | party_status_protocol.hpp |
| Test generator | ✅ | party_status_generator.hpp/cpp |
| Repository tests | ✅ | repository_party_status_repository_tests.cpp |
Qt UI layer ✅ COMPLETE (structural — needs live verification)
| Item | Status | File(s) |
|---|---|---|
| MDI list window | ✅ | PartyStatusMdiWindow.hpp/cpp — toolbar: reload, add, edit, delete, history |
| Detail dialog (create + edit) | ✅ | PartyStatusDetailDialog.hpp/cpp |
| History dialog | ✅ | PartyStatusHistoryDialog.hpp/cpp |
| Delete (soft via rule) | ✅ | deleteSelected() in MDI window |
| Eventing / NATS controller | ✅ | PartyStatusController.hpp/cpp — handles show, add, history, revert, open-version |
| Client model | ✅ | ClientPartyStatusModel.hpp/cpp |
Functional verification post-NATS migration is the remaining gap → drives the verify-Qt task.
Shell layer ❌ NOT IMPLEMENTED
| Item | Status | Notes |
|---|---|---|
party_status list |
❌ | No projects/ores.shell/scripts/library/party_statuses/ directory |
party_status add |
❌ | — |
party_status remove |
❌ | — |
Reference: countries has add_2, delete_2, get_3, help_3, history_3 scripts; party_status has none.
CLI layer ❌ NOT IMPLEMENTED
| Item | Status | Notes |
|---|---|---|
add_party_status_options |
❌ | No file in projects/ores.cli/include/ores.cli/config/ |
| Entity parser | ❌ | No party_statuses_parser.cpp in entity_parsers/ |
| list/add/remove subcommands | ❌ | — |
Reference: countries and currencies each have add_<entity>_options.hpp/cpp + parser.
User manual ❌ NOT WRITTEN
| Item | Status | Notes |
|---|---|---|
| Dedicated party_status chapter | ❌ | chapter_4_reference_data.org mentions party statuses in passing only; no standalone chapter (cf. chapter_5_currencies.org) |
HTTP / Wt ❌ NOT IN SCOPE (file captures only)
Derived task list
| # | Task | Layer |
|---|---|---|
| 1 | Verify Qt UI end-to-end post-NATS (list, detail, history, delete, eventing) | Qt |
| 2 | Implement shell list/add/remove commands for party_status | Shell |
| 3 | Implement CLI list/add/remove commands for party_status | CLI |
| 4 | Write party_status chapter in user manual | Manual |
| 5 | File backlog captures for Wt and HTTP support | Captures |