package ru.ulstu.deadline.model; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import org.springframework.format.annotation.DateTimeFormat; import ru.ulstu.core.model.BaseEntity; import javax.persistence.Entity; import javax.persistence.Temporal; import javax.persistence.TemporalType; import java.util.Date; import java.util.Objects; @Entity public class Deadline extends BaseEntity { private String description; @Temporal(value = TemporalType.TIMESTAMP) @DateTimeFormat(pattern = "yyyy-MM-dd") private Date date; public Deadline() { } public Deadline(Date deadlineDate, String description) { this.date = deadlineDate; this.description = description; } @JsonCreator public Deadline(@JsonProperty("id") Integer id, @JsonProperty("description") String description, @JsonProperty("date") Date date) { this.setId(id); this.description = description; this.date = date; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } if (!super.equals(o)) { return false; } Deadline deadline = (Deadline) o; return getId().equals(deadline.getId()) && description.equals(deadline.description) && date.equals(deadline.date); } @Override public int hashCode() { return Objects.hash(super.hashCode(), description, date); } }