prometeu-studio/docs/studio/pull-requests/PR-10a-bank-composition-details-dto-projection.md
2026-03-24 13:42:49 +00:00

2.9 KiB

PR-10a Bank Composition Details DTO Projection

Domain owner: docs/studio Cross-domain impact: docs/packer

Briefing

Introduce the Studio-owned DTO projection boundary for Bank Composition inside Asset Details.

This slice converts runtime/details source data into section-facing DTOs before any new section UI or middleware is added.

The goal is to land the data boundary first, so the UI work that follows does not bind directly to snapshot rows or raw asset.json shapes.

Objective

After this PR:

  • Asset Details has a Studio-owned DTO family for Bank Composition;
  • snapshot-derived data feeds available rows;
  • persisted selection data feeds selected rows;
  • only non-blocking files reach the available DTO list;
  • selected ordering is represented in a way that can later map to explicit persisted indexes.

Dependencies

Scope

  • add the Studio DTO family for bank-composition rows and section data
  • map details/snapshot source data into:
    • available
    • selected
  • start the DTO field set with:
    • path
    • displayName
    • size
    • lastModified
    • fingerprint
    • metadata
  • filter blocking files out of the available projection
  • ensure selected ordering is available to the UI as ordered row state

Non-Goals

  • no new section UI yet
  • no dual-list component yet
  • no capacity meter yet
  • no staged-edit coordinator yet
  • no persistence/apply integration yet

Execution Method

  1. Introduce the DTO types for bank-composition details data.
  2. Extend the details projection path to populate available and selected.
  3. Filter blocking files before DTO emission.
  4. Preserve selected ordering in the section-facing projection.
  5. Add regression tests around DTO mapping and filtering.

Acceptance Criteria

  • Asset Details can provide Studio-owned Bank Composition DTOs without exposing raw packer internals to the section
  • available rows come from current runtime/details data
  • blocking files do not appear in available
  • selected rows are available as ordered data
  • the new DTO projection is ready for subsequent section and component slices

Validation

  • unit tests for DTO mapping from details/snapshot source data
  • unit tests for blocking-file exclusion
  • unit tests for selected-row ordering preservation

Affected Artifacts

  • prometeu-studio/src/main/java/p/studio/workspaces/assets/details/...
  • prometeu-studio/src/main/java/p/studio/workspaces/assets/messages/...
  • tests for details projection and DTO mapping
  • cross-domain touchpoint: packer-facing details DTO shaping if source data is still missing