Skip to content

fix(demo): 트레이너 웹 데모 리포트·일정·상담함 표시 누락·새로고침 초기화 수정과 상담함 창 통일 - #2684

Merged
aJISUa merged 12 commits into
mainfrom
fix/2669-trainer-demo-report-schedule
Sep 30, 2026
Merged

aJISUa merged 12 commits into
mainfrom
fix/2669-trainer-demo-report-schedule

Conversation

@aJISUa

@aJISUa aJISUa commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • 트레이너 웹 데모의 리포트가 회원 목표로 판정하고, AI 요약이 AI 생성 배지를 단 요약으로 보이며, 지난 리포트 이력에 본문 첫 줄과 PDF 태그가 붙는다.
  • 시드 상담 일정(이번 주 5건·지난 3건)에 상담 요청 내용이 붙고, 3주 전 PT 에 노쇼·회원 취소가 한 건씩 생기며, 회원이 보낸 사진·PDF 메시지가 대화에 보인다.
  • 상담함 결정·상담 일정 연결·예약 슬롯·프로그램 템플릿·내 프로필 수정이 브라우저 로컬 저장소에 남아 새로고침해도 초기화되지 않는다.
  • 상담함을 창으로 통일해 페이지 경로를 지우고(refactor(consultations): 트레이너 웹 상담함 페이지 경로 제거와 창 통일 #2717), 메시지 목록 안읽음 배지를 원래 남색으로 되돌린다.

Changes

✨ Features

🔧 Improvements

  • 상담함 수락·거절(demo_consultation_decisions)과 상담 일정 연결(demo_schedule_consultations)을 저장하고 앱이 뜰 때 되살린다 — 새로고침 뒤 대기로 돌아가거나 재수락이 겹침 오류로 막히지 않는다
  • 시드 상담 요청에 createdAt, 데모 fetch 가 서버와 같은 before/before_id 커서로 이어 받는다
  • 예약 슬롯(바꾼 자리만)·프로그램 템플릿·내 프로필을 키-값 저장소에 저장. 저장소가 없으면(단위 테스트) 메모리에만 둔다
  • 상담함 페이지 모드·returnTo·돌아가기 링크, consultationsSegment·consultationsFromDashboard, 쓰이지 않던 consultationsDestination, 문구 consultBackTo* 를 지운다. 알림·옛 주소(/consultations, /schedule/consultations)는 /schedule?inbox=1 로 스케줄에 가서 창을 열고 쿼리를 지운다(refactor(consultations): 트레이너 웹 상담함 페이지 경로 제거와 창 통일 #2717)

🎨 UI/UX

  • 리포트 ② 요약 카드에 AI 생성 배지, 근거가 개인 목표 기준
  • 지난 리포트 줄마다 PDF 태그
  • 스케줄 상담 카드에 상담 요청 내용(운동 목표·문의 내용) 블록
  • 3주 전 스케줄에 노쇼·회원 취소 카드
  • 채팅에 회원 사진 말풍선·PDF 카드
  • 상담함은 어느 길로 들어와도 같은 창으로 뜬다(페이지·스케줄로 돌아가기 없음)
  • 메시지 목록 안읽음 배지를 빨강 → 남색(사이드바 메시지 숫자와 같은 색). 규격 전환(refactor(design): 트레이너웹 고객·메시지·상담 화면 규격 전환 #1730, 842871f) 전에도 남색이었다. 공용 AppCountBadge 에 color 인자를 더했고 기본은 빨강 그대로다

📝 Docs

  • 낡은 주석 수정: "데모는 상담함을 숨긴다", "데모 템플릿은 읽기 전용", "Pages 는 USE_MOCK_API=false"

🐛 Fixes


Commits

  1. 8986553d1 fix(demo): 트레이너 웹 데모 리포트 회원 목표·AI 요약·지난 이력 표시 보강
  2. faa4e18bf fix(demo): 트레이너 웹 데모 상담함 결정·상담 일정 연결 저장과 요청 시각 정렬
  3. 124514699 fix(demo): 트레이너 웹 데모 예약 슬롯·프로그램 템플릿·내 프로필 수정 영속화
  4. a76f62155 feat(demo): 트레이너 웹 데모 대화의 회원 첨부(사진·PDF) 표시
  5. c7e559ca2 feat(demo): 트레이너 웹 데모 시드에 상담 요청 연결·취소·노쇼·회원 첨부 추가
  6. 3c4fca5f8 refactor(consultations): 트레이너 웹 상담함 페이지 경로 제거와 창 통일
  7. 1ec34acc4 fix(messages): 트레이너 웹 메시지 목록 안읽음 배지 남색 복원
  8. 813025247 docs(demo): 트레이너 웹 데모 동작에 대한 낡은 주석 수정
  9. 78a20b012 main 병합 — feat(demo): 김민수 PT 를 매주 18:00 수업으로 픽스처·트레이너 웹·실서버 시드 통일 #2694(김민수 지난 PT 픽스처 날짜)와 시드 충돌 해결: 지난 PT 취소·노쇼 생성과 김민수 픽스처 PT 를 함께 두고 플래그는 v45 유지

Notes

  • 커밋은 최신 main(b2a6931) 위로 항목별로 다시 쌓았다(force push). 앞선 CI 수정·병합 커밋은 해당 항목에 합쳤다.
  • 데모(USE_MOCK_API=true) 경로 변경이 대부분이다. 실서버에 닿는 변경은 상담함 창 통일(refactor(consultations): 트레이너 웹 상담함 페이지 경로 제거와 창 통일 #2717)과 메시지 배지 색뿐이다.
  • 영속화 키: demo_consultation_decisions, demo_schedule_consultations, demo_reservation_slots, demo_program_templates, demo_trainer_profile, chat_file_<메시지 id>. 모두 드리프트 AppKeyValues 에 있어 시드 플래그를 올려도 트레이너가 바꾼 값은 남는다.
  • 리포트 PDF 자체를 데모 채팅에 첨부하는 것(fix(reports): 리포트 탭 전송 PDF 전환·전송 알림 개선 #1378)은 범위 밖이다. 예약 슬롯 시드는 회원 앱 목업과 같은 자리라 그대로 두고 상담 요청 시각을 맞췄다.
  • 기존 데모 화면을 바꾸는 항목(AI 요약 고정본·회원 목표 판정·상담 요청 시각·새로고침 유지·3주 전 수업 상태)은 데모 기준 원칙에 따라 되돌릴지 확인 중이다.

Screenshots (Optional)

Before After
리포트 ② 요약 카드에 배지 없음, 기본 목표 기준 AI 생성 배지, 개인 목표 기준 근거 줄
지난 리포트 줄에 읽음 태그만 읽음 · PDF 태그
상담 일정 카드에 메모 자리만 상담 요청 내용(운동 목표·문의 내용) 블록
3주 전 배준혁·강서연 PT 가 완료 노쇼 카드·회원 취소 카드(사유)
회원 메시지는 글만 사진 말풍선(강서연)·PDF 카드(신유나 knee-follow-up.pdf)
알림·옛 주소로 들어오면 상담함이 페이지(스케줄로 돌아가기) 스케줄 위에 같은 상담함 창
메시지 목록 안읽음 배지 빨강 사이드바와 같은 남색

Test Plan

  • 기능 정상 동작 확인
  • 예외 케이스 확인
  • UI 확인
  • 빌드 성공
  • 관련 테스트 통과

Manual Test Steps

  1. 데모(/trainer/) 리포트 → 김민수 → 다음(② 작성): AI 생성 배지와 개인 목표 근거. 지난 리포트 줄마다 PDF 태그.
  2. 스케줄에서 오늘 17:00 윤가온 상담을 누르면 상담 요청 내용. 3주 전으로 가면 배준혁 노쇼·강서연 취소.
  3. 상담함에서 하나 수락·하나 거절 뒤 새로고침: 결정이 그대로. 알림함의 상담 알림을 누르면 스케줄 위에 상담함 창이 뜨고, 창을 닫고 새로고침해도 다시 뜨지 않는다.
  4. 메시지에서 강서연(사진)·신유나(PDF 카드 → 미리보기), 목록의 안읽음 배지가 남색.

Related Issues

Closes #2669
Closes #2717

Checklist

  • 코드 리뷰 준비 완료
  • 불필요한 코드 제거
  • 하드코딩 값 점검
  • Merge 충돌 없음
  • 데모 시나리오 영향 확인

@coderabbitai

coderabbitai Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Repository: CSE-Sudo/on-care/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 3995dc4f-7091-4e79-a131-1f86bf6285f2

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

aJISUa added 8 commits October 1, 2026 04:56
- 리포트 판정·주간 표가 건강 프로필의 하루 목표(ReportTargets)를 쓴다 —
  실서버 응답의 *_target 과 같은 출처
- 데모 AI 요약: 그 주 가장 위험한 주의사항 종류마다 미리 써 둔 머리
  문장(한·영) + 규칙 요약의 근거 줄, `AI 생성` 배지(generatedBy: llm)
- 지난 리포트 이력: 줄마다 PDF 표시, 빈 본문은 그 주 초안의 첫 줄로
  채운다(#2423 규칙 유지)
- 로스터 행 → TrainerClient 변환을 trainerClientFromRow 로 꺼낸다

Refs #2669
- 상담함 수락·거절을 demo_consultation_decisions 에 저장해 새로고침 뒤
  대기로 돌아가거나 재수락이 겹침 오류로 막히지 않는다
- 상담 일정 연결(`상담 요청 내용`)을 demo_schedule_consultations 에도 적고
  앱이 뜰 때 되살린다
- 시드 요청에 createdAt 을 붙이고 데모 fetch 가 before/before_id 커서로
  이어 받는다
- 시드 요청 시각을 데모 상담 자리(slot-kim-5·slot-kim-3)에 맞춘다

Refs #2669
- 예약 슬롯: 바꾼 자리만 demo_reservation_slots 에 적고 시드 자리 위에
  id 로 덮어 얹는다
- 프로그램 템플릿: 저장한 템플릿과 다음 id 를 demo_program_templates 에
- 내 프로필: 연락처·전문·경력·소개·자격·소속 헬스장을 demo_trainer_profile 에
- 저장소가 없으면(단위 테스트) 메모리에만 둔다

Refs #2669
- 시드 메시지의 첨부 표시(chat_file_<메시지 id>)를 대화를 읽을 때 풀어,
  사진은 앱 번들 식단 사진, PDF 는 한 쪽짜리 문서로 바이트를 만든다
- PDF 카드는 첨부가 바이트를 들고 있으면 내려받지 않고 바로 연다

Refs #2669
- 시드 상담 일정 5건과 지난 상담 3건에 회원 문의 글·목표를 잇는다(한·영)
- 3주 전 PT 에 배준혁 노쇼·강서연 회원 취소(사유 포함)를 한 건씩 둔다 —
  지난 두 주는 진행 수업 메모(#2667)가 달려 있어 피한다
- 강서연 "마라탕" 메시지에 사진, 신유나 대화에 정형외과 소견서 PDF 메시지
- 시드 플래그 trainer_seeded_v45 (v42~v44 는 병렬 작업 몫)

Refs #2669
상담함은 스케줄·대시보드에서 창으로 뜨는데, 알림·옛 주소로 들어오면
페이지(/schedule/consultations)로 열려 들어온 길마다 모양이 달랐다.

- ConsultationsPage 의 페이지 모드·returnTo·돌아가기 링크, 경로
  consultationsSegment·consultationsFromDashboard, 쓰이지 않는
  consultationsDestination, 문구 consultBackTo* 를 지운다
- 상담함으로 보내는 길(알림, /consultations·/schedule/consultations)은
  /schedule?inbox=1 로 스케줄에 가서 창을 열고 쿼리를 지운다

Closes #2717
디자인 규격 전환(#1730)에서 공용 AppCountBadge(빨간 원)로 바뀌며 남색이던
안읽음 수가 빨간색이 됐다. 사이드바 `메시지` 숫자와 같은 브랜드 남색으로
되돌린다. AppCountBadge 에 color 인자를 더하고 기본은 빨강 그대로다.

Refs #2669
- "데모는 상담함을 숨긴다"(사이드바)
- "데모 템플릿은 읽기 전용"(코칭 화면)
- "Pages 빌드는 USE_MOCK_API=false"(app_config) — 기본값(true)으로 빌드해
  브라우저 로컬 시드를 읽는다

Refs #2669
@aJISUa
aJISUa force-pushed the fix/2669-trainer-demo-report-schedule branch from 0a21d6d to 8130252 Compare September 30, 2026 19:57
@aJISUa aJISUa changed the title fix(demo): 트레이너 웹 데모 리포트·일정·상담함의 표시 누락과 새로고침 초기화 수정 fix(demo): 트레이너 웹 데모 리포트·일정·상담함 표시 누락·새로고침 초기화 수정과 상담함 창 통일 Sep 30, 2026
@aJISUa
aJISUa marked this pull request as ready for review September 30, 2026 20:01
aJISUa and others added 4 commits October 1, 2026 05:07
…-report-schedule

# Conflicts:
#	frontend/flutter_trainer/lib/core/storage/seed_data.dart
#	frontend/flutter_trainer/test/core/storage/seed_data_test.dart
#	frontend/flutter_trainer/test/features/notifications/demo_notification_repository_test.dart
트레이너 시드 플래그는 v45 로 맞추고, routine_ai_locale_test 는 main 의 메모리 DB 설정을 쓰고 쓰이지 않는 _memoryDb 도우미를 뺀다.
트레이너 시드 플래그는 v45 로 유지하고, 지난 상담 목록은 이 브랜치의 _pastConsultTime 상수가 있는 쪽을 쓴다(목록 내용은 같다).
@aJISUa
aJISUa merged commit 5f07ec3 into main Sep 30, 2026
5 checks passed
@aJISUa
aJISUa deleted the fix/2669-trainer-demo-report-schedule branch September 30, 2026 21:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

1 participant