diff --git a/src/main/java/com/insert/ioj/domain/item/domain/UserItem.java b/src/main/java/com/insert/ioj/domain/item/domain/UserItem.java new file mode 100644 index 0000000..ac7a8a5 --- /dev/null +++ b/src/main/java/com/insert/ioj/domain/item/domain/UserItem.java @@ -0,0 +1,50 @@ +package com.insert.ioj.domain.item.domain; + +import com.insert.ioj.domain.item.domain.type.Item; +import com.insert.ioj.domain.room.domain.Room; +import com.insert.ioj.domain.user.domain.User; +import com.insert.ioj.global.entity.BaseTimeEntity; +import jakarta.persistence.Column; +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.JoinColumn; +import jakarta.persistence.ManyToOne; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@Entity +public class UserItem extends BaseTimeEntity { + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Enumerated(EnumType.STRING) + private Item item; + + private Boolean used = false; + + private Boolean booked = false; + + @Column(name = "used_at") + private LocalDateTime usedAt; + + @ManyToOne + @JoinColumn(name = "room_id") + private Room room; + + @ManyToOne + @JoinColumn(name = "user_id") + private User user; + + @ManyToOne + @JoinColumn(name = "target_user_id") + private User targetUser; +} diff --git a/src/main/java/com/insert/ioj/domain/item/domain/type/Item.java b/src/main/java/com/insert/ioj/domain/item/domain/type/Item.java new file mode 100644 index 0000000..f1b39b9 --- /dev/null +++ b/src/main/java/com/insert/ioj/domain/item/domain/type/Item.java @@ -0,0 +1,9 @@ +package com.insert.ioj.domain.item.domain.type; + +public enum Item { + BUBBLE, + INK, + DEVIL, + MIRROR, + SHIELD, +}