@startuml

skinparam sequenceMessageAlign center
title TO LIST ALL PROJECTS
legend top
US015 - As a Manager, I want to get a list of all projects
end legend

class "ListProjectController" {
-service
-projectMapper
+listAllProjects(email)
}

class "Service" {
- company
+ listAllProjects (email)
}

class "Company"{
-projectContainer
-accountContainer
+ validateManager(email)
+listAllProjects()
}

class "AccountContainer"{
-accounts
+validateManager(email)
+getAccountByEmail(email)
}

class "Account"{
+validateManager(email)
}

class "ProjectContainer"{
-projects
+listAllProjects()
+getProject()
}

class "ProjectMapper"{
+add(projectDTO)
+toDTO(project)
}

class "ProjectDTO" {
+code
+nameProject
+costumer
+status
+startDate
+endDate
+createDTO()
}
"ListProjectController" ..> "Service"
"Service" ..> "Company"
"ListProjectController" ..> "ProjectMapper"
"Company" "1"-->"1" "ProjectContainer": has
"Company" "1"-->"1" "AccountContainer": has
"AccountContainer" --> "Account"
"ProjectMapper" ..> "ProjectDTO"


@enduml