@startuml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml

Person(employee, "Employee", "Работник предприятия")
Person(admin, "Admin", "Администратор орг. структуры")
Person(editor, "Editor", "Редактор сотрудников")

System_Boundary(system, "Team Tells") {
	ContainerDb(employeeDb, "Employee Database", "PostgreSQL","Для хранения сотрудников, департаментов")
	ContainerDb(authDb, "Auth Database","PostgreSQL", "Для хранения данных авторизации")
	Container(webApp, "Web application", "Container: TypeScript And Angular")
	Container(apiGateway, "Api gateway", "nginx")
	Container(api, "Backend application", "Container: Golang")
}

System_Ext(bank, "Banking system", "Хранит информацию о счетах, транзакциях")


Rel(employee, webApp, "Просматривает орг. структуру в")
Rel(admin, webApp, "Администрирует роли пользователей")
Rel(editor, webApp, "Редактирует кадровую структуру")

Rel(webApp, apiGateway, "Делает API запросы")
Rel(apiGateway, api, "Перенаправляет API запросы")
Rel(api, bank, "Делает API Запросы")
Rel(api, employeeDb, "совершает CRUD запросы")
Rel(api, authDb, "совершает CRUD запросы")
@enduml
