Review 엔티티 작성
- 데이터를 명확히 구조화 하여 관리 및 검색을 보장하기 위함
@Getter
@Setter
@Entity
@NoArgsConstructor
public class Review {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(length = 50)
private String title;
@Column(columnDefinition = "LONGTEXT")
private String content;
@ManyToOne(fetch = FetchType.LAZY)
private Product product;
@ManyToOne(fetch = FetchType.LAZY)
private SiteUser author;
private Double grade;
private LocalDateTime createDate;
private LocalDateTime modifyDate;
@Builder
private Review(SiteUser siteUser, Product product, String title, String content, Double grade) {
this.author = siteUser;
this.product = product;
this.title = title;
this.content = content;
this.grade = grade;
this.createDate = LocalDateTime.now();
}
}
ReviewRequestDTO 작성
- 상대방이 주고싶은 정보만 주려고 , 안전하기때문에.
@Getter
public class ReviewRequestDTO {
private Long productId;
private Long reviewId;
private String title;
private String content;
private Double grade;
}
ReviewResponseDTO 작성
- 내가 주고싶은 정보만 주려고 , 안전하기때문에
@Getter
@Setter
@NoArgsConstructor
public class ReviewResponseDTO {
private String title;
private String content;
private Double grade;
private Long id;
private Long createDate;
private Long modifyDate;
private String author;
@Builder
private ReviewResponseDTO(Review review , Long createDate , Long modifyDate){
this.title= review.getTitle();
this.content= review.getContent();
this.grade= review.getGrade();
this.id=review.getId();
this.author=review.getAuthor().getNickname();
this.createDate=createDate;
this.modifyDate=modifyDate;
}
}