Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,7 @@ out/

### VS Code ###
.vscode/

### Custom ###
db_dev.mv.db
db_dev.trace.db
22 changes: 22 additions & 0 deletions src/main/java/com/back/domain/wishlist/dto/WishlistRequestDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.back.domain.wishlist.dto;

import com.back.domain.wishlist.enums.WishlistStatus;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class WishlistRequestDto {

@NotNull
private Long userId;

// 생성 시 기본값 ACTIVE, 필요시 상태 지정 업데이트용으로 재사용 가능
private WishlistStatus status;
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.back.domain.wishlist.dto;

import com.back.domain.wishlist.entity.Wishlist;
import com.back.domain.wishlist.enums.WishlistStatus;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class WishlistResponseDto {
private Long id;
private Long userId;
private WishlistStatus status;
private LocalDateTime createdAt;

public static WishlistResponseDto from(Wishlist wishlist) {
if (wishlist == null) return null;
return WishlistResponseDto.builder()
.id(wishlist.getId())
.userId(wishlist.getUser() != null ? wishlist.getUser().getId() : null)
.status(wishlist.getStatus())
.createdAt(wishlist.getCreatedAt())
.build();
}
}

36 changes: 36 additions & 0 deletions src/main/java/com/back/domain/wishlist/entity/Wishlist.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.back.domain.wishlist.entity;

import com.back.domain.user.entity.User;
import com.back.domain.wishlist.enums.WishlistStatus;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.time.LocalDateTime;

@Entity
@Getter
@Setter
@NoArgsConstructor
public class Wishlist {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private LocalDateTime createdAt;

@ManyToOne
private User user; // 찜한 사용자 (위시리스트의 주인)

// TODO: Cocktail 도메인 추가 후 활성화
// @ManyToOne
// private Cocktail cocktail;

@Enumerated(EnumType.STRING)
@Column(nullable = false)
// 위시리스트 상태 - 기본값은 ACTIVE (활성 상태)
// ACTIVE: 찜한 상태, DELETED: 찜 해제한 상태 (Soft Delete)
private WishlistStatus status = WishlistStatus.ACTIVE;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.back.domain.wishlist.enums;

import lombok.Getter;

@Getter
public enum WishlistStatus {
ACTIVE,
DELETED
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.back.domain.wishlist.repository;

import com.back.domain.wishlist.entity.Wishlist;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface WishlistRepository extends JpaRepository<Wishlist, Long> {
}