package ru.ulstu.project.model; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import org.hibernate.validator.constraints.NotEmpty; import ru.ulstu.deadline.model.DeadlineDto; import java.util.ArrayList; import java.util.List; import static ru.ulstu.core.util.StreamApiUtils.convert; public class ProjectDto { private Integer id; @NotEmpty private String title; private List deadlines = new ArrayList<>(); public ProjectDto() { } public ProjectDto(String title) { this.title = title; } @JsonCreator public ProjectDto(@JsonProperty("id") Integer id, @JsonProperty("title") String title, @JsonProperty("deadlines") List deadlines) { this.id = id; this.title = title; this.deadlines = deadlines; } public ProjectDto(Project project) { this.id = project.getId(); this.title = project.getTitle(); this.deadlines = convert(project.getDeadlines(), DeadlineDto::new); } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public List getDeadlines() { return deadlines; } public void setDeadlines(List deadlines) { this.deadlines = deadlines; } }