@startuml
!include ..\..\..\..\..\.c4s\C4_Container.puml

AddElementTag("c4interflow:lifecycle:new", $bgColor=green, $fontColor=#ffffff, $borderColor=green, $shadowing="False")
AddElementTag("c4interflow:lifecycle:changed", $bgColor=orange, $fontColor=#ffffff, $borderColor=orange, $shadowing="False")
AddElementTag("c4interflow:lifecycle:removed", $bgColor=red, $fontColor=#ffffff, $borderColor=red, $shadowing="False")

AddRelTag("c4interflow:lifecycle:new", $textColor=green, $lineColor=green)
AddRelTag("c4interflow:lifecycle:changed", $textColor=orange, $lineColor=orange)
AddRelTag("c4interflow:lifecycle:removed", $textColor=red, $lineColor=red)

SHOW_PERSON_PORTRAIT()
LAYOUT_TOP_DOWN()

skinparam linetype polyline

title Payment Service - Message Handler - C4 Static - Container level


System_Boundary(ECommercePlatform.SoftwareSystems.PaymentService, "Payment Service") {
    Container(ECommercePlatform.SoftwareSystems.PaymentService.Containers.MessageHandler, "Message Handler", "", "")
    Container(ECommercePlatform.SoftwareSystems.PaymentService.Containers.Database, "Database", "", "")
}

System_Boundary(ECommercePlatform.SoftwareSystems.OrderService, "Order Service") {
    Container(ECommercePlatform.SoftwareSystems.OrderService.Containers.Messaging, "Messaging", "", "")
}
System(ECommercePlatform.SoftwareSystems.PaymentProvider, "Payment Provider", "")

Rel(ECommercePlatform.SoftwareSystems.PaymentService.Containers.MessageHandler, ECommercePlatform.SoftwareSystems.OrderService.Containers.Messaging, "Uses")
Rel(ECommercePlatform.SoftwareSystems.PaymentService.Containers.MessageHandler, ECommercePlatform.SoftwareSystems.PaymentService.Containers.Database, "Uses")
Rel(ECommercePlatform.SoftwareSystems.PaymentService.Containers.MessageHandler, ECommercePlatform.SoftwareSystems.PaymentProvider, "Uses")


SHOW_LEGEND()
@enduml
