2024/08/17
→ 2024/08/16
기획 상의 상태 변경 지점
OfferingStatus
•
모집 마감 (CONFIMRED)
◦
사용자가 수동으로 마감 버튼을 눌렀을 때 → 수동 마감 API
◦
마감이 아닌 공모 기준으로, meetingDate의 00시가 됐을 때 (자동 확정)
▪
meetingDate가 오늘 && 상태가 CONFIRMED가 아님 → CONFIRMED로 업데이트
•
인원 만석 (FULL)
◦
마감이 아닌 공모 기준으로, 인원이 다 찼을 때 → 공모 참여 API
•
마감 임박 (IMMINENT)
◦
마감이 아닌 공모 기준으로, 인원이 거의 다 찼을 때 → 공모 참여 API
◦
마감이 아닌 공모 기준으로, meetingDate 전날의 00시가 됐을 때
▪
meetingDate가 내일 && 상태가 CONFIRMED가 아님 → IMMINENT로 업데이트
•
모집 중 (AVAILABLE)
◦
최초 상태 → 공모 작성 API
•
예외
◦
취소 API 호출 시 상태 업데이트
CommentRoomStatus
•
모집중 (GROUPING)
◦
최초 상태
•
인원확정 (BUYING)
◦
모집중 상태에서, 채팅방 상태 업데이트 API 호출했을 때 (수동 확정)
◦
마감이 아닌 공모 기준으로, meetingDate의 00시가 됐을 때 (자동 확정)
•
구매중 (TRADING)
◦
구매중 상태에서, 채팅방 상태 업데이트 API 호출했을 때
•
거래중 (DONE)
◦
거래중 상태에서, 채팅방 상태 업데이트 API 호출했을 때
변경 사항
•
공모 작성 시, 당일을 meetingDate로 설정하지 못하게 막아야 합니다
•
isManualConfirmed 필드 지울지 고려해보아야 합니다
public boolean isMeetingDateAlmostOver() {
LocalDateTime now = LocalDateTime.now();
LocalDateTime threshold = meetingDate.minusHours(6);
return threshold.isBefore(now) && now.isBefore(meetingDate);
}
public boolean isMeetingDateOver() {
return !isMeetingDateNotOver();
}
public boolean isMeetingDateNotOver() {
LocalDateTime now = LocalDateTime.now();
return now.isBefore(this.meetingDate);
}
Java
복사