diff --git a/backend/src/main/java/com/now/naaga/temporaryplace/domain/TemporaryPlace.java b/backend/src/main/java/com/now/naaga/temporaryplace/domain/TemporaryPlace.java new file mode 100644 index 000000000..ac27689a2 --- /dev/null +++ b/backend/src/main/java/com/now/naaga/temporaryplace/domain/TemporaryPlace.java @@ -0,0 +1,112 @@ +package com.now.naaga.temporaryplace.domain; + +import com.now.naaga.common.domain.BaseEntity; +import com.now.naaga.place.domain.Position; +import com.now.naaga.player.domain.Player; +import jakarta.persistence.Embedded; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import java.util.Objects; + +@Entity +public class TemporaryPlace extends BaseEntity { + + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Id + private Long id; + + private String name; + + private String description; + + @Embedded + private Position position; + + private String imageUrl; + + @ManyToOne + @JoinColumn(name = "player_id") + private Player registeredPlayer; + + protected TemporaryPlace() { + } + + public TemporaryPlace(final String name, + final String description, + final Position position, + final String imageUrl, + final Player registeredPlayer) { + this(null, name, description, position, imageUrl, registeredPlayer); + } + + public TemporaryPlace(final Long id, + final String name, + final String description, + final Position position, + final String imageUrl, + final Player registeredPlayer) { + this.id = id; + this.name = name; + this.description = description; + this.position = position; + this.imageUrl = imageUrl; + this.registeredPlayer = registeredPlayer; + } + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public Position getPosition() { + return position; + } + + public String getImageUrl() { + return imageUrl; + } + + public Player getRegisteredPlayer() { + return registeredPlayer; + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final TemporaryPlace that = (TemporaryPlace) o; + return Objects.equals(id, that.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "TemporaryPlace{" + + "id=" + id + + ", name='" + name + '\'' + + ", description='" + description + '\'' + + ", position=" + position + + ", imageUrl='" + imageUrl + '\'' + + ", registeredPlayerId=" + registeredPlayer.getId() + + '}'; + } +} diff --git a/backend/src/main/java/com/now/naaga/temporaryplace/presentation/TemporaryPlaceController.java b/backend/src/main/java/com/now/naaga/temporaryplace/presentation/TemporaryPlaceController.java new file mode 100644 index 000000000..366087565 --- /dev/null +++ b/backend/src/main/java/com/now/naaga/temporaryplace/presentation/TemporaryPlaceController.java @@ -0,0 +1,9 @@ +package com.now.naaga.temporaryplace.presentation; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RequestMapping("/temporary-places") +@RestController +public class TemporaryPlaceController { +} diff --git a/backend/src/main/java/com/now/naaga/temporaryplace/repository/TemporaryPlaceRepository.java b/backend/src/main/java/com/now/naaga/temporaryplace/repository/TemporaryPlaceRepository.java new file mode 100644 index 000000000..6616c94a4 --- /dev/null +++ b/backend/src/main/java/com/now/naaga/temporaryplace/repository/TemporaryPlaceRepository.java @@ -0,0 +1,8 @@ +package com.now.naaga.temporaryplace.repository; + + +import com.now.naaga.temporaryplace.domain.TemporaryPlace; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface TemporaryPlaceRepository extends JpaRepository { +}