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_from controla, servindo o previous_journey_audio até 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

Referências