9734eec63c
Generated by per-group subagents covering all 52 modules across: core (18), infrastructure (10), apps (5), interfaces (3), plugins (7), testing (9) Documentation format: - AsciiDoc (.adoc) files in docs/modules/<group>/ - PlantUML (.puml) files in docs/diagrams/ - .adoc files reference diagrams via include:: directives Each doc covers: purpose, responsibilities, non-responsibilities, key types, event flow, integration points, invariants, PlantUML diagram, known issues, and open questions.
47 lines
1.3 KiB
Plaintext
47 lines
1.3 KiB
Plaintext
@startuml
|
|
interface ApprovalReducer
|
|
interface ApprovalEngine
|
|
interface Projection
|
|
|
|
class DefaultApprovalReducer
|
|
class DefaultApprovalEngine
|
|
class NoOpApprovalEngine
|
|
class ApprovalProjector
|
|
class DefaultApprovalRepository
|
|
class ApprovalState
|
|
class DomainApprovalRequest
|
|
class ApprovalDecision
|
|
class ApprovalGrant
|
|
class ApprovalContext
|
|
|
|
ApprovalReducer <|.. DefaultApprovalReducer
|
|
ApprovalEngine <|.. DefaultApprovalEngine
|
|
ApprovalEngine <|.. NoOpApprovalEngine
|
|
Projection <|.. ApprovalProjector
|
|
ApprovalProjector --> ApprovalReducer
|
|
DefaultApprovalRepository --> ApprovalProjector
|
|
DefaultApprovalRepository ..> ApprovalState
|
|
DefaultApprovalState --> "requests" DomainApprovalRequest
|
|
DefaultApprovalState --> "decisions" ApprovalDecision
|
|
DefaultApprovalState --> "grants" ApprovalGrant
|
|
ApprovalDecision --> ApprovalContext
|
|
DefaultApprovalEngine ..> ApprovalGrant
|
|
DefaultApprovalEngine ..> ApprovalDecision
|
|
DefaultApprovalEngine ..> ApprovalContext
|
|
|
|
package "core:events" <<External>> {
|
|
[ApprovalRequestedEvent]
|
|
[ApprovalDecisionResolvedEvent]
|
|
[ApprovalGrantCreatedEvent]
|
|
[ApprovalGrantExpiredEvent]
|
|
}
|
|
package "core:sessions" <<External>> {
|
|
[Projection]
|
|
[EventReplayer]
|
|
}
|
|
DefaultApprovalReducer ..> "core:events"
|
|
DefaultApprovalRepository ..> "core:events"
|
|
DefaultApprovalRepository ..> "core:sessions"
|
|
|
|
@enduml
|