HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🧚
[1기]최종 프로젝트 데브코스
/
🍒
[팀10] CherryBoys❤️
/Request/Response(1차 설계)/
호세

호세

유저

  • 회원가입
    • 이름 name
    • 닉네임 nickname
    • 이메일 email
    • 비밀번호 password
    • 성별 String gender : MALE, FEMALE
    • 연령대 : String '20대','20대', '30대', '40대', '50대', '60대'
    • 종목 : String '축구', '풋살'
    • 권한 그룹 : USER_GROUP , ADMIN_GROUP
    • Request
      • // api request // 프론트는 Key(name)에 맞춰서 Value(김동현) 전송합니다 // 그래서 key값은 백엔드에서 주어진 값을 그대로 사용하고 value에 포커싱을 맞춰서 이야기를 했슴당 { name: '김동현' nickname: '김체리' email: 'abc@abc.com' password: 'password' gender: 'MALE' age: '20s' sports: 'FOOTBALL' }
    • Response : void
  • Email 중복 확인
    • Response : 이상하면 말해주세요
      { "data": "true" }
       
       
  • 닉네임 중복 확인
    • Response
    • { "data": "true" }
 
 
  • 로그인 요청
    • Response : teamId를 보내면 될까요??
    • { "data": { "teamUsers" : [ { "teamId": 1, "grade": "Captain" }, { "teamId": 2, "grade": "member", } ] } }
 
  • 로그아웃
    • response : void
  • 용병 신청 리스트
    • response
    • { "data": { "hireApplications": { "hire_post_id": 1, "teamId": 1, "teamName": "t1", }, "hireApplications": { "hire_post_id": 2, "teamId": 2, "teamName": "t2", } } }
  • 회원 정보 조회
    • Response : myTeams : team 테이블 다 보낼지, 래퍼클래스 만들지
    • { "data": { "name": "김홍중", "nickName" : "쯍", "bio" : "안녕~ 난 쯍이라고해", "sportsName" : "FOOTBALL", "gender": "MALE", "ageGroup": "FORTIES", "tagNames" : [ "시간을 잘지켜요", "잘해요", "발이빨라요" ], "matchCount": 20, "mannerTemperature": 36.5, "myTeams": [ { "teamId": 1, "TeamName" : "t1", "TeamLogo" : "http://matchus.com/img/joLogo.img" }, { "teamId": 2, "TeamName" : "t2", "TeamLogo" : "http://matchus.com/img/joLogo.img" } ], "matchsSummary" : [ {"matchId" : 1, "matchDate": "2021-12-01", "registerTeamName" : "t1", "registerTeamLogo" : "http://matchus.com/img/joLogo.img", "applyTeamName" : "t2", "applyTeamLogo" : "http://matchus.com/img/joLogo.img"}, {"matchId" : 2, "matchDate": "2021-12-03", "registerTeamName" : "t3", "registerTeamLogo" : "http://matchus.com/img/joLogo.img", "applyTeamName" : "t5", "applyTeamLogo" : "http://matchus.com/img/joLogo.img"}, ] } }
 
  • 팀 초대 수락 : void
  • 회원 정보 수정
  • 회원 탈퇴 : void

팀

  • 팀 생성 : 리스폰스가 필요하면 말해주세요
  • 팀명 중복 확인
{ "data": "true" }
  • 팀 정보 조회
1. 뷰에서 운영진 부분이 있는데 로고가 표시되는 걸까요??
  1. 피그마에 포지션이 있어요 ㄷㄷㄷ 🥲
{ "data": { "teamId": 12, "teamName": "한사랑 축구회", "bio" : "안녕~", "sportsName" : "FOOTBALL", "tagNames" : [ "시간을 잘지켜요", "잘해요", "발이빨라요" ], "matchCount": 20, "manner_temperature": 36.5, "captainId": 1, "captainName": "김선호", "ageGroup": "20s", "teamCreatedAt": "2021-11-29-12:30", "team_users": [ { "userId": 2, "userName": "스펜서", "grade": "주장" }, { "userId": 3, "userName": "리아", "grade": "부주장" } ], "matchsSummary" : [ {"matchId" : 1, "matchDate": "2021-12-01", "registerTeamName" : "t1", "registerTeamLogo" : "http://matchus.com/img/joLogo.img", "applyTeamName" : "t2", "applyTeamLogo" : "http://matchus.com/img/joLogo.img"}, {"matchId" : 2, "matchDate": "2021-12-03", "registerTeamName" : "t3", "registerTeamLogo" : "http://matchus.com/img/joLogo.img", "applyTeamName" : "t5", "applyTeamLogo" : "http://matchus.com/img/joLogo.img"}, ] } }
  • 팀 해체 : void
  • 팀 탈퇴 : void
  • 팀 정보 수정
{ "data": { "teamId": 1 } }
  • 전체 팀원 리스트 조회 → id 도 혹시 필요하실까요...? 개인페이지의 이동을 위해?
{ "data": { "member": [ { "userId":1, "userName": "김선호, "grade": "주장" }, { "userId":2, "userName": "김명환, "grade": "부주장" }, { "userId":3, "userName": "오재원, "grade": "용병" } ] } }
  • 팀원 권한 수정 : 팀원 전체보기 페이지로 돌아가겠죠?
{ "teamId": 1 }
  • 팀원 방출 : 팀원 전체보기 페이지로 돌아가겠죠?
{ "teamId": 1 }
  • 팀원 초대
  • 팀의 매칭 전체 리스트 조회 : 상태 값 포함 넘기기. - 구분없이 보내기
{ "data" "matchsSummary" : [ {"matchId" : 1, "matchDate": "2021-12-01", "registerTeamName" : "t1", "registerTeamLogo" : "http://matchus.com/img/joLogo.img", "applyTeamName" : "t2", "applyTeamLogo" : "http://matchus.com/img/joLogo.img" "status": "previousMatch" }, {"matchId" : 2, "matchDate": "2021-12-02", "registerTeamName" : "t4", "registerTeamLogo" : "s3://", "applyTeamName" : "t5", "applyTeamLogo" : "http://matchus.com/img/joLogo.img" "status": "previousReview" }, {"matchId" : 3, "matchDate": "2021-12-03", "registerTeamName" : "t6", "registerTeamLogo" : "s3://", "applyTeamName" : "t3", "applyTeamLogo" : "http://matchus.com/img/joLogo.img" "status": "endReview" } ] } }
  • 매칭 평가
    • : 1. 모달이 꺼지면 뷰가 다시 리로딩 되는걸까요?? 그럼 id 값이 다시 한번 필요할까요?
{ "matchId": 1 }
 
 
@Getter public class MatchDetailRequest { private final Long matchId; public MatchDetailRequest(Long matchId) { this.matchId = matchId; } }
 
@Getter @RequiredArgsConstructor public class MatchDetailResponse { private final Long matchId; private final Long cityId; private final Long regionId; private final Long groundId; @DateTimeFormat(pattern = "yyyy-MM-dd") private final LocalDate date; @DateTimeFormat(pattern = "HH:mm:ss") private final LocalTime startTime; @DateTimeFormat(pattern = "HH:mm:ss") private final LocalTime endTime; private final String ageGroup; private final int cost; private final String detail; /* private final HomeTeamResponsse homeTeamResponsse; private final AwaTeamResponse awaTeamResponse;*/ }
@Getter public class MatchMember { private final Long userId; private final String userName; public MatchMember(Long userId, String userName) { this.userId = userId; this.userName = userName; } }
public class MatchTeamMemberResponse { @RequiredArgsConstructor public static class HomeTeamInfo { private final long teamId; private final String teamLogo; private final String teamName; private final BigDecimal mannerTemperature; private final List<MatchMember> matchMembers; } }
public void modifyStatus(MatchStatus matchStatus) { this.status = matchStatus; }
 
매칭 상태 넘기기
 
 
{ "data": { "isduplicated": true } }