' !includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Container.puml
' uncomment the following line and comment the first to use locally
!include C4_Container.puml

' Scope: A single container.
' Primary elements: Components within the container in scope.
' Supporting elements: Containers (within the software system in scope) plus people and software systems directly connected to the components.
' Intended audience: Software architects and developers.

' Colors
' ##################################

!define COMPONENT_BG_COLOR #85BBF0

' Styling
' ##################################

skinparam rectangle<<component>> {
    StereotypeFontColor ELEMENT_FONT_COLOR
    FontColor #000000
    BackgroundColor COMPONENT_BG_COLOR
    BorderColor #78A8D8
}

skinparam database<<component>> {
    StereotypeFontColor ELEMENT_FONT_COLOR
    FontColor #000000
    BackgroundColor COMPONENT_BG_COLOR
    BorderColor #78A8D8
}

' Layout
' ##################################

!definelong LAYOUT_WITH_LEGEND
hide stereotype
legend right
|=              |= Type |
|<PERSON_BG_COLOR>      | person |
|<EXTERNAL_PERSON_BG_COLOR>      | external person |
|<SYSTEM_BG_COLOR>   | system |
|<EXTERNAL_SYSTEM_BG_COLOR>      | external system |
|<CONTAINER_BG_COLOR>   | container |
|<COMPONENT_BG_COLOR>   | component |
endlegend
!enddefinelong

' Elements
' ##################################

!define Component(e_alias, e_label, e_techn) rectangle "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//" <<component>> as e_alias
!define Component(e_alias, e_label, e_techn, e_descr) rectangle "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//\n\n e_descr" <<component>> as e_alias

!define ComponentDb(e_alias, e_label, e_techn) database "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//" <<component>> as e_alias
!define ComponentDb(e_alias, e_label, e_techn, e_descr) database "==e_label\n//<size:TECHN_FONT_SIZE>[e_techn]</size>//\n\n e_descr" <<component>> as e_alias
