package io.kaif.web.v1.dto;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.kaif.model.vote.VoteState;
import io.kaif.web.v1.V1Commons;
@ApiModel("Vote")
public class V1VoteDto {
@ApiModelProperty(value = "depend on vote target, the id may be articleId or debateId", required = true)
private final String targetId;
@ApiModelProperty(value = "vote result", required = true)
private final VoteState voteState;
@ApiModelProperty(required = true, dataType = V1Commons.API_DATA_TYPE_DATE_TIME,
value = "vote time in ISO8601 format")
@JsonFormat(pattern = V1Commons.JSON_ISO_DATE_PATTERN)
private final Date updateTime;
public V1VoteDto(String targetId, VoteState voteState, Date updateTime) {
this.targetId = targetId;
this.voteState = voteState;
this.updateTime = updateTime;
}
public String getTargetId() {
return targetId;
}
public VoteState getVoteState() {
return voteState;
}
public Date getUpdateTime() {
return updateTime;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
V1VoteDto v1VoteDto = (V1VoteDto) o;
if (targetId != null ? !targetId.equals(v1VoteDto.targetId) : v1VoteDto.targetId != null) {
return false;
}
if (voteState != v1VoteDto.voteState) {
return false;
}
return !(updateTime != null
? !updateTime.equals(v1VoteDto.updateTime)
: v1VoteDto.updateTime != null);
}
@Override
public int hashCode() {
int result = targetId != null ? targetId.hashCode() : 0;
result = 31 * result + (voteState != null ? voteState.hashCode() : 0);
result = 31 * result + (updateTime != null ? updateTime.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "V1VoteDto{" +
"targetId='" + targetId + '\'' +
", voteState=" + voteState +
", updateTime=" + updateTime +
'}';
}
}