skara-brae-common/docs/openup/analysis-design/sequences/uc-09-heal-at-temple.puml
Jan-Peter von Hunnius 193562cbc4 openup: doc restructure - template alignment + design sequences (non-PSP)
Align the OpenUP markdown set to the blank templates (process-data repo,
templates/openup/) per BUILD-CHECKLIST 7. Scenario step text unchanged;
the EA model needs no change (brief descriptions already live in the
model's UC/actor notes).

- vision.md: positioning tables, stakeholder summary, user environment,
  needs-and-features table (R1/R2), other product requirements
- use-case-model.md: per-UC specification sections (brief description,
  actor descriptions, named alternative/exception subsections with
  numbered steps, post-conditions, special requirements)
- supplementary-specifications.md: category tables with priority and
  use-case columns + reverse coverage matrix; IDs unchanged
- test/quality-check-procedure.md: migrated from Joplin (single content
  home); stale open items marked resolved (WI-1/WI-2)
- analysis-design/sequences/: 12 PlantUML design sequences (lifelines =
  analysis classes, messages = design elements; per the PlantUML layout
  style guide) + PNG renders; embedded in Architecture Notebook 9.3
- Joplin consolidated: project content notes deleted (all live in
  docs/game + docs/openup); Joplin keeps the status note only
2026-10-05 11:22:38 +02:00

22 lines
860 B
Text

@startuml uc-09-heal-at-temple
autonumber
title UC-09 Heal at Temple (design sequence)
actor Player
participant "TempleBoundary\n«/api/characters/{id}/heal»" as boundary <<boundary>>
participant "HealingService\nsb-api::routes::heal_character" as control <<control>>
== Heal ==
Player -> boundary : POST heal (optionally partial)
boundary -> control : heal_character(character, partial)
control -> control : missing HP\nfull: all; partial: half (ceil)\ncost = healed, min 1 gold
alt already at full HP
control --> boundary : 400
else gold < cost
control --> boundary : 422
else ok
control -> control : gold -= cost, HP restored, persist
control --> boundary : {hp, max_hp, gold, healed: true}
boundary --> Player : {hp, max_hp, gold, healed: true}
end
note over control : handler-side logic - recorded debt\n(Architecture Notebook D1, Q3)
@enduml