Skip to content

Commit

Permalink
fix: item 하드 삭제하도록 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
KarmaPol committed Feb 15, 2024
1 parent adb1f44 commit ba52c5d
Showing 1 changed file with 59 additions and 49 deletions.
108 changes: 59 additions & 49 deletions core/core-domain/src/main/java/com/mm/coredomain/domain/Item.java
Original file line number Diff line number Diff line change
@@ -1,76 +1,86 @@
package com.mm.coredomain.domain;

import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.SQLDelete;

import java.util.ArrayList;
import java.util.List;

import jakarta.persistence.CascadeType;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Lob;
import jakarta.persistence.OneToMany;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@SQLDelete(sql = "UPDATE item SET deleted = true WHERE id = ?")
public class Item extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String title;
private String title;

@Lob
private String redirectUrl;
@Lob
private String redirectUrl;

@Enumerated(value = EnumType.STRING)
private ItemCategoryType categoryType;
@Enumerated(value = EnumType.STRING)
private ItemCategoryType categoryType;

private Integer price;
private Integer price;

private Integer refund;
private Integer refund;

private Double rating;
private Double rating;

@Lob
private String thumbnailUrl;
@Lob
private String thumbnailUrl;

@Builder.Default
private Boolean isSuggested = false;
@Builder.Default
private Boolean isSuggested = false;

@Builder.Default
@OneToMany(mappedBy = "item", cascade = CascadeType.ALL, orphanRemoval = true)
private List<ItemImage> itemImages = new ArrayList<ItemImage>();
@Builder.Default
@OneToMany(mappedBy = "item", cascade = CascadeType.ALL, orphanRemoval = true)
private List<ItemImage> itemImages = new ArrayList<ItemImage>();

@Builder.Default
@OneToMany(mappedBy = "item", cascade = CascadeType.ALL, orphanRemoval = true)
private List<ItemVideo> itemVideos = new ArrayList<ItemVideo>();
@Builder.Default
@OneToMany(mappedBy = "item", cascade = CascadeType.ALL, orphanRemoval = true)
private List<ItemVideo> itemVideos = new ArrayList<ItemVideo>();

public void setItemImages(List<ItemImage> itemImages) {
this.itemImages.clear();
itemImages.forEach(itemImage -> this.itemImages.add(itemImage));
}
public void setItemImages(List<ItemImage> itemImages) {
this.itemImages.clear();
itemImages.forEach(itemImage -> this.itemImages.add(itemImage));
}

public void setItemVideos(List<ItemVideo> itemVideos) {
this.itemVideos.clear();
itemVideos.forEach(itemVideo -> this.itemVideos.add(itemVideo));
}
public void setItemVideos(List<ItemVideo> itemVideos) {
this.itemVideos.clear();
itemVideos.forEach(itemVideo -> this.itemVideos.add(itemVideo));
}

public void setItemSuggested() {
this.isSuggested = true;
}
public void setItemSuggested() {
this.isSuggested = true;
}

public void setItemNotSuggested() {
this.isSuggested = false;
}
public void setItemNotSuggested() {
this.isSuggested = false;
}

public void updateItem(ItemUpdate itemUpdate) {
this.title = itemUpdate.title();
this.redirectUrl = itemUpdate.redirectUrl();
this.categoryType = itemUpdate.categoryType();
this.price = itemUpdate.price();
this.refund = itemUpdate.refund();
this.rating = itemUpdate.rating();
this.thumbnailUrl = itemUpdate.thumbnailUrl();
}
public void updateItem(ItemUpdate itemUpdate) {
this.title = itemUpdate.title();
this.redirectUrl = itemUpdate.redirectUrl();
this.categoryType = itemUpdate.categoryType();
this.price = itemUpdate.price();
this.refund = itemUpdate.refund();
this.rating = itemUpdate.rating();
this.thumbnailUrl = itemUpdate.thumbnailUrl();
}
}

0 comments on commit ba52c5d

Please sign in to comment.