Skip to content

Commit

Permalink
Merge pull request #16 from IT-Cotato/feature/refactor-room
Browse files Browse the repository at this point in the history
refactor: Room 변경(#15)
  • Loading branch information
yooooonshine authored May 30, 2024
2 parents e6d0832 + 41f2c13 commit 9cbd8ff
Show file tree
Hide file tree
Showing 7 changed files with 130 additions and 45 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package middle_point_search.backend.domains.Room.controller;
package middle_point_search.backend.domains.room.controller;

import static middle_point_search.backend.domains.Room.dto.RoomDTO.*;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
Expand All @@ -11,7 +10,9 @@

import lombok.RequiredArgsConstructor;
import middle_point_search.backend.common.dto.DataResponse;
import middle_point_search.backend.domains.Room.service.RoomService;
import middle_point_search.backend.domains.room.dto.RoomDTO.RoomCreateResponse;
import middle_point_search.backend.domains.room.dto.RoomDTO.RoomExistenceCheckResponse;
import middle_point_search.backend.domains.room.service.RoomService;

@RestController
@RequestMapping("/api/rooms")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import lombok.Getter;
import lombok.NoArgsConstructor;
import middle_point_search.backend.domains.member.domain.Member;
import middle_point_search.backend.domains.place.domain.Place;

@Entity
@Getter
Expand All @@ -32,9 +33,13 @@ public class Room {

private LocalDateTime createDate;

@OneToMany(mappedBy = "member", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@OneToMany(mappedBy = "room", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Member> members = new ArrayList<>();

@OneToMany(mappedBy = "room", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Place> places
= new ArrayList<>();

public Room(String identityNumber) {
this.identityNumber = identityNumber;
this.createDate = LocalDateTime.now();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package middle_point_search.backend.domains.Room.dto;
package middle_point_search.backend.domains.room.dto;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package middle_point_search.backend.domains.Room.repository;
package middle_point_search.backend.domains.room.repository;

import org.springframework.data.jpa.repository.JpaRepository;

import middle_point_search.backend.domains.Room.domain.Room;
import middle_point_search.backend.domains.room.domain.Room;

public interface RoomRepository extends JpaRepository<Room, Long> {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package middle_point_search.backend.domains.Room.service;

import static middle_point_search.backend.domains.Room.dto.RoomDTO.*;
package middle_point_search.backend.domains.room.service;

import java.util.UUID;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import lombok.RequiredArgsConstructor;
import middle_point_search.backend.domains.Room.domain.Room;
import middle_point_search.backend.domains.Room.repository.RoomRepository;
import middle_point_search.backend.domains.room.domain.Room;
import middle_point_search.backend.domains.room.dto.RoomDTO.RoomCreateResponse;
import middle_point_search.backend.domains.room.dto.RoomDTO.RoomExistenceCheckResponse;
import middle_point_search.backend.domains.room.repository.RoomRepository;

@Service
@Transactional(readOnly = true)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
package middle_point_search.backend.domains.member.domain;

import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToOne;
import jakarta.persistence.Table;
import jakarta.persistence.UniqueConstraint;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import middle_point_search.backend.domains.place.domain.Place;
import middle_point_search.backend.domains.room.domain.Room;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
@Table(uniqueConstraints = {@UniqueConstraint(name = "NAME_ROOM_UNIQUE", columnNames = {"NAME", "ROOM"})})
public class Member {

Expand All @@ -31,48 +30,31 @@ public class Member {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@NonNull
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ROOM_ID")
private Room room;

@NonNull
@Column(nullable = false)
private String name;

@NonNull
@Column(nullable = false)
private String pw;

@NonNull
@Enumerated(EnumType.STRING)
private Transport transport;
@Setter
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "PLACE_ID")
private Place place;

@NonNull
@Column(nullable = false)
private String siDo;

@NonNull
@Column(nullable = false)
private String siGunGu;

@NonNull
@Column(nullable = false)
private String roadNameAddress;

@NonNull
@Column(nullable = false)
private Double addressLatitude;

@NonNull
@Column(nullable = false)
private Double addressLongitude;
public Member(Room room, String name, String pw) {
this.room = room;
this.name = name;
this.pw = pw;
}

public Member from(Room room, String name, String pw, Transport transport, String siDo, String siGunGu,
String roadNameAddress, Double addressLatitude, Double addressLongitude) {
public Member from(Room room, String name, String pw) {
addRoom(room);

return new Member(room, name, pw, transport, siDo, siGunGu, roadNameAddress, addressLatitude, addressLongitude);
return new Member(room, name, pw);
}

public void addRoom(Room room) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
package middle_point_search.backend.domains.place.domain;

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 jakarta.persistence.OneToOne;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import middle_point_search.backend.domains.member.domain.Member;
import middle_point_search.backend.domains.member.domain.Transport;
import middle_point_search.backend.domains.room.domain.Room;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Place {

@Id
@Column(name = "PLACE_ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Enumerated(EnumType.STRING)
private Transport transport;

@Column(nullable = false)
private String siDo;

@Column(nullable = false)
private String siGunGu;

@Column(nullable = false)
private String roadNameAddress;

@Column(nullable = false)
private Double addressLatitude;

@Column(nullable = false)
private Double addressLongitude;

@ManyToOne
@JoinColumn(name = "ROOM_ID")
private Room room;

@OneToOne(mappedBy = "place")
private Member member;

public Place(Transport transport, String siDo, String siGunGu, String roadNameAddress, Double addressLatitude,
Double addressLongitude, Room room) {
this.transport = transport;
this.siDo = siDo;
this.siGunGu = siGunGu;
this.roadNameAddress = roadNameAddress;
this.addressLatitude = addressLatitude;
this.addressLongitude = addressLongitude;
addRoom(room);
}

public Place(Transport transport, String siDo, String siGunGu, String roadNameAddress, Double addressLatitude,
Double addressLongitude, Room room, Member member) {
this.transport = transport;
this.siDo = siDo;
this.siGunGu = siGunGu;
this.roadNameAddress = roadNameAddress;
this.addressLatitude = addressLatitude;
this.addressLongitude = addressLongitude;
addRoom(room);
addMember(member);
}

public static Place of(Transport transport, String siDo, String siGunGu, String roadNameAddress,
Double addressLatitude, Double addressLongitude, Room room) {
return new Place(transport, siDo, siGunGu, roadNameAddress, addressLatitude, addressLongitude, room);
}

public static Place of(Transport transport, String siDo, String siGunGu, String roadNameAddress,
Double addressLatitude, Double addressLongitude, Room room, Member member) {
return new Place(transport, siDo, siGunGu, roadNameAddress, addressLatitude, addressLongitude, room, member);
}

private void addRoom(Room room) {
this.room = room;
room.getPlaces().add(this);
}

private void addMember(Member member) {
this.member = member;
member.setPlace(this);
}
}

0 comments on commit 9cbd8ff

Please sign in to comment.