o2o-triple-pick/backend/app
jwkim fdb04a2ccc 응원가 영구 보존·종료 경기 노출 — 음원 DB 저장 + 경기별 조회 API
- Suno CDN 임시 URL 만료 대비: 완성 곡 첫 트랙을 워커가 다운로드해
  song_audio(bytea)로 보존하고 audioUrl을 /api/songs/audio/{id}/{idx}로 재작성
  (틱당 5곡, 실패 3회 상한 — 기존 곡도 자동 백필)
- GET /api/songs/match/{match_id} 추가 — 날짜 무관 조회로 종료된 경기
  상세에서도 '응원가 듣기' 버튼 노출
- 프론트 getTeamSongTracks를 오늘 전체 캐시 → 경기별 조회·캐시로 전환
- 음원 서빙은 Range(206) 지원, immutable 캐시 + task_id 캐시버스터

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 15:39:16 +09:00
..
routers 응원가 영구 보존·종료 경기 노출 — 음원 DB 저장 + 경기별 조회 API 2026-08-28 15:39:16 +09:00
services 응원가 영구 보존·종료 경기 노출 — 음원 DB 저장 + 경기별 조회 API 2026-08-28 15:39:16 +09:00
__init__.py Refactor: Next.js+Firebase → React(Vite) + FastAPI + PostgreSQL 2026-06-10 13:04:35 +09:00
config.py 월드컵 서비스 종료 + 응원가 MLS 확장 2026-08-25 10:47:49 +09:00
database.py docker compose 수정 , 2026-06-10 15:23:05 +09:00
domain.py feat: KBO/MLB 운영 안정화 — 순위 탭·라이브 개선·취소/더블헤더 지원·야구 점수제 2026-07-22 11:01:10 +09:00
main.py 오늘의 응원가 자동 생성 파이프라인 (Suno) 2026-08-25 09:33:34 +09:00
models.py 응원가 영구 보존·종료 경기 노출 — 음원 DB 저장 + 경기별 조회 API 2026-08-28 15:39:16 +09:00
regenerate_ai.py perf(ai): 자동 생성은 비어있는 예측만 채우도록(기존 보존) 2026-06-11 16:17:12 +09:00
schedule_data.py Voting opens at D-5 (120h before kickoff), was D-2 2026-06-12 17:24:29 +09:00
schemas.py feat: KBO/MLB 운영 안정화 — 순위 탭·라이브 개선·취소/더블헤더 지원·야구 점수제 2026-07-22 11:01:10 +09:00
scoring.py feat: KBO/MLB 운영 안정화 — 순위 탭·라이브 개선·취소/더블헤더 지원·야구 점수제 2026-07-22 11:01:10 +09:00
seed_data.py Refactor: Next.js+Firebase → React(Vite) + FastAPI + PostgreSQL 2026-06-10 13:04:35 +09:00
seed.py Refactor: Next.js+Firebase → React(Vite) + FastAPI + PostgreSQL 2026-06-10 13:04:35 +09:00
teams_baseball.py feat(mls): MLS 리그 추가 — ESPN 비공식 API 연동 2026-08-14 13:47:13 +09:00
teams_data.py Load all 12 groups' schedule (72 matches) + Naver-style schedule UI 2026-06-12 14:56:24 +09:00
teams_mls.py feat(mls): MLS 리그 추가 — ESPN 비공식 API 연동 2026-08-14 13:47:13 +09:00
worker.py 정산 조회 범위 동적 확장 — 오래 방치된 미정산 경기가 영원히 live로 남는 버그 수정 2026-08-27 14:48:21 +09:00