@startuml

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

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

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

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

class "Account"{
-email
-profile
+isManager()
}

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

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

class "ProjectDTO" {
+code
+nameProject
+costumer
+status
+startDate
+endDate
+createDTO()
}

"ListProjectController" --> "Company"
"ListProjectController" --> "ProjectMapper"
"Company" "1"-->"1" "ProjectContainer": has
"Company" "1"-->"1" "AccountContainer": has
"AccountContainer" --> "Account"
"ProjectMapper" --> "ProjectDTO"

@enduml