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

Emacs 29.3 (Org mode 9.6.15)