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.web.v1.V1Commons;
@ApiModel("FeedAsset")
public class V1FeedAssetDto {
@ApiModelProperty(value = "id depends on assetType, if asset is debate the value is debateId", required = true)
private final String assetId;
@ApiModelProperty(required = true)
private final V1AssetType assetType;
@ApiModelProperty(required = true, dataType = V1Commons.API_DATA_TYPE_DATE_TIME,
value = "create time in ISO8601 format")
@JsonFormat(pattern = V1Commons.JSON_ISO_DATE_PATTERN)
private final Date createTime;
@ApiModelProperty(value = "the asset has been acknowledged", required = true)
private final boolean acknowledged;
@ApiModelProperty(value = "non null if assetType is debate related. otherwise is null", required = false)
private final V1DebateDto debate;
public V1FeedAssetDto(String assetId,
V1AssetType assetType,
Date createTime,
boolean acknowledged,
V1DebateDto debate) {
this.assetId = assetId;
this.assetType = assetType;
this.createTime = createTime;
this.acknowledged = acknowledged;
this.debate = debate;
}
@Override
public String toString() {
return "V1FeedAssetDto{" +
"assetId='" + assetId + '\'' +
", assetType=" + assetType +
", createTime=" + createTime +
", acknowledged=" + acknowledged +
", debate=" + debate +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
V1FeedAssetDto that = (V1FeedAssetDto) o;
if (acknowledged != that.acknowledged) {
return false;
}
if (assetId != null ? !assetId.equals(that.assetId) : that.assetId != null) {
return false;
}
if (assetType != that.assetType) {
return false;
}
if (createTime != null ? !createTime.equals(that.createTime) : that.createTime != null) {
return false;
}
return !(debate != null ? !debate.equals(that.debate) : that.debate != null);
}
@Override
public int hashCode() {
int result = assetId != null ? assetId.hashCode() : 0;
result = 31 * result + (assetType != null ? assetType.hashCode() : 0);
result = 31 * result + (createTime != null ? createTime.hashCode() : 0);
result = 31 * result + (acknowledged ? 1 : 0);
result = 31 * result + (debate != null ? debate.hashCode() : 0);
return result;
}
public V1DebateDto getDebate() {
return debate;
}
public String getAssetId() {
return assetId;
}
public V1AssetType getAssetType() {
return assetType;
}
public Date getCreateTime() {
return createTime;
}
public boolean isAcknowledged() {
return acknowledged;
}
}