Pular para o conteúdo principal

Feature: Certificacao Progressiva

Visao geral

Feature de curso (enable_certificacao_progressiva) que habilita campos de carga horaria e propaga metadados para curso, ciclos e matriculas (students). Tambem e usada por cron para identificar ciclos progressivos ativos.

Atores

  • Administrador/supervisor (configura curso/ciclo).
  • Participante (recebe metadados de progressiva na matricula).
  • Jobs/cron do sistema.

Pre-condicoes

  • Curso com enable_certificacao_progressiva ligado (we-dhedalos/functions/acfs/group_663b721c7c208.php:146-165).
  • Grupo ACF "Certificacao Progressiva" disponivel no curso quando o campo esta ativo. Fonte: we-dhedalos/functions/acfs/group_6667cf1e12abc.php:139-151.

Fluxo principal

  1. Admin salva curso com configuracao de carga horaria da progressiva.
  2. Hook acf/save_post recalcula cargas e propaga para:
    • curso (curso)
    • ciclos futuros/abertos (ciclo)
    • matriculas (students) desses ciclos Fonte: we-dhedalos/functions/utils/update_carga_horaria_total_certificacao_progressiva.php:3-145.
  3. Na inscricao, se ciclo estiver marcado como progressivo, metadados de carga sao gravados na matricula. Fonte: we-dhedalos/functions/rest/course/enroll.php:142-163.
  4. Jobs usam a flag para encontrar ciclos progressivos ativos. Fonte: we-dhedalos/functions/utils/progressive_crons_functions.php:21-24.

Fluxos alternativos

  • Se o post salvo nao for curso, a propagacao nao roda. Fonte: we-dhedalos/functions/utils/update_carga_horaria_total_certificacao_progressiva.php:5-8.
  • Se nao houver ciclos/alunos elegiveis, a rotina encerra sem updates em students. Fonte: we-dhedalos/functions/utils/update_carga_horaria_total_certificacao_progressiva.php:85-127.

Regras de negocio

  • Soma de carga total e calculada em minutos com base no repeater carga_horaria_certificacao_progressiva. Fonte: we-dhedalos/functions/utils/update_carga_horaria_total_certificacao_progressiva.php:15-24.
  • Cargas individuais (ao_vivo, mentoria, login_hub, whatsapp) tambem sao convertidas para minutos e replicadas. Fonte: we-dhedalos/functions/utils/update_carga_horaria_total_certificacao_progressiva.php:29-47.
  • Ciclos progressivos ativos sao filtrados por enable_certificacao_progressiva = 1 no curso. Fonte: we-dhedalos/functions/utils/progressive_crons_functions.php:21-24.

Estados possiveis

  • Curso: enable_certificacao_progressiva = 0|1.
  • Curso/ciclo/matricula: is_progressiva = 0|1.
  • Cargas horarias: inteiros em minutos nos metadados replicados.

Endpoints envolvidos

  • OpenAPI POST /dhedalos/v1/enroll/{slug_curso}
  • OpenAPI GET /dhedalos/v1/classes/subscriber
  • OpenAPI GET /dhedalos/v1/classes/facilitator

Tabelas/CPTs afetados

  • model.md curso (flag e metadados de carga)
  • model.md ciclo (flag/metadados replicados)
  • model.md students (metadados de progressiva por matricula)

Pendencias/duvidas

  • A atualizacao de indicadores de engajamento (login_hub, acesso_whatsapp) nao esta centralizada neste fluxo; apenas os campos de carga sao propagados aqui.