R-004 — Avanço na jornada por conclusão, no dia seguinte
TLDR: Concluir o áudio (≥ 90%) libera o próximo, mas só a partir do dia seguinte.
Regra originalmente identificada como RN03 em
docs/audio/audio_journey/RULES.md.
Given / When / Then
Dado que o novo usuário atinge 90% ou mais de progresso (AudioProgress.completed_at is not None)
Quando acessa GET /audios/daily no dia seguinte ou posterior
Então a posição do UserJourney é incrementada e ele recebe o próximo áudio
Restrições
- No mesmo dia em que o áudio foi concluído, o usuário continua recebendo o áudio atual — é o que
current_audio_available_fromcontrola, servindo oprevious_journey_audioaté a data de liberação - A transição de estado é executada pelo signal
on_audio_progress_save(apps/audios/signals.py), não pelo endpoint —GET /audios/dailyé puramente de leitura
Teste vinculado
tests/audios/ — usuário na posição 1 com progresso concluído recebe o áudio da posição 2 no dia seguinte