Skip to content

✍🏻 Plan

Sunny Lee edited this page Oct 4, 2023 · 26 revisions

SUMMARY

URI Description
📌 POST /plans 촬영 일정 예약 신청(최초)
📌 PUT /plans/deposit 촬영 일정에 대한 입금 요청
📌 PUT /plans/refuse 촬영 일정 예약 거절
📌 PUT /plans/reserve 촬영 일정에 대한 입금 확인
📌 PUT /plans/change 촬영 일정 변경 요청
📌 PUT /plans/delivery 촬영 최종 완료 및 메일로 파일 전달
📌 PUT /plans/cancel 촬영 일정 취소
📌 GET /plans/{planId} 촬영 개별 조회
📌 GET /plans/photographer 사진작가의 촬영 전체 조회
📌 GET /plans/photographer/client 사진작가의 촬영 전체 조회(클라이언트 화면 정렬에 필요)
📌 GET /plans/member 일반고객의 촬영 전체 조회

📌 촬영 일정 예약 신청(최초) POST /plans

📌 Request Parameters

  • Headers: Authorization
Field Type Description
photographerId Long 사진작가 ID
planDate LocalDateTime 예약 날짜
time string 예약 시간
category string COUPLE 커플스냅, FREIND 우정스냅, GRADUATION 졸업스냅, WEDDING 웨딩스냅, FAMILY 가족스냅, ETC 기타
people Long 인원
wishPlace string 희망 장소
request string 요청사항

Response Parameters

Field Type Description
planId uuid 촬영 일정을 개별적으로 구별하는 ID
customer Long 고객 ID
photographer Long 사진작가 ID
planDate LocalDateTime 예약 날짜
category string COUPLE 커플스냅, FREIND 우정스냅, GRADUATION 졸업스냅, WEDDING 웨딩스냅, FAMILY 가족스냅, ETC 기타
people Long 인원
time string 예약 시간
wishPlace string 희망 장소
price Long 가격
request string 요청사항
status string 촬영 진행 상태: REQUEST 예약 신청

예시 요청/응답
📌 Request

{
    "photographerId" : 19,
    "planDate" : "2022-11-01T12:30:00",
    "time" : "12:30",
    "category" : "FRIEND",
    "people" : 4,
    "wishPlace" : "이화여자대학교",
    "request" : "잘 부탁드립니다!"
}

Response

{
    "planId": "f2ce844d-1b18-480f-ac78-548818e5c417",
    "customer": 21,
    "photographer": 19,
    "planDate": "2022-11-01T12:30:00",
    "category": "FRIEND",
    "people": 4,
    "time" : "12:30",
    "wishPlace": "이화여자대학교",
    "price": null,
    "request": "잘 부탁드립니다!",
    "status": "REQUEST"
}

📌 촬영 일정에 대한 입금 요청 PUT /plans/deposit

📌 Request Parameters

  • Headers: Authorization
Field Type Description
planId uuid 촬영 일정을 개별적으로 구별하는 ID
price Long 가격
placeName string 촬영 장소
placeAddress string 촬영 주소
message string 입금 계좌 포함한 메세지 내용

Response Parameters

Field Type Description
planId uuid 촬영 일정을 개별적으로 구별하는 ID
customer Long 고객 ID
photographer Long 사진작가 ID
planDate LocalDateTime 예약 날짜
category string COUPLE 커플스냅, FREIND 우정스냅, GRADUATION 졸업스냅, WEDDING 웨딩스냅, FAMILY 가족스냅, ETC 기타
people Long 인원
wishPlace string 희망 장소
time string 예약 시간
request string 요청사항
price Long 가격
placeName string 촬영 장소
placeAddress string 촬영 주소
message string 입금 계좌 포함한 메세지 내용
status string 촬영 진행 상태: DEPOSIT 입금 요청

예시 요청/응답
📌 Request

{
    "planId" : "57351f46-e6b7-4fd6-b826-174a71a71284",
    "price" : 120000,
    "placeName" : "여의도 한강공원",
    "placeAddress" : "서울특별시 영등포구 여의동로 330",
    "message" : "입금 계좌는 국민은행 1234-5678입니다."
}

Response

{
    "planId": "57351f46-e6b7-4fd6-b826-174a71a71284",
    "customer": 25,
    "photographer": 14,
    "planDate": "2022-11-10 12:30",
    "category": "COUPLE",
    "people": 2,
    "wishPlace": "한강공원",
    "time" : "12:30",
    "request": "잘 부탁드립니다!",
    "price": 120000,
    "placeName": "여의도 한강공원",
    "placeAddress": "서울특별시 영등포구 여의동로 330",
    "message": "입금 계좌는 국민은행 1234-5678입니다.",
    "status": "DEPOSIT"
}

📌 촬영 일정 예약 거절 PUT /plans/refuse

📌 Request Parameters

  • Headers: Authorization
Field Type Description
planId uuid 촬영 일정을 개별적으로 구별하는 ID
contents string 거절 사유 포함한 메세지 내용

Response Parameters

Field Type Description
status number 200
code string OK
message string 스냅 사진 촬영 예약 거절 및 취소
details string 사진 작가가 스냅 사진 촬영 예약을 거절했습니다.

예시 요청/응답
📌 Request

{
    "planId" : "57351f46-e6b7-4fd6-b826-174a71a71284",
    "contents" : "안녕하세요^^ 진심을 담아 자연스러운 모습을 담아내는 해피스냅입니다. 신청해주신 날은 다른 일정이 있어서 촬영이 어려울 것 같아요ㅜㅜ 혹시 11월 15일이나 17일은 어떠신가요? 날짜 괜찮으시다면 다시 예약 신청 부탁드립니다! 좋은 하루 보내세요~ 감사합니다^^"
}

Response

{
    "status": 200,
    "code": "OK",
    "message": "스냅 사진 촬영 예약 거절 및 취소",
    "details": "사진 작가가 스냅 사진 촬영 예약을 거절했습니다."
}

📌 촬영 일정에 대한 입금 확인 PUT /plans/reserve

📌 Request Parameters

  • Headers: Authorization
Field Type Description
planId uuid 촬영 일정을 개별적으로 구별하는 ID
contents string 촬영 안내사항 포함한 메세지 내용

Response Parameters

Field Type Description
status number 200
code string OK
message string 스냅 사진 예약이 완료되었습니다.
details string 사진 작가가 촬영에 대한 입금을 확인했고, 촬영 일정을 픽스했습니다.

예시 요청/응답
📌 Request

{
    "planId" : "57351f46-e6b7-4fd6-b826-174a71a71284",
    "contents" : "입금 확인되었습니다. 촬영 시 소품은 자유롭게 사용 가능합니다! 촬영일에 뵙겠습니다^^"
}

Response

{
    "status": 200,
    "code": "OK",
    "message": "스냅 사진 예약이 완료되었습니다.",
    "details": "사진 작가가 촬영에 대한 입금을 확인했고, 촬영 일정을 픽스했습니다."
}

📌 촬영 일정 변경 요청 PUT /plans/change

📌 Request Parameters

  • Headers: Authorization
Field Type Description
planId uuid 촬영 일정을 개별적으로 구별하는 ID
reason string 메세지 내용: 일정 변경 사유
planDate LocalDateTime 변경 요청한 예약 날짜
time string 변경 요청한 예약 시간
people Long 변경 요청한 인원

Response Parameters

Field Type Description
status number 200
code string OK
message string 스냅 사진 촬영 일정을 변경 요청했습니다.
details string 일반 고객이 스냅 사진 촬영 일정을 변경 요청했습니다.

예시 요청/응답
📌 Request

{
    "planId" : "f2ce844d-1b18-480f-ac78-548818e5c417",
    "reason" : "촬영 인원 및 시간 변경",
    "planDate" : "2022-11-05T17:00:00",
    "time" : "17:00",
    "people" : 3
}

Response

{
    "status": 200,
    "code": "OK",
    "message": "스냅 사진 촬영 일정을 변경 요청했습니다.",
    "details": "일반 고객이 스냅 사진 촬영 일정을 변경 요청했습니다."
}

📌 촬영 최종 완료 및 메일로 파일 전달 PUT /plans/delivery

📌 Request Parameters

  • Headers: Authorization
  • Content-Type: multipart/form-data
Key Value Description
file string 고객에게 전달할 스냅 사진 파일
json planId, contents로 구성
planId uuid 촬영 일정을 개별적으로 구별하는 ID
contents string 전달할 메세지 내용

Response Parameters

Field Type Description
status number 200
code string OK
message string 스냅 사진 파일을 전달했습니다.
details string 사진 작가가 스냅 사진을 전달했습니다.

예시 요청/응답
📌 Request

Response

{
    "status": 200,
    "code": "OK",
    "message": "스냅 사진 파일을 전달했습니다.",
    "details": "사진 작가가 스냅 사진을 전달했습니다."
}

📌 촬영 일정 취소 PUT /plans/cancel

📌 Request Parameters

  • Headers: Authorization
Field Type Description
planId uuid 촬영 일정을 개별적으로 구별하는 ID
reason string 취소 사유 포함한 메세지 내용
refundAccount string 환불받을 계좌

Response Parameters

Field Type Description
status number 200
code string OK
message string 스냅 사진 촬영 일정을 취소했습니다.
details string 사진 작가 혹은 일반 고객이 스냅 사진 촬영 일정을 취소했습니다.

예시 요청/응답
📌 Request

{
    "planId" : "57351f46-e6b7-4fd6-b826-174a71a71284",
    "reason" : "개인 일정",
    "refundAccount" : "신한은행 2222-4444"
}

Response

{
    "status": 200,
    "code": "OK",
    "message": "스냅 사진 촬영 일정을 취소했습니다.",
    "details": "사진 작가 혹은 일반 고객이 스냅 사진 촬영 일정을 취소했습니다."
}

📌 촬영 개별 조회 GET /plans/{planId}

📌 Request Parameters

  • Headers: Authorization

Response Parameters

Field Type Description
planId uuid 촬영 일정을 개별적으로 구별하는 ID
customer Long 고객 ID
photographer Long 사진작가 ID
planDate LocalDateTime 예약 날짜
time string 예약 시간
category string COUPLE 커플스냅, FREIND 우정스냅, GRADUATION 졸업스냅, WEDDING 웨딩스냅, FAMILY 가족스냅, ETC 기타
people Long 인원
wishPlace string 희망 장소
request string 요청사항
price Long 가격
placeName string 촬영 장소
placeAddress string 촬영 주소
x string 촬영 x좌표
y string 촬영 y좌표
status string 촬영 진행 상태
REQUEST, DEPOSIT, REFUSE, RESERVED, TODAY, COMPLETE, DELIVERY, CANCEL
messages 메세지 리스트
messageId, isMine, sender, contents로 구성
messageId Long 메세지 ID
isMine boolean 사용자의 메세지인지(true) 상대의 메세지인지(false)를 구분
sender string 메세지 전송자의 계정 타입(MEMBER, PHOTOGRAPHER)
contents string 메세지 본문

예시 요청/응답
📌 Request

Response

  {
    "planId": "18ad30a9-3fec-4013-b192-cf7252a42d26",
    "customer": 7,
    "photographer": 1,
    "planDate": "2023-09-15T12:30:00",
    "time" : "12:30",
    "category": "COUPLE",
    "people": 2,
    "x":"127.1111",
    "y":"98.3333",
    "wishPlace": "한강공원",
    "request": "잘 부탁드립니다!",
    "price": null,
    "placeName": null,
    "placeAddress": null,
    "status": "DELIVERY",
    "messages": [
        {
            "messageId": 1,
            "isMine": true,
            "sender": "MEMBER",
            "contents": "hey"
        },
        {
            "messageId": 2,
            "isMine": true,
            "sender": "MEMBER",
            "contents": "hey"
        },
        {
            "messageId": 3,
            "isMine": true,
            "sender": "MEMBER",
            "contents": "hey"
        },
        {
            "messageId": 4,
            "isMine": false,
            "sender": "PHOTOGRAPHER",
            "contents": "hey"
        },
        {
            "messageId": 5,
            "isMine": false,
            "sender": "PHOTOGRAPHER",
            "contents": "나는야 사진작가"
        }
    ]
  }

📌 사진작가의 촬영 전체 조회 GET /plans/photographer

📌 Request Parameters

  • Headers: Authorization

Response Parameters

Field Type Description
planId uuid 촬영 일정을 개별적으로 구별하는 ID
customer Long 고객 ID
photographer Long 사진작가 ID
planDate LocalDateTime 예약 날짜
time string 예약 시간
category string COUPLE 커플스냅, FREIND 우정스냅, GRADUATION 졸업스냅, WEDDING 웨딩스냅, FAMILY 가족스냅, ETC 기타
people Long 인원
wishPlace string 희망 장소
price Long 가격
request string 요청사항
status string 촬영 진행 상태
REQUEST, DEPOSIT, REFUSE, RESERVED, TODAY, COMPLETE, DELIVERY, CANCEL

예시 요청/응답
📌 Request

Response

[
  {
        "planId": "57351f46-e6b7-4fd6-b826-174a71a71284",
        "customer": 25,
        "photographer": 14,
        "planDate": "2022-11-10 12:30",
        "time" : "12:30",
        "category": "COUPLE",
        "people": 2,
        "wishPlace": "한강공원",
        "price" : 120000,
        "request": "잘 부탁드립니다!",
        "status": "RESERVED"
    },
    "..."
]

📌 사진작가의 촬영 전체 조회(클라이언트 화면 정렬에 필요) GET /plans/photographer/client

📌 Request Parameters

  • Headers: Authorization

Response Parameters

Field Type Description
request 요청된 촬영 일정 리스트
planId uuid 촬영 일정을 개별적으로 구별하는 ID
customer Long 고객 ID
photographer Long 사진작가 ID
planDate LocalDateTime 예약 날짜
time string 예약 시간
category string COUPLE 커플스냅, FREIND 우정스냅, GRADUATION 졸업스냅, WEDDING 웨딩스냅, FAMILY 가족스냅, ETC 기타
people Long 인원
wishPlace string 희망 장소
price Long 가격
request string 요청사항
status string 촬영 진행 상태: REQUEST 예약 신청, DEPOSIT 입금 요청
response 예약된 촬영 일정 리스트
planId uuid 촬영 일정을 개별적으로 구별하는 ID
customer Long 고객 ID
photographer Long 사진작가 ID
planDate LocalDateTime 예약 날짜
time string 예약 시간
category string COUPLE 커플스냅, FREIND 우정스냅, GRADUATION 졸업스냅, WEDDING 웨딩스냅, FAMILY 가족스냅, ETC 기타
people Long 인원
wishPlace string 희망 장소
price Long 가격
request string 요청사항
status string 촬영 진행 상태: RESERVED 예약 완료, TODAY 촬영 진행, COMPLETE 촬영 완료

예시 요청/응답
📌 Request

Response

{
    "request": [
        {
            "planId": "3bdb4bbb-fa41-49dd-a600-8d27eefb222b",
            "customer": 7,
            "photographer": 1,
            "planDate": "2023-09-15T12:30:00",
            "time" : "12:30",
            "category": "COUPLE",
            "people": 2,
            "wishPlace": "한강공원",
            "price": null,
            "request": "잘 부탁드립니다!",
            "status": "REQUEST"
        },
        {
            "planId": "55db891e-cb1f-439a-bbc9-81eef74fcb30",
            "customer": 7,
            "photographer": 1,
            "planDate": "2023-09-15T12:30:00",
            "time" : "12:30",
            "category": "COUPLE",
            "people": 2,
            "wishPlace": "한강공원",
            "price": null,
            "request": "잘 부탁드립니다!",
            "status": "REQUEST"
        },
        {
            "planId": "63e57713-dfa7-4020-8b50-4c1b71f37f49",
            "customer": 7,
            "photographer": 1,
            "planDate": "2023-09-15T12:30:00",
            "time" : "12:30",
            "category": "COUPLE",
            "people": 2,
            "wishPlace": "한강공원",
            "price": null,
            "request": "잘 부탁드립니다!",
            "status": "REQUEST"
        },
        {
            "planId": "a837aae4-8fcf-4b52-b022-f752d987fd4f",
            "customer": 7,
            "photographer": 1,
            "planDate": "2023-09-15T12:30:00",
            "time" : "12:30",
            "category": "COUPLE",
            "people": 2,
            "wishPlace": "한강공원",
            "price": null,
            "request": "잘 부탁드립니다!",
            "status": "REQUEST"
        },
        {
            "planId": "cfd4d397-43f1-4c80-93cd-cbf21f716cc5",
            "customer": 7,
            "photographer": 1,
            "planDate": "2023-09-15T12:30:00",
            "time" : "12:30",
            "category": "COUPLE",
            "people": 2,
            "wishPlace": "한강공원",
            "price": null,
            "request": "잘 부탁드립니다!",
            "status": "REQUEST"
        },
        {
            "planId": "ddf82a29-7a15-49e3-ab7f-80afa9610227",
            "customer": 7,
            "photographer": 1,
            "planDate": "2023-09-15T12:30:00",
            "time" : "12:30",
            "category": "COUPLE",
            "people": 2,
            "wishPlace": "한강공원",
            "price": null,
            "request": "잘 부탁드립니다!",
            "status": "REQUEST"
        },
        {
            "planId": "de054f04-e875-4596-8348-f55a6ba73108",
            "customer": 7,
            "photographer": 1,
            "planDate": "2023-09-15T12:30:00",
            "time" : "12:30",
            "category": "COUPLE",
            "people": 2,
            "wishPlace": "한강공원",
            "price": null,
            "request": "잘 부탁드립니다!",
            "status": "REQUEST"
        },
        {
            "planId": "f1079490-792d-4a61-97a2-21291c846831",
            "customer": 7,
            "photographer": 1,
            "planDate": "2023-09-15T12:30:00",
            "time" : "12:30",
            "category": "COUPLE",
            "people": 2,
            "wishPlace": "한강공원",
            "price": null,
            "request": "잘 부탁드립니다!",
            "status": "REQUEST"
        }
    ],
    "reserved": [
        {
            "planId": "5c510b42-a682-4f94-9854-2ba0942530e7",
            "customer": 7,
            "photographer": 1,
            "planDate": "2023-09-15T00:00:00",
            "time" : "00:00",
            "category": "COUPLE",
            "people": 2,
            "wishPlace": "한강공원",
            "price": null,
            "request": "잘 부탁드립니다!",
            "status": "TODAY"
        },
        {
            "planId": "67abe74e-208c-4f8d-b995-05baac263062",
            "customer": 7,
            "photographer": 1,
            "planDate": "2023-09-15T00:00:00",
            "time" : "00:00",
            "category": "COUPLE",
            "people": 2,
            "wishPlace": "한강공원",
            "price": null,
            "request": "잘 부탁드립니다!",
            "status": "TODAY"
        },
        {
            "planId": "b1649bec-20f3-4424-b3b7-c8d9aca97ca2",
            "customer": 7,
            "photographer": 1,
            "planDate": "2023-09-15T00:00:00",
            "time" : "00:00",
            "category": "COUPLE",
            "people": 2,
            "wishPlace": "한강공원",
            "price": null,
            "request": "잘 부탁드립니다!",
            "status": "TODAY"
        },
        {
            "planId": "f8328bf9-9f99-4576-950f-09c8203f8a00",
            "customer": 7,
            "photographer": 1,
            "planDate": "2023-09-15T00:00:00",
            "time" : "00:00",
            "category": "COUPLE",
            "people": 2,
            "wishPlace": "한강공원",
            "price": null,
            "request": "잘 부탁드립니다!",
            "status": "COMPLETE"
        }
    ]
}

📌 일반고객의 촬영 전체 조회 GET /plans/member

📌 Request Parameters

  • Headers: Authorization

Response Parameters

Field Type Description
planId uuid 촬영 일정을 개별적으로 구별하는 ID
customer Long 고객 ID
photographer Long 사진작가 ID
planDate LocalDateTime 예약 날짜
time string 예약 시간
category string COUPLE 커플스냅, FREIND 우정스냅, GRADUATION 졸업스냅, WEDDING 웨딩스냅, FAMILY 가족스냅, ETC 기타
people Long 인원
wishPlace string 희망 장소
price Long 가격
request string 요청사항
status string 촬영 진행 상태
REQUEST, DEPOSIT, REFUSE, RESERVED, TODAY, COMPLETE, DELIVERY, CANCEL

예시 요청/응답
📌 Request

Response

[
  {
        "planId": "57351f46-e6b7-4fd6-b826-174a71a71284",
        "customer": 25,
        "photographer": 14,
        "planDate": "2022-11-10 12:30",
        "time" : "12:30",
        "category": "COUPLE",
        "people": 2,
        "wishPlace": "한강공원",
        "price" : 120000,
        "request": "잘 부탁드립니다!",
        "status": "RESERVED"
    },
    "..."
]