Kord/Docs/WorkDone/2026-03-30_Event_Reminder_O...

1.5 KiB

2026-03-30: 이벤트 리마인더 분 단위 옵션 구현 (Event Reminder Offsets Implementation)

이벤트 리마인더를 고정된 1시간 전 / 10분 전 방식에서, 분 단위 목록을 직접 입력하는 방식으로 확장했습니다.

주요 변경 사항

1. 리마인더 설정 구조 변경

  • GuildEvent 모델에 reminderOffsetssentReminderOffsets 배열 필드를 추가했습니다.
  • 이제 이벤트마다 0,10,60 같은 분 단위 리마인더 목록을 저장할 수 있습니다.
  • 0은 이벤트 시작 시점 즉시 공지를 의미합니다.

2. /event create 입력 방식 변경

  • reminders 문자열 옵션을 추가했습니다.
  • 예:
    • 0
    • 10
    • 0,10,60
  • 입력하지 않으면 자동 공지를 전혀 보내지 않습니다.

3. 이벤트 처리 루프 변경

  • 기존의 고정 불리언 플래그 대신, 아직 전송하지 않은 분 단위 오프셋만 확인해 알림을 보냅니다.
  • startsAt <= now 시점에 0이 포함되어 있으면 즉시 시작 공지를 전송합니다.
  • sentReminderOffsets를 사용해 같은 오프셋 알림이 중복 전송되지 않도록 했습니다.

4. 목록 표시 개선

  • /event list에서 리마인더 상태를 단순 on/off 대신 0m, 10m, 60m 형식으로 표시합니다.
  • 리마인더가 없으면 "자동 공지 없음"으로 표시합니다.

5. 검증 결과

  • yarn build: 성공
  • yarn test --runInBand: 6개 테스트 스위트, 40개 테스트 통과