-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
✨ feature새로운 기능새로운 기능
Description
🛠️ 계획된 개발 기능
- 1. 챌린지 리스트 페이지 (둘러보기, 진행중, 완료)
- 2. 챌린지 상세 페이지
- 3. 챌린지 참여하기
- 4. 챌린지 참여 취소하기
- 5. 챌린지 리워드로 교환하기
- 6. 리워드 사용하기
🛠 기능 구현 세부사항
1. 챌린지 리스트 페이지
1-1. 둘러보기 : endDate가 넘지 않은 챌린지들 모두 표시 (카페명, 지점명, 챌린지 썸네일 이미지, 챌린지 시작일, 챌린지 마감일, 리워드 설명 반환)
- ChallengeBaseDTO 에서 카페명, 지점명만 추가해서 새로운 DTO 만들기
1-2. 진행중 : jwt -> 내가 현재 진행중인 챌린지 표시 (챌린지 이름, 10회 중 몇 회 진행했는지) - ChallengeBaseDTO에서 횟수를 추가해서 새로운 DTO 만들기
1-3. 완료 : jwt -> 내가 완료한 챌린지 표시 (달성 완료되었다면 완료되었다고 표시, 달성 완료 날짜, 리워드 교환 여부 반환) - 필터링 추가: 리워드 교환 완료 / 리워드 교환 필요
- ChallengeBaseDTO에서 리워드 교환 여부, 달성 완료 날짜를 추가하여 새로운 DTO 만들기
2. 챌린지 상세 페이지
- ChallengeBaseDTO + 챌린지 참여 여부
- 챌린지 참여했다면, 진행률 + 나의 챌린지 시작일 + 나의 챌린지 완료일 + 리워드 교환 가능 여부
3. 챌린지 참여하기 (Staff로 시작하는 클래스 생성, Staff & Owner가 접근 가능)
- 유저는 '참여하기' 버튼을 눌러서 참여를 시작할 수 있음.
- 유저의 qr-code-value로 챌린지 적립
- 챌린지를 시작하면 챌린지 시작일, 챌린지 참여 여부, 진행률, 리워드 교환 가능 여부가 update되어야 함 (챌린지 완료일은 null인 상태)
- 챌린지 10개가 다 채워지면 완료 여부가 update됨.
markAsCompleted()
4. 챌린지 참여 취소하기
- 챌린지 참여 여부를 false로 바꾸고 지금까지 진행한 기록(챌린지 달성률, 챌린지 시작일, 챌린지 완료일)모두 삭제.
5. 챌린지 리워드로 교환하기
- 챌린지 완료일이 null이지 않아야 하고 && 챌린지 참여 여부가 true 여야 하고 && 챌린지 완료 여부가 true여야 함
- 위 세가지 상태가 체크되면 리워드로 교환하며, 리워드 교환 여부가 true로 전환됨.
convertToReward()
6. 챌린지 리워드 사용하기
- 챌린지 리워드 교환 상태가 true이면 사용할 수 있음
- 리워드 사용 여부가 true로 전환됨.
useReward()
🛠 참고사항
📝 check-lists
- [ ]
Metadata
Metadata
Assignees
Labels
✨ feature새로운 기능새로운 기능