유저
- 회원가입
- 이름 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' }
- 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. 뷰에서 운영진 부분이 있는데 로고가 표시되는 걸까요??
- 피그마에 포지션이 있어요 ㄷㄷㄷ 🥲
{ "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
}
}