Composite Diagramstructure/uml_composite_diagram.puml

Breaks each controller into request handlers/mapper components plus shared services.

Highlights

Key Components

Diagram Source

@startuml
skinparam componentStyle rectangle
skinparam classAttributeIconSize 0

package "OpenAI Flow" {
  component OpenAITestController {
    component OpenAIRequestHandler
    component OpenAIResponseMapper
  }
  OpenAITestController ..> OpenAIRequestHandler : delegates
  OpenAIRequestHandler --> OpenAIService
  OpenAIService --> OpenAIResponseMapper
}

package "HubSpot Flow" {
  component HubSpotTaskTestController {
    component HubSpotRequestHandler
  }
  HubSpotTaskTestController ..> HubSpotRequestHandler
  HubSpotRequestHandler --> HubSpotTaskService
  HubSpotTaskService --> HubSpotDealDeletionReport
  HubSpotTaskService --> HubSpotTaskCreationReport
}

package "Shared Services" {
  [ActionItemExtractorService]
}
[ActionItemExtractorService] --> [OpenAIService]
[ActionItemExtractorService] --> [HubSpotTaskService]

note top of [OpenAIRequestHandler]
  Builds prompts and forwards to OpenAIService
end note

note top of [HubSpotRequestHandler]
  Orchestrates deal creation/deletion paths
end note

note right of ActionItemExtractorService
  Used by both REST controllers when converting transcripts to HubSpot tasks
end note

@enduml

Guidance

Use this diagram when jumping into the Composite Diagram context or when you need to explain the composite diagram interactions.