[BE] 회의내용 - dahun-lee-daji/airbnb GitHub Wiki

회의내용

-[05/28]

  • search를 room URL에 녹이기

      - GET http://{{url}}/search/price/seoul
      -> GET http://{{url}}/rooms/price?location="seoul"
         -> url path에 search를 rooms로 변경, location을 pathvariable에서 param으로 변경
     
      - GET http://{{url}}/search?location="seoul"&checkIn=2020-05-20&checkOut=2020-05-30&minPrice=1000&maxPrice=10000000&guest=1    
      -> GET http://{{url}}/rooms?location="seoul"&checkIn=2020-05-20&checkOut=2020-05-30&minPrice=1000&maxPrice=10000000&guest=1
         -> url path에 search를 rooms로 변경
    
    - wishlist 요청을 파라미터로 변경하기 
      -  POST http://{{url}}/wishlist/1
      -> POST http://{{url}}/wishlist/1?rooomId=1
         -> wishlist/{userId}/{roomId}의 구조에서 roomId를 param으로 변경 
    
      -  DELETE http://{{url}}/wishlist/1
      -> DELETE http://{{url}}/wishlist/1?rooomId
         -> wishlist/{userId}/{roomId}의 구조에서 roomId를 param으로 변경 
    
    -  트리[05/27 회의] [05/28 회의] iOS
      - Main 응답시에 NearDestination은 원래 사용자 위치기반으로 가까운 여행지를 보여줘야 하지만 우선 데이터를 하드코딩함 (이미 협의되었던 내용)
      - 현재 데이터 시간을 Time 으로 지정해둬 00:00:30 이런식으로 가는데 괜찮을지, 30분으로 보내드릴지 
        -> 30분, 1시간 형태로 String으로 값 자체를 전달하기로 협의 
    
  • 주말동안 확인해야하는 내용

    • Jdbc templete 학습
    • repository인지 dao인지 확인
    • connection을 해야되는지 확인
    • query문 작성법 확인
  • iOS 의논할 사항 [16:00 회의 완료]

    • form 데이터 가능 여부
    • Search시에 priceRange를 Max랑 Min을 따로 주실 수 있는지
    • 목업 데이터 약간 수정 (형식 확인 부탁)
  • 만들 테이블

    • User Table
    • Wish List Table
    • Hotel Table
    • Reservation Table
    • HeroBanner Table
    • NearDestination Table
  • Entity 만들시 참고사항

    • Room에 위도, 경도 값 표시
    • 돈은 BigDecimal
  • DTO

    • 위시리스트에 반환되는 값은 총액은 0
    • 검색시에도 (기간이 포함되지 않을 경우) 0으로 보낸다.

Task

2 사용자는 위시리스트로 숙소를 담을 수 있어야 한다

(1) 위시리스트 보여주기

  • 2-2 위시리스트 화면 이동 시 자신이 담은 위시리스트 숙소를 리스트 형태로 확인할 수 있어야 함
  • request GET /wishlists/{user_id}
  • response
[{
hotel_id:,
title:,
img:,
price:,
rate:,
}]
...

(2) 하트 비활성화로 위시리스트 목록에서 삭제

  • request DELETE /wishlists/{hotel_id}/{user_id}
  • 2-5 숙소 찾기 결과에서 위시리스트로 활성화된 하트를 다시 누르면 위시리스트에서 지워져야 함
  • 2-6 숙소 상세 화면에서 위시리스트로 활성화된 하트를 다시 누르면 위시리스트에서 지워져야 함
  • 2-7 위시리스트 화면 안에서 활성화된 하트를 다시 누르면 위시리스트에서 지워져야 함

(3) 하트 활성화로 위시리스트 목록에 추가

  • request POST /wish-list/{hotel_id}/{user_id}
  • 2-3 숙소 찾기 결과에서 하트를 누르면 위시리스트에 해당 숙소가 추가됨
  • 2-4 숙소 상세 화면에서 하트를 누르면 위시리스트에 해당 숙소가 추가됨

6 사용자는 검색 결과로 자신이 원하는 조건에 해당하는 결과를 카드 리스트 형태로 확인할 수 있어야 한다.

  • request `GET /hotels'
{ "location" : 위도경도값(@37.4686291,127.0185656,14z) 
  "check_in_date" : ,
  "check_out_date" : , 
  "price_max" : ,
  "price_min" : ,
  "adults" : ,
  "children" : , 
  "infants" : 
} 
  • response
[{
hotel_id:,
title:,
img:,
price:,
total_price:,
rate:,
}]

8 사용자는 검색 결과 중 한 가지를 선택하면 선택한 것에 해당하는 숙소 상세 화면을 볼 수 있어야 한다.

  • 2-8 위시리스트 화면에서 특정 숙소 선택 시 숙소 상세 화면으로 이동
  • request GET /wishlists/{hotel_id}
{
"hotel_id":,
"title":,
"host":,
"img":[],
"price":,
"location":,
"accommodation_type" : , 
"personnel_max" : , 
"arrangements" : "원룸, 침대 1개 , 욕실 1개",
"about_this_space" : 
"rate":,
}

10 사용자가 예약하기 버튼을 누르면 조건 및 가격 정보를 포함하는 최종 예약 팝업뷰를 볼 수 있어야 한다.

  • 예약하기
  • request POST /book/{hotel_id}/{user_id}
{
"check_in" :,
"check_out" :,
"personnel" :, 
"total_price" :, 
}

11 사용자는 자신이 예약한 숙소를 볼 수 있어야 한다.

  • request GET /book/{user_id}
  • response
[{
"hotel_id":,
"title":,
"img":[],
"check_in" :,
"check_out" :,
"location":
}
...
]

12 사용자가 예약한 숙소를 선택하면 예약 정보를 담는 숙소 상세 페이지가 보이고, 예약 취소 버튼을 눌러 예약을 취소할 수 있어야 한다.

  • request DELETE /book/{hotel_id}/{user_id}