Pular para o conteúdo principal

Feature: Mentorias em Grupo

Visao geral

Feature de curso para habilitar mentorias em grupo (is_group_meetings_enabled) e definir limite (group_limit). O backend tambem possui fluxo de distribuicao/recall de link de grupo para matriculados.

Atores

  • Administrador/supervisor (configura opcoes do curso).
  • Facilitador.
  • Participante matriculado.

Pre-condicoes

  • is_group_meetings_enabled configurado no curso (we-dhedalos/functions/acfs/group_663b721c7c208.php:52-71).
  • group_limit disponivel quando a flag acima esta ativa (we-dhedalos/functions/acfs/group_663b721c7c208.php:73-102).
  • Turma vinculada a ciclo e curso (fk_cycles_classes e fk_courses_cycles).

Fluxo principal

  1. Frontend consulta tipo de reuniao por turma (/courses/{class_id}/meeting-type).
  2. Backend sobe da turma para ciclo/curso e retorna is_group_meetings_enabled + facilitador. Fonte: we-dhedalos/functions/rest/courses.php:581-619.
  3. Para grupo de comunicacao, endpoint /group/{uid} devolve group_link e marca inscricao como in_group. Fonte: we-dhedalos/functions/rest/course/group_link.php:40-60.

Fluxos alternativos

  • Ciclo/facilitador/curso nao encontrados: resposta 404 no endpoint de meeting-type (we-dhedalos/functions/rest/courses.php:588-604).
  • Inscricao invalida ou turma/link invalido no endpoint de grupo: 400 (we-dhedalos/functions/rest/course/group_link.php:36-45).
  • Recall de grupo sem ciclos/turmas/alunos elegiveis retorna erro (we-dhedalos/functions/rest/course/inactive_group.php:49-87).

Regras de negocio

  • group_limit so aparece no admin quando is_group_meetings_enabled = 1. Fonte: we-dhedalos/functions/acfs/group_663b721c7c208.php:80-88.
  • A API de turmas devolve is_group_meetings_enabled e group_limit no objeto de curso. Fonte: we-dhedalos/functions/rest/classes.php:1379-1382 e we-dhedalos/functions/rest/classes.php:1491-1493.
  • Ao entregar link de grupo, sistema grava log de acao e atualiza is_user_in_group_link. Fonte: we-dhedalos/functions/rest/course/group_link.php:48-58.

Estados possiveis

  • Flag de curso: is_group_meetings_enabled = 0|1.
  • Estado de entrada em grupo na inscricao (students.is_user_in_group_link): enrolled -> in_group.

Endpoints envolvidos

  • OpenAPI GET /dhedalos/v1/courses/{class_id}/meeting-type
  • OpenAPI GET /dhedalos/v1/group/{uid}
  • OpenAPI GET /dhedalos/v1/group/recall_group_link
  • OpenAPI GET /dhedalos/v1/classes/subscriber (retorna metadados de curso/turma)

Tabelas/CPTs afetados

  • model.md curso (metas is_group_meetings_enabled, group_limit)
  • model.md classes (meta group_link)
  • model.md students (meta is_user_in_group_link)
  • model.md user_log_action (log de acao de grupo)

Pendencias/duvidas

  • Nao foi encontrada regra backend aplicando group_limit em endpoint de criacao/entrada de grupo; o valor e retornado para consumo do cliente.