Post.java
package org.petify.feed.model;
import jakarta.persistence.CollectionTable;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Entity;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import java.util.List;
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@Entity
@Table(name = "posts")
public class Post extends FeedItem {
@ElementCollection
@CollectionTable(name = "post_image_ids", joinColumns = @JoinColumn(name = "post_id"))
@Column(name = "image_id")
private List<Long> imageIds;
public Post(Long shelterId, String title, String shortDescription, Long mainImageId,
String longDescription, Long fundraisingId, List<Long> imageIds) {
super(shelterId, title, shortDescription, mainImageId, longDescription, fundraisingId);
this.imageIds = imageIds;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Post post)) {
return false;
}
return new EqualsBuilder()
.appendSuper(super.equals(o))
.append(imageIds, post.imageIds)
.isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder(17, 37)
.appendSuper(super.hashCode())
.append(imageIds)
.toHashCode();
}
@Override
public String toString() {
return new ToStringBuilder(this)
.appendSuper(super.toString())
.append("imageIds", imageIds)
.toString();
}
}