Ir para o conteúdo

Modelos de dados ​

Estruturas usadas nos corpos e nas respostas. Os campos marcados como obrigatórios devem estar sempre presentes; "ou nulo" indica que o valor pode ser null.

AceitarConviteInput ​

CampoTipoObrigatórioRestriçõesDescrição
tokenstringsim20–200 caracteres
senhaSenhasim
nationalitystringnão2–2 caracteres; ^[A-Za-z]{2}$
locale"pt-BR" | "es" | "en-US"não
aceiteslista de objectnão0–4 itens; padrão: []Termos aceitos (versão do documento vigente).
aceites[].documento"TERMO_USO" | "POLITICA_PRIVACIDADE"sim
aceites[].versaostringsim1–20 caracteres

AtividadeAtualizar ​

CampoTipoObrigatórioRestriçõesDescrição
dataDatanão
atividadeProfissionalIdstring (uuid) ou nulonão
horaInicioHora ou nulonão
horaFimHora ou nulonão
descricaostring ou nulonãoa 2000 caracteres
observacoesstring ou nulonãoa 5000 caracteres
localstring ou nulonãoa 500 caracteres
obrigatoriabooleannão
canceladabooleannão
cercaAtivabooleannão
cercaRaioMinteger ou nulonão10…5000
latnumber ou nulonão-90…90
lngnumber ou nulonão-180…180

AtividadeCriar ​

CampoTipoObrigatórioRestriçõesDescrição
dataDatasim
atividadeProfissionalIdstring (uuid) ou nulonão
horaInicioHora ou nulonão
horaFimHora ou nulonão
descricaostring ou nulonãoa 2000 caracteres
observacoesstring ou nulonãoa 5000 caracteres
localstring ou nulonãoa 500 caracteres
obrigatoriabooleannão
canceladabooleannão
cercaAtivabooleannão
cercaRaioMinteger ou nulonão10…5000
latnumber ou nulonão-90…90
lngnumber ou nulonão-180…180

AtividadeDto ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
turmaIdstring (uuid)sim
dataDatasim
horaInicioHora ou nulosim
horaFimHora ou nulosim
atividadeProfissionalIdstring (uuid) ou nulosim
atividadeProfissionalNomestring ou nulosimNome do item do catálogo (para listas e telas que não carregam o catálogo).
descricaostring ou nulosim
observacoesstring ou nulosim
localstring ou nulosim
obrigatoriabooleansim
canceladabooleansim
cercaAtivabooleansim
cercaRaioMinteger ou nulosim
latnumber ou nulosim
lngnumber ou nulosim
comPresencasbooleansimJá existem presenças: data e hora ficam travadas.

AtividadeProfissionalAtualizar ​

CampoTipoObrigatórioRestriçõesDescrição
nomestringnão1–200 caracteres
descricaostring ou nulonãoa 2000 caracteres
ativobooleannão

AtividadeProfissionalCriar ​

CampoTipoObrigatórioRestriçõesDescrição
nomestringsim1–200 caracteres
descricaostring ou nulonãoa 2000 caracteres

AtividadeProfissionalDto ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
disciplinaIdstring (uuid)sim
nomestringsim
descricaostring ou nulosim
ativobooleansim
atividadesintegersimQuantas atividades (ocorrências) apontam para o item.

AtividadeProfissionalMesclar ​

Mescla: as atividades do item de origem passam para o de destino e a origem é desativada (nada se apaga).

CampoTipoObrigatórioRestriçõesDescrição
destinoIdstring (uuid)sim

AtividadesProfissionais ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de AtividadeProfissionalDtosim

AuditoriaEstatisticas ​

CampoTipoObrigatórioRestriçõesDescrição
deDatasim
ateDatasim
totalintegersim0…
porAcaolista de objectsim
porAcao[].acaostringsim
porAcao[].totalintegersim0…
porDialista de objectsim
porDia[].diaDatasim
porDia[].totalintegersim0…

AuditoriaItem ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
criadoEmstringsim
acaostringsim
entidadestringsim
entidadeIdstring ou nulosim
instituicaoIdstring ou nulosim
instituicaoSiglastring ou nulosim
atorobject ou nulosimQuem fez: só o id e o nome de exibição. Nulo = o próprio sistema ou uma conta já excluída (contas anonimizadas aparecem como “Pessoa removida”).
ator.idstring (uuid)sim
ator.nomestringsim
dadosobjectsimDetalhes do evento, já filtrados: campos que poderiam conter texto livre são omitidos.
omitidosintegersim0…Quantos campos dos detalhes foram omitidos por poderem conter texto livre.

AuditoriaPagina ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de AuditoriaItemsim
proximostring ou nulosim

AutoavaliacaoDoAluno ​

Visão do aluno: a janela é a do feedback final; podeEscrever = janela aberta e matrícula ativa. minha é a única autoavaliação que o aluno vê (a dele), mesmo depois do prazo.

CampoTipoObrigatórioRestriçõesDescrição
turmaobjectsim
turma.idstring (uuid)sim
turma.nomestringsim
janelaJanelaFeedbacksim
podeEscreverbooleansim
criterioslista de CriterioDtosim
minhaAutoavaliacaoDto ou nulosim

AutoavaliacaoDto ​

Autoavaliação final do aluno; vem aqui porque a tela da equipe a mostra junto do feedback final.

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
matriculaIdstring (uuid)sim
comentariostringsim
notaslista de objectsim
notas[].criterioIdstring (uuid)sim
notas[].valorinteger ou nulosim
criadoEmstringsim
atualizadoEmstringsim

AutoavaliacaoEscrever ​

Autoavaliação final do aluno: nota própria em cada critério ativo da disciplina (ou null = “não se aplica”, só onde o critério permite) e um comentário obrigatório. Só o próprio aluno grava, durante a janela do feedback final.

CampoTipoObrigatórioRestriçõesDescrição
notaslista de objectsim0–200 itens
notas[].criterioIdstring (uuid)sim
notas[].valorinteger ou nulosim
comentariostringsim1–4000 caracteres

AvaliacaoMatricula ​

Notas e avaliação final de uma matrícula. Ao aluno, antes de notasVisiveisEm, liberada é falso e presencas e avaliacaoFinal vêm vazios. Quem avalia a turma vê tudo, sempre. rotulo: o rótulo da rubrica do critério para aquele valor, no idioma pedido (nulo sem rubrica ou “não se aplica”).

CampoTipoObrigatórioRestriçõesDescrição
matriculaIdstring (uuid)sim
turmaobjectsim
turma.idstring (uuid)sim
turma.nomestringsim
alunoobjectsim
aluno.idstring (uuid)sim
aluno.nomestringsim
liberadabooleansim
notasVisiveisEmData ou nulosim
criterioslista de objectsim
criterios[].idstring (uuid)sim
criterios[].nomestringsim
criterios[].notaMinintegersim
criterios[].notaMaxintegersim
criterios[].ativobooleansim
presencaslista de objectsim
presencas[].presencaIdstring (uuid)sim
presencas[].atividadeobjectsim
presencas[].atividade.idstring (uuid)sim
presencas[].atividade.dataDatasim
presencas[].atividade.descricaostring ou nulosim
presencas[].notaslista de objectsim
presencas[].notas[].criterioIdstring (uuid)sim
presencas[].notas[].valorinteger ou nulosim
presencas[].notas[].rotulostring ou nulosim
presencas[].nivelSupervisaoNivelSupervisao ou nulonão
avaliacaoFinalobject ou nulosim
avaliacaoFinal.textostringsim
avaliacaoFinal.emstring ou nulosim
avaliacaoFinal.porobject ou nulonão
avaliacaoFinal.por.idstring (uuid)sim
avaliacaoFinal.por.nomestringsim

AvaliarPresenca ​

notas só vale ao confirmar: rejeitar não tem nota. Ausente = mantém as notas que já havia; presente (mesmo vazio) = substitui o conjunto inteiro.

CampoTipoObrigatórioRestriçõesDescrição
estado"CONFIRMADA" | "REJEITADA"sim
comentariostring ou nulonãoa 2000 caracteres
notaslista de Notanão0–20 itens
nivelSupervisaoNivelSupervisao ou nulonãoAusente = mantém o que havia; nulo = limpa; só vale ao confirmar.

Cockpit ​

CampoTipoObrigatórioRestriçõesDescrição
alunoCockpitAluno ou nulosim
avaliadorCockpitAvaliador ou nulosim
gestaoCockpitGestao ou nulosim

CockpitAluno ​

CampoTipoObrigatórioRestriçõesDescrição
instituicoeslista de objectnãoInstituições onde a pessoa tem matrícula (ativa ou no histórico): sempre todas, mesmo com o filtro instituicaoId. Pode faltar em servidores mais antigos.
instituicoes[].idstring (uuid)sim
instituicoes[].siglastringsim
instituicoes[].nomestringsim
proximaslista de objectsimPróximas atividades (de hoje em diante, no fuso da instituição), com a situação do pedido de presença.
proximas[].idstring (uuid)sim
proximas[].dataDatasim
proximas[].horaInicioHora ou nulosim
proximas[].horaFimHora ou nulosim
proximas[].descricaostring ou nulosim
proximas[].turmaobjectsim
proximas[].turma.idstring (uuid)sim
proximas[].turma.nomestringsim
proximas[].disciplinaobjectsim
proximas[].disciplina.idstring (uuid)sim
proximas[].disciplina.siglastringsim
proximas[].disciplina.nomestringsim
proximas[].estado"NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA"sim
proximas[].obrigatoriabooleannão
proximas[].janelaobjectnão
proximas[].janela.abrestring ou nulosim
proximas[].janela.fechastring ou nulosim
proximas[].janela.fase"antes" | "aberta" | "encerrada"sim
proximas[].janela.fusostringnão
semPedidointegersimAtividades dos últimos 30 dias que já passaram e ainda não têm pedido de presença.
rejeitadasintegersimPedidos rejeitados nos últimos 60 dias: a pessoa pode refazê-los.
frequenciaobjectsimconfirmadas e realizadas contam todas as atividades (o “X de N” do início); percentual considera só as obrigatórias.
frequencia.confirmadasintegersim
frequencia.realizadasintegersim
frequencia.percentualnumber ou nulosim
turmaslista de objectsimNotas por turma. Só trazem valores depois que a turma libera; antes, liberada é falso e criterios vem vazio.
turmas[].turmaobjectsim
turmas[].turma.idstring (uuid)sim
turmas[].turma.nomestringsim
turmas[].disciplinaobjectsim
turmas[].disciplina.idstring (uuid)sim
turmas[].disciplina.siglastringsim
turmas[].disciplina.nomestringsim
turmas[].liberadabooleansim
turmas[].feedbackFinalLiberadobooleansim
turmas[].autoavaliacaoAbertabooleansim
turmas[].autoavaliacaoEnviadabooleansim
turmas[].criterioslista de objectsim
turmas[].criterios[].criterioIdstring (uuid)sim
turmas[].criterios[].nomestringsim
turmas[].criterios[].notaMinintegersim
turmas[].criterios[].notaMaxintegersim
turmas[].criterios[].medianumbersim
turmas[].criterios[].quantidadeintegersim

CockpitAvaliador ​

CampoTipoObrigatórioRestriçõesDescrição
pendentesintegersim
comExcecaointegersimPendentes fora da janela ou da cerca (fila de exceções).
atividadesHojeintegersimAtividades de hoje nas turmas que a pessoa avalia.
turmaslista de objectsimTurmas com pedido esperando, da mais cheia para a mais vazia (até 10).
turmas[].turmaobjectsim
turmas[].turma.idstring (uuid)sim
turmas[].turma.nomestringsim
turmas[].disciplinaobjectsim
turmas[].disciplina.idstring (uuid)sim
turmas[].disciplina.siglastringsim
turmas[].disciplina.nomestringsim
turmas[].pendentesintegersim
turmas[].comExcecaointegersimPendentes fora da janela ou da cerca (fila de exceções).
feedbackFinalobjectsimFeedback final por escrever: nas turmas que a pessoa avalia e cujo prazo está aberto, alunos (menos ela mesma) sem feedback dela. As mais urgentes (prazo mais próximo) primeiro, até 10 turmas.
feedbackFinal.pendentesintegersim
feedbackFinal.turmaslista de objectsimTurmas com pedido esperando, da mais cheia para a mais vazia (até 10).
feedbackFinal.turmas[].turmaobjectsim
feedbackFinal.turmas[].disciplinaobjectsim
feedbackFinal.turmas[].ateDatasim
feedbackFinal.turmas[].pendentesintegersim

CockpitGestao ​

CampoTipoObrigatórioRestriçõesDescrição
instituicoesintegersim
disciplinasintegersim
turmasintegersim
alunosintegersim
semCriterioslista de objectsimDisciplinas ativas sem nenhum critério ativo: ninguém consegue dar nota nelas (até 5; o total está em semCriteriosTotal).
semCriterios[].idstring (uuid)sim
semCriterios[].siglastringsim
semCriterios[].nomestringsim
semCriteriosTotalintegersim
pendenciaslista de objectsimTurmas ativas ainda não prontas para receber presença, por motivo: sem centro (a cerca não tem referência), sem atividade de hoje em diante, sem aluno, ou com aluno que ainda não aceitou o convite. Até 5 turmas por motivo; o total vem em total. Só turmas e contagens, nenhum nome de pessoa.
pendencias[].tipo"SEM_CENTRO" | "SEM_ATIVIDADE" | "SEM_ALUNOS" | "CONVITE_PENDENTE"sim
pendencias[].totalintegersim
pendencias[].turmaslista de objectsim
pendencias[].turmas[].turmaobjectsim
pendencias[].turmas[].disciplinaobjectsim
listaTurmasobjectnãoSituação de cada turma ativa do escopo (as mesmas contadas em turmas), por sigla da disciplina e nome da turma, até 50 (o total vem em total): quantas atividades hoje e quais pendências tem, com as mesmas regras de pendencias. semCriterio: a disciplina não tem critério ativo (bloqueia a avaliação). Só ids, siglas e contagens. Pode faltar em servidores mais antigos.
listaTurmas.totalintegersim
listaTurmas.itenslista de objectsim
listaTurmas.itens[].idstring (uuid)sim
listaTurmas.itens[].nomestringsim
listaTurmas.itens[].disciplinaobjectsim
listaTurmas.itens[].atividadesHojeintegersim
listaTurmas.itens[].pendenciaslista de "SEM_CENTRO" | "SEM_ATIVIDADE" | "SEM_ALUNOS" | "CONVITE_PENDENTE"simTurmas ativas ainda não prontas para receber presença, por motivo: sem centro (a cerca não tem referência), sem atividade de hoje em diante, sem aluno, ou com aluno que ainda não aceitou o convite. Até 5 turmas por motivo; o total vem em total. Só turmas e contagens, nenhum nome de pessoa.
listaTurmas.itens[].semCriteriobooleansim

ConfirmarLote ​

Confirmação em lote: só pedidos pendentes, sem exceção, sem notas nem comentário (esses ficam na avaliação individual). Tudo ou nada: se um item não passa, nenhum é gravado.

CampoTipoObrigatórioRestriçõesDescrição
idslista de string (uuid)sim1–100 itens

ConfirmarLoteResultado ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de PresencaDtosim

ContadorNotificacoes ​

CampoTipoObrigatórioRestriçõesDescrição
naoLidasintegersim0…

ContatoSite ​

Formulário de contato do site (sem login). site é um campo-isca: invisível para quem usa o formulário; um robô que preenche tudo o preenche também, e a API descarta o envio sem avisar.

CampoTipoObrigatórioRestriçõesDescrição
nomestringnãoa 120 caracteres
emailEmailsim
telefonestringnãoa 30 caracteres
mensagemstringsim20–2000 caracteres
sitestringnãoa 200 caracteres

ConversaPagina ​

CampoTipoObrigatórioRestriçõesDescrição
turmaobjectsim
turma.idstring (uuid)sim
turma.nomestringsim
turma.disciplinaNomestringsim
turma.ativabooleansim
itenslista de MensagemDtosimDa mais antiga para a mais nova.
anterioresstring ou nulosimCursor para buscar as anteriores; nulo = chegou ao começo.
podeEscreverbooleansim
podeModerarbooleansim
alteradaslista de MensagemDtosimMensagens editadas ou removidas desde alteradasDesde (para consulta periódica): o cliente troca as que já tem.
agorastringsimRelógio do servidor no momento da leitura (use no próximo alteradasDesde).

CriterioAtualizar ​

Só o que pode mudar depois: nomes, descrições, ordem e ativo. Enviar chave ou escala é erro (400), não é ignorado em silêncio.

CampoTipoObrigatórioRestriçõesDescrição
nomesobjectnão
nomes.pt-BRstringnão1–120 caracteres
nomes.esstringnão1–120 caracteres
nomes.en-USstringnão1–120 caracteres
descricoesCriterioDescricoesnão
rubricasCriterioRubricasnão
ordemintegernão0…999
ativobooleannão

CriterioCriar ​

CampoTipoObrigatórioRestriçõesDescrição
chavestringsim^[a-z][a-z0-9_]{1,39}$
notaMinintegersim0…99
notaMaxintegersim1…100
permiteNabooleannãopadrão: false
ordemintegernão0…999
nomesCriterioNomessim
descricoesCriterioDescricoesnão
rubricasCriterioRubricasnão

CriterioDescricoes ​

CampoTipoObrigatórioRestriçõesDescrição
pt-BRstringnãoa 300 caracteres
esstringnãoa 300 caracteres
en-USstringnãoa 300 caracteres

CriterioDto ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
disciplinaIdstring (uuid)sim
chavestringsim
notaMinintegersim
notaMaxintegersim
permiteNabooleansim
ordemintegersim
ativobooleansim
nomestringsimNome no idioma de quem pediu (cai no português e depois em qualquer idioma).
nomesobjectsimTodos os nomes cadastrados, por idioma (para editar).
descricaostringsimDescrição de como avaliar no idioma de quem pediu (cai no português; vazia se não houver).
descricoesobjectsimTodas as descrições cadastradas, por idioma (para editar).
rubricaRubricasimRubrica no idioma de quem pediu (cai no português; vazia se não houver).
rubricasobjectsimTodas as rubricas cadastradas, por idioma (para editar).

CriterioNomes ​

Nome do critério por idioma. O português é obrigatório na criação; os demais caem no português se faltarem.

CampoTipoObrigatórioRestriçõesDescrição
pt-BRstringsim1–120 caracteres
esstringnão1–120 caracteres
en-USstringnão1–120 caracteres

CriterioRubricas ​

Rubrica por idioma na criação e edição. null apaga a rubrica daquele idioma.

CampoTipoObrigatórioRestriçõesDescrição
pt-BRRubrica ou nulonão
esRubrica ou nulonão
en-USRubrica ou nulonão

Criterios ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de CriterioDtosim

Data ​

Data civil AAAA-MM-DD, existente no calendário.

string — ^\d{4}-\d{2}-\d{2}$

DisciplinaAtualizar ​

CampoTipoObrigatórioRestriçõesDescrição
siglastringnão^[A-Za-z0-9][A-Za-z0-9._-]{0,14}$
nomestringnão1–200 caracteres
ementastring ou nulonãoa 10000 caracteres
semanasinteger ou nulonão1…520
ativobooleannão

DisciplinaCriar ​

CampoTipoObrigatórioRestriçõesDescrição
siglastringsim^[A-Za-z0-9][A-Za-z0-9._-]{0,14}$
nomestringsim1–200 caracteres
ementastring ou nulonãoa 10000 caracteres
semanasinteger ou nulonão1…520

DisciplinaDto ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
instituicaoIdstring (uuid)sim
siglastringsim
nomestringsim
ementastring ou nulosim
semanasinteger ou nulosim
ativobooleansim

DispositivoRegistrar ​

CampoTipoObrigatórioRestriçõesDescrição
tokenstringsim8–4096 caracteres; ^[\x21-\x7E]+$
plataforma"IOS" | "ANDROID" | "WEB"sim

DispositivoRemover ​

CampoTipoObrigatórioRestriçõesDescrição
tokenstringsim8–4096 caracteres; ^[\x21-\x7E]+$

Email ​

E-mail de login: sem espaços nas pontas e em minúsculas.

string — a 254 caracteres; ^[^\s@]+@[^\s@]+\.[^\s@]+$

EncerrarOutrasResultado ​

Resposta de “encerrar todas as outras”: quantas conexões foram encerradas.

CampoTipoObrigatórioRestriçõesDescrição
encerradasintegersim0…

EquipeCriar ​

Nova pessoa da equipe: cria (ou reaproveita pelo e-mail) o usuário e já dá o vínculo. O convite sai por e-mail.

CampoTipoObrigatórioRestriçõesDescrição
emailEmailsim
nomestringsim1–200 caracteres
nationalitystring ou nulonão2–2 caracteres; ^[A-Za-z]{2}$
locale"pt-BR" | "es" | "en-US" ou nulonão
papel"CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR"sim
disciplinaIdstring (uuid) ou nulonão
turmaIdstring (uuid) ou nulonão
podeAvaliarbooleannãopadrão: false
podeCadastrarbooleannãopadrão: false

ErroApi ​

CampoTipoObrigatórioRestriçõesDescrição
code"VALIDATION_FAILED" | "UNAUTHENTICATED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_ALLOWED" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "UNPROCESSABLE" | "RATE_LIMITED" | "TOKEN_INVALID" | "EXCEPTION_REQUIRED" | "ACTIVITY_CANCELLED" | "ALREADY_CONFIRMED" | "NOT_PENDING" | "EXCEPTION_REVIEW_REQUIRED" | "BATCH_REJECTED" | "FEEDBACK_CLOSED" | "LAST_ADMIN" | "LAST_CURATOR" | "INTERNAL"sim
fieldsobjectnão
excecoeslista de stringnão
falhaslista de objectnão
falhas[].idstringsim
falhas[].code"VALIDATION_FAILED" | "UNAUTHENTICATED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_ALLOWED" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "UNPROCESSABLE" | "RATE_LIMITED" | "TOKEN_INVALID" | "EXCEPTION_REQUIRED" | "ACTIVITY_CANCELLED" | "ALREADY_CONFIRMED" | "NOT_PENDING" | "EXCEPTION_REVIEW_REQUIRED" | "BATCH_REJECTED" | "FEEDBACK_CLOSED" | "LAST_ADMIN" | "LAST_CURATOR" | "INTERNAL"sim
retryAfterSegintegernão0…
requestIdstringnão

EsqueciSenhaInput ​

CampoTipoObrigatórioRestriçõesDescrição
emailEmailsim

EstatisticaAluno ​

Presença de um aluno numa turma, contando só atividades não canceladas que já aconteceram (até hoje).

CampoTipoObrigatórioRestriçõesDescrição
alunoIdstring (uuid)sim
nomestringsim
propriobooleansimÉ a própria pessoa que pediu.
confirmadasintegersim
pendentesintegersim
rejeitadasintegersim
naoSolicitadasintegersim
obrigatoriasobjectsimConfirmadas e realizadas só entre as atividades obrigatórias: a base do percentual.
obrigatorias.confirmadasintegersim
obrigatorias.totalintegersim
percentualnumber ou nulosimObrigatórias confirmadas ÷ obrigatórias realizadas, de 0 a 100 com 1 casa decimal; nulo se ainda não houve atividade obrigatória realizada. Atividade opcional não entra.
mediaslista de MediaCriterionãoMédia por critério (presenças confirmadas na janela, sem “não se aplica”). Ausente na linha da própria pessoa enquanto a turma não libera as notas. Critério sem nota não aparece.

Estatisticas ​

CampoTipoObrigatórioRestriçõesDescrição
turmaslista de EstatisticaTurmasim

EstatisticaTurma ​

CampoTipoObrigatórioRestriçõesDescrição
turmaobjectsim
turma.idstring (uuid)sim
turma.nomestringsim
turma.ativobooleansim
disciplinaobjectsim
disciplina.idstring (uuid)sim
disciplina.siglastringsim
disciplina.nomestringsim
instituicaoobjectsim
instituicao.idstring (uuid)sim
instituicao.siglastringsim
instituicao.nomestringsim
atividadesintegersimAtividades não canceladas que já aconteceram na janela.
alunoslista de EstatisticaAlunosimQuem avalia a turma vê todos os alunos; quem só é aluno vê só a si.
criterioslista de objectnãoCritérios que aparecem nas médias (ativos ou com nota), na ordem da disciplina e no idioma da pessoa.
criterios[].idstring (uuid)sim
criterios[].nomestringsim
criterios[].notaMinintegersim
criterios[].notaMaxintegersim
notasLiberadasbooleannãoA turma já liberou as notas ao aluno.
mediasTurmalista de MediaCriterionãoMédia da turma por critério: só para quem avalia a turma; nunca ao aluno.
podeAvaliarbooleannãoQuem pediu avalia a turma (pode exportar).

EvolucaoAluno ​

CampoTipoObrigatórioRestriçõesDescrição
alunoobjectsim
aluno.idstring (uuid)sim
aluno.nomestringsim
disciplinaslista de EvolucaoDisciplinasim
turmasNaoLiberadasintegersim0…Só na visão do próprio aluno: turmas dele cujas notas ainda não foram liberadas (não entram nas séries).

EvolucaoAlunoItem ​

CampoTipoObrigatórioRestriçõesDescrição
matriculaIdstring (uuid)sim
nomestringsim
turmaobjectsim
turma.idstring (uuid)sim
turma.nomestringsim
disciplinaobjectsim
disciplina.idstring (uuid)sim
disciplina.nomestringsim

EvolucaoAlunos ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de EvolucaoAlunoItemsim

EvolucaoDisciplina ​

Evolução longitudinal de um aluno por disciplina, atravessando as turmas em que ele esteve. criterios: nota ao longo do tempo (N/A não vira ponto); notaMin e notaMax dão a escala. atividadesProfissionais: nível de supervisão por item do catálogo (atividade sem item não entra). avaliadores: quantos avaliadores distintos (o último de cada presença), só a contagem, nunca o nome.

CampoTipoObrigatórioRestriçõesDescrição
disciplinaobjectsim
disciplina.idstring (uuid)sim
disciplina.nomestringsim
instituicaoobjectnãoInstituição da disciplina: com conta única em várias instituições, a tela filtra por ela. Pode faltar em servidores mais antigos.
instituicao.idstring (uuid)sim
instituicao.siglastringsim
instituicao.nomestringsim
turmaslista de objectsim
turmas[].idstring (uuid)sim
turmas[].matriculaIdstring (uuid)sim
turmas[].nomestringsim
turmas[].dataInicioData ou nulosim
turmas[].dataFimData ou nulosim
presencasAvaliadasintegersim0…
avaliadoresintegersim0…
criterioslista de objectsim
criterios[].idstring (uuid)sim
criterios[].nomestringsim
criterios[].notaMinintegersim
criterios[].notaMaxintegersim
criterios[].pontoslista de objectsim
criterios[].pontos[].atividadeIdstring (uuid)sim
criterios[].pontos[].turmaIdstring (uuid)sim
criterios[].pontos[].dataDatasim
criterios[].pontos[].valorintegersim
atividadesProfissionaislista de objectsim
atividadesProfissionais[].idstring (uuid)sim
atividadesProfissionais[].nomestringsim
atividadesProfissionais[].pontoslista de objectsim
atividadesProfissionais[].pontos[].atividadeIdstring (uuid)sim
atividadesProfissionais[].pontos[].turmaIdstring (uuid)sim
atividadesProfissionais[].pontos[].dataDatasim
atividadesProfissionais[].pontos[].nivelNivelSupervisaosim

ExcluirContaConfirmarInput ​

CampoTipoObrigatórioRestriçõesDescrição
tokenstringsim20–200 caracteres

ExcluirContaInput ​

Exclusão da própria conta pelo aplicativo: confirma com a senha.

CampoTipoObrigatórioRestriçõesDescrição
senhaSenhasim

ExcluirContaSolicitarInput ​

Exclusão pela web, sem login: no passo 1 pede-se o link por e-mail; no passo 2 confirma-se com o token do link.

CampoTipoObrigatórioRestriçõesDescrição
emailEmailsim

FeedbackFinalDoAluno ​

O feedback final do próprio aluno numa turma: só depois do prazo (janela.estado === "encerrada") e sem o interno. Antes, liberado é falso e feedbacks vem vazio; liberaEm é o primeiro dia em que o aluno passa a ver.

CampoTipoObrigatórioRestriçõesDescrição
turmaobjectsim
turma.idstring (uuid)sim
turma.nomestringsim
liberadobooleansim
liberaEmData ou nulosim
criterioslista de CriterioDtosim
feedbackslista de FeedbackFinalDtosim

FeedbackFinalDto ​

Um feedback final. comentarioInterno só aparece para a equipe da turma e nunca para o aluno; autor é a pessoa que escreveu. O aluno recebe esta mesma forma, sempre sem o interno.

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
matriculaIdstring (uuid)sim
autorobject ou nulosimNulo quando o autor excluiu a conta.
autor.idstring (uuid)sim
autor.nomestringsim
comentariostringsim
comentarioInternostring ou nulonão
notaslista de objectsim
notas[].criterioIdstring (uuid)sim
notas[].valorinteger ou nulosim
criadoEmstringsim
atualizadoEmstringsim

FeedbackFinalEscrever ​

Feedback geral de encerramento do aluno na turma. Todos os critérios ativos da disciplina vêm com valor (ou null = “não se aplica”, só onde o critério permite); o comentário é obrigatório; o interno é opcional e nunca vai ao aluno. Texto vazio no interno apaga o interno.

CampoTipoObrigatórioRestriçõesDescrição
notaslista de objectsim0–200 itens
notas[].criterioIdstring (uuid)sim
notas[].valorinteger ou nulosim
comentariostringsim1–4000 caracteres
comentarioInternostring ou nulonãoa 4000 caracteres

FeedbackFinalMatricula ​

Tela do feedback final de um aluno, para quem avalia a turma ou a acompanha. meu: o feedback do próprio usuário (nulo se ainda não escreveu); podeEscrever = tem a capacidade de avaliar na turma, a janela está aberta e a matrícula não é a dele. equipe: os feedbacks dos outros autores, com o interno; só verTudo (professor da turma, coordenador da disciplina, curador da instituição) os vê; preceptor e auxiliar veem apenas o próprio e equipe vem vazia.

CampoTipoObrigatórioRestriçõesDescrição
matriculaIdstring (uuid)sim
turmaobjectsim
turma.idstring (uuid)sim
turma.nomestringsim
turma.dataInicioData ou nulosim
turma.dataFimData ou nulosim
alunoobjectsim
aluno.idstring (uuid)sim
aluno.nomestringsim
janelaJanelaFeedbacksim
criterioslista de CriterioDtosim
meuFeedbackFinalDto ou nulosim
podeEscreverbooleansim
verTudobooleansim
equipelista de FeedbackFinalDtosim
autoavaliacaoAutoavaliacaoDto ou nulonãoAutoavaliação do aluno. Só para quem verTudo; nulo para os demais e quando o aluno não escreveu.

FeedbackFinalTurma ​

Lista da turma para quem avalia ou acompanha: um item por aluno ativo (menos o próprio usuário). meuEm = quando o usuário gravou o seu pela última vez (nulo = falta escrever); total = quantos feedbacks o aluno tem, só para quem verTudo (nulo para os outros: preceptor e auxiliar não sabem o que os colegas escreveram).

CampoTipoObrigatórioRestriçõesDescrição
turmaobjectsim
turma.idstring (uuid)sim
turma.nomestringsim
turma.dataInicioData ou nulosim
turma.dataFimData ou nulosim
janelaJanelaFeedbacksim
podeEscreverbooleansim
verTudobooleansim
itenslista de objectsim
itens[].matriculaIdstring (uuid)sim
itens[].alunoobjectsim
itens[].aluno.idstring (uuid)sim
itens[].aluno.nomestringsim
itens[].meuEmstring ou nulosim
itens[].totalinteger ou nulosim

FilaAvaliacao ​

Ordenada por data da atividade e hora do pedido; total conta todos os pendentes, não só a página.

CampoTipoObrigatórioRestriçõesDescrição
itemslista de FilaAvaliacaoItemsim
totalintegersim0…

FilaAvaliacaoItem ​

CampoTipoObrigatórioRestriçõesDescrição
atividadeobjectsim
atividade.idstring (uuid)sim
atividade.descricaostring ou nulosim
atividade.dataDatasim
atividade.horaInicioHora ou nulosim
atividade.horaFimHora ou nulosim
atividade.obrigatoriabooleansim
atividade.turmaobjectsim
atividade.turma.idstring (uuid)sim
atividade.turma.nomestringsim
atividade.disciplinaobjectsim
atividade.disciplina.idstring (uuid)sim
atividade.disciplina.siglastringsim
atividade.disciplina.nomestringsim
linhaPresencaLinhasim
elegivelLotebooleansimEntra na confirmação em lote: pendente e sem exceção (regra calculada no servidor).

FrequenciaTurma ​

Matriz aluno × atividade da turma. Só o estado do pedido de cada aluno em cada atividade: nenhuma localização, relato, justificativa ou nota. estado é NAO_SOLICITADA também para atividade futura (o cliente decide pela data e por hoje). Os totais contam só atividades não canceladas que já aconteceram (até hoje); por isso atividade futura ou cancelada não entra em total.

CampoTipoObrigatórioRestriçõesDescrição
turmaobjectsim
turma.idstring (uuid)sim
turma.nomestringsim
hojeDatasimData de hoje no fuso da instituição (para destacar a coluna “hoje”).
deDatasim
ateDatasim
atividadeslista de objectsimAtividades na janela, por data e hora de início.
atividades[].idstring (uuid)sim
atividades[].dataDatasim
atividades[].horaIniciostring ou nulosim
atividades[].horaFimstring ou nulosim
atividades[].descricaostring ou nulosim
atividades[].obrigatoriabooleansim
atividades[].canceladabooleansim
alunoslista de objectsimAlunos com matrícula ativa, em ordem alfabética.
alunos[].idstring (uuid)sim
alunos[].matriculaIdstring (uuid)sim
alunos[].nomestringsim
alunos[].celulaslista de objectsim
alunos[].celulas[].atividadeIdstring (uuid)sim
alunos[].celulas[].estado"NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA"sim
alunos[].obrigatoriasobjectsim
alunos[].obrigatorias.confirmadasintegersim
alunos[].obrigatorias.totalintegersim
alunos[].opcionaisobjectsim
alunos[].opcionais.confirmadasintegersim
alunos[].opcionais.totalintegersim
alunos[].percentualnumber ou nulosim
truncadoobjectsimA lista foi cortada no limite máximo de alunos e atividades; a grade e os totais valem só para o que veio.
truncado.atividadesbooleansimAtividades na janela, por data e hora de início.
truncado.alunosbooleansimAlunos com matrícula ativa, em ordem alfabética.

Fuso ​

string — 1–64 caracteres

Health ​

CampoTipoObrigatórioRestriçõesDescrição
status"ok" | "degraded"sim
db"up" | "down"sim
versionstringsim
localestringsim

Hora ​

Hora do dia HH:MM ou HH:MM:SS; é devolvida sempre como HH:MM:SS.

string — ^([01]\d\|2[0-3]):[0-5]\d(:[0-5]\d)?$

ImportacaoEntrada ​

CampoTipoObrigatórioRestriçõesDescrição
csvstringsim1–90000 caracteres
modo"simular" | "aplicar"simsimular só valida e mostra o que aconteceria; aplicar grava tudo ou nada (a menos que parcial).
parcialbooleannãoModo parcial (com travas): importa só as linhas válidas e devolve as ignoradas na resposta. simular com parcial devolve hashConteudo; aplicar com parcial exige o mesmo hashConteudo (ausente ou diferente = 409 CONFLICT). Ausente ou false = tudo ou nada.
hashConteudostringnão^[0-9a-f]{64}$Hash devolvido pela simulação parcial do mesmo conteúdo (SHA-256 do conteúdo normalizado, 64 caracteres hexadecimais).

ImportacaoRelatorio ​

CampoTipoObrigatórioRestriçõesDescrição
tipo"pessoas" | "alunos" | "atividades"sim
modo"simular" | "aplicar"sim
aplicadobooleansimNo aplicar: true = gravou; false = alguma linha com erro, nada foi gravado. No simular, sempre false.
erroArquivo"empty" | "too_many_lines" | "unterminated_quote" | "too_large" | "missing_column" ou nulosimErro do arquivo como um todo (vazio, grande demais, coluna obrigatória ausente).
colunaAusentestring ou nulosim
resumoobjectsim
linhaslista de LinhaRelatoriosim
convitesinteger ou nulosim0…Convites que vão sair (contas novas). null = não informado (o simular não revela se o e-mail já tem conta).
parcialbooleannãoSó no modo parcial. true = o pedido foi parcial.
hashConteudostringnãoSó no simular parcial: SHA-256 do conteúdo normalizado (tipo, destino e linhas lidas), que o aplicar parcial devolve.
contagensobjectnãoSó no modo parcial: importadas = linhas válidas (CRIADA, INCLUIDA, REATIVADA ou JA_EXISTE, detalhadas em resumo); ignoradas = linhas com ERRO. Importadas + ignoradas = linhas lidas. No simular, é a previsão.
contagens.importadasintegersim0…
contagens.ignoradasintegersim0…Só no aplicar parcial: as linhas que ficaram de fora (linha, campo e motivo). Existe apenas nesta resposta: não é gravado.
ignoradaslista de LinhaRelatorionãoSó no aplicar parcial: as linhas que ficaram de fora (linha, campo e motivo). Existe apenas nesta resposta: não é gravado.

InstituicaoAtualizar ​

CampoTipoObrigatórioRestriçõesDescrição
nomestringnão1–200 caracteres
locale"pt-BR" | "es" | "en-US" ou nulonão
timezoneFusonão
retencaoMesesinteger ou nulonão1…600
controladorNomestring ou nulonão1–200 caracteresPrivacidade (LGPD): null apaga o valor e volta ao padrão da plataforma.
encarregadoNomestring ou nulonão1–200 caracteres
contatoPrivacidadeEmail ou nulonão
ativobooleannão

InstituicaoCriar ​

CampoTipoObrigatórioRestriçõesDescrição
siglastringsim^[A-Za-z0-9][A-Za-z0-9._-]{1,19}$
nomestringsim1–200 caracteres
locale"pt-BR" | "es" | "en-US" ou nulonão
timezoneFusonão
retencaoMesesinteger ou nulonão1…600
curadorobjectnãoPrimeiro curador da instituição: recebe o convite por e-mail.
curador.emailEmailsim
curador.nomestringsim1–200 caracteres

InstituicaoDto ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
siglastringsim
nomestringsim
ativobooleansim
locale"pt-BR" | "es" | "en-US" ou nulosim
timezonestringsim
retencaoMesesinteger ou nulosim
controladorNomestring ou nulonãoDados de privacidade da instituição; a API sempre os envia (nulos quando não informados).
encarregadoNomestring ou nulonão
contatoPrivacidadestring ou nulonão

JanelaFeedback ​

CampoTipoObrigatórioRestriçõesDescrição
estado"sem_data" | "nao_abriu" | "aberta" | "encerrada"sim
prazoDiasintegersim
abreEmData ou nulosimPrimeiro dia em que se pode escrever (o dia do fim da turma); nulo sem data de fim.
ateData ou nulosimÚltimo dia em que se pode escrever ou ajustar; nulo sem data de fim.

LinhaRelatorio ​

CampoTipoObrigatórioRestriçõesDescrição
linhaintegersim
situacao"VALIDA" | "CRIADA" | "VINCULADA" | "INCLUIDA" | "REATIVADA" | "JA_EXISTE" | "ERRO"sim
rotulostringsimO que identifica a linha para quem importou (o e-mail, ou a data e a descrição que vieram no próprio arquivo).
campostringnão
codigo"required" | "invalid" | "too_long" | "out_of_range" | "duplicate" | "not_found"não

LoginInput ​

CampoTipoObrigatórioRestriçõesDescrição
emailEmailsim
senhaSenhasim

LogoutInput ​

Entrada do logout: o aparelho pode mandar o token de push dele para ser apagado junto.

CampoTipoObrigatórioRestriçõesDescrição
refreshTokenstringsim20–200 caracteres
dispositivoTokenstringnão8–4096 caracteres; ^[\x21-\x7E]+$

MarcarLidas ​

Opção 1

CampoTipoObrigatórioRestriçõesDescrição
idslista de string (uuid)sim1–100 itens

Opção 2

CampoTipoObrigatórioRestriçõesDescrição
todastruesim

MatriculaAtualizar ​

CampoTipoObrigatórioRestriçõesDescrição
ativobooleansim

MatriculaCriar ​

Aluno já cadastrado (usuarioId) ou novo (email e nome; recebe o convite).

Opção 1

CampoTipoObrigatórioRestriçõesDescrição
usuarioIdstring (uuid)sim

Opção 2

CampoTipoObrigatórioRestriçõesDescrição
emailEmailsim
nomestringsim1–200 caracteres
nationalitystringnão2–2 caracteres; ^[A-Za-z]{2}$

MatriculaDto ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
turmaIdstring (uuid)sim
usuarioIdstring (uuid)sim
ativobooleansim
nomestringsim
emailstringsim
status"CONVIDADO" | "ATIVO" | "SUSPENSO"sim
jaExistiabooleannãoSó na resposta de criar por e-mail: o e-mail já tinha conta e a pessoa foi vinculada a ela.

Me ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
emailstringsim
nomestringsim
locale"pt-BR" | "es" | "en-US"sim
nationalitystring ou nulosim
vinculoslista de VinculoDtosim

MediaCriterio ​

Média de um critério com 1 casa decimal e quantas notas entraram nela (a mesma conta do início do aluno).

CampoTipoObrigatórioRestriçõesDescrição
criterioIdstring (uuid)sim
medianumbersim
quantidadeintegersim

MensagemDto ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
turmaIdstring (uuid)sim
autorobject ou nulosimNulo quando o autor excluiu a conta.
autor.idstring (uuid)sim
autor.nomestringsim
textostring ou nulosimNulo quando a mensagem foi removida (o texto é apagado na remoção).
criadaEmstringsim
editadaEmstring ou nulosim
removidabooleansim
removidaPorModeracaobooleansimRemovida por quem modera (e não pelo autor).
cursorstringsimCursor desta mensagem (use em depois ou antes).

MensagemTexto ​

CampoTipoObrigatórioRestriçõesDescrição
textostringsim1–2000 caracteres

MinhaAtividadeDto ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
matriculaIdstring (uuid)sim
dataDatasim
horaInicioHora ou nulosim
horaFimHora ou nulosim
descricaostring ou nulosim
localstring ou nulosim
obrigatoriabooleansim
canceladabooleansim
turmaobjectsim
turma.idstring (uuid)sim
turma.nomestringsim
disciplinaobjectsim
disciplina.idstring (uuid)sim
disciplina.siglastringsim
disciplina.nomestringsim
instituicaoobjectsim
instituicao.idstring (uuid)sim
instituicao.siglastringsim
instituicao.nomestringsim
estado"NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA"sim
presencaIdstring (uuid) ou nulosim
solicitadaEmstring ou nulosimQuando o pedido foi feito, se houve.
avaliadaEmstring ou nulosimQuando foi confirmada ou rejeitada (nulo enquanto não avaliada). Quem avaliou não vem: o aluno não vê nomes da equipe.
comentarioAvaliadorstring ou nulosimComentário de quem avaliou. Só vai ao próprio aluno e a quem avalia a turma. Ao aluno: o motivo de uma rejeição sempre; o de uma confirmação só depois que a turma libera as notas.
relatostring ou nulonãoO relato da própria presença (o aluno pode reescrevê-lo). Só nas linhas da própria pessoa.
regrasPedidoobjectsimPara avisar antes do envio o que o servidor vai exigir: a janela do pedido (com as tolerâncias da turma), o fuso da instituição (outro dia = data local diferente) e se a cerca vale (sem localização, será preciso justificar). O servidor continua decidindo: isto só evita enviar, receber erro e enviar de novo.
regrasPedido.janelaIniciostringsim
regrasPedido.janelaFimstringsim
regrasPedido.fusostringsim
regrasPedido.exigeLocalbooleansim

MinhaConversa ​

CampoTipoObrigatórioRestriçõesDescrição
turmaIdstring (uuid)sim
turmaNomestringsim
disciplinaNomestringsim
instituicaoSiglastringsim
ativabooleansim
naoLidabooleansimHá notificação de mensagem não lida nesta turma.

MinhasAtividades ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de MinhaAtividadeDtosim

MinhasConversas ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de MinhaConversasim

NivelSupervisao ​

integer — 1…5

Nota ​

Nota de um critério numa presença. valor nulo = “não se aplica”.

CampoTipoObrigatórioRestriçõesDescrição
criterioIdstring (uuid)sim
valorinteger ou nulosim0…100

NotificacaoDto ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
evento"PEDIDO_PENDENTE" | "LEMBRETE_AVALIADOR" | "AVALIACAO_FEITA" | "MENSAGEM_CHAT" | "LEMBRETE_ATIVIDADE" | "CONVITE_SUS" | "CONTA_EXCLUIDA"sim
criadaEmstringsim
lidabooleansim
turmaIdstring (uuid) ou nulosimSó ids e nomes de turma e atividade, para montar o texto e o link no idioma de quem lê. Nunca o texto de uma mensagem.
turmaNomestring ou nulosim
instituicaoNomestring ou nulosimpadrão: nullNome da instituição (só no aviso de conta excluída, que não tem turma).
atividadeIdstring (uuid) ou nulosim
atividadeDatastring ou nulosimData da atividade (AAAA-MM-DD), quando houver.
quantidadeintegersim1…Quantos eventos esta notificação junta (ex.: 3 mensagens novas).

NotificacoesPagina ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de NotificacaoDtosim
proximostring ou nulosim
naoLidasintegersim0…

Painel ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de PainelItemsim
truncadobooleansimHavia mais linhas do que o limite.
opcoesobjectsimOpções dos filtros: tudo o que a pessoa enxerga, independente dos filtros ativos.
opcoes.instituicoeslista de objectsim
opcoes.instituicoes[].idstring (uuid)sim
opcoes.instituicoes[].siglastringsim
opcoes.instituicoes[].nomestringsim
opcoes.disciplinaslista de objectsim
opcoes.disciplinas[].idstring (uuid)sim
opcoes.disciplinas[].siglastringsim
opcoes.disciplinas[].nomestringsim
opcoes.disciplinas[].instituicaoIdstring (uuid)sim
opcoes.turmaslista de objectsim
opcoes.turmas[].idstring (uuid)sim
opcoes.turmas[].nomestringsim
opcoes.turmas[].disciplinaIdstring (uuid)sim
opcoes.turmas[].ativobooleansim
opcoes.alunoslista de objectsim
opcoes.alunos[].idstring (uuid)sim
opcoes.alunos[].nomestringsim

PainelItem ​

Uma linha do painel: uma atividade para um aluno (a própria pessoa ou alguém que ela avalia).

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
matriculaIdstring (uuid)sim
dataDatasim
horaInicioHora ou nulosim
horaFimHora ou nulosim
descricaostring ou nulosim
localstring ou nulosim
obrigatoriabooleansim
canceladabooleansim
turmaobjectsim
turma.idstring (uuid)sim
turma.nomestringsim
disciplinaobjectsim
disciplina.idstring (uuid)sim
disciplina.siglastringsim
disciplina.nomestringsim
instituicaoobjectsim
instituicao.idstring (uuid)sim
instituicao.siglastringsim
instituicao.nomestringsim
estado"NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA"sim
presencaIdstring (uuid) ou nulosim
solicitadaEmstring ou nulosim
avaliadaEmstring ou nulosim
comentarioAvaliadorstring ou nulosim
relatostring ou nulonão
regrasPedidoobjectsim
regrasPedido.janelaIniciostringsim
regrasPedido.janelaFimstringsim
regrasPedido.fusostringsim
regrasPedido.exigeLocalbooleansim
alunoobjectsim
aluno.idstring (uuid)sim
aluno.nomestringsim
propriobooleansimA linha é da própria pessoa (como aluna).
podeAvaliarbooleansimPode confirmar ou rejeitar esta presença (avalia a turma e não é a própria).

ParametrosDto ​

Leitura de um nível: o que ele define (valores, null = não define) e o que valeria sem ele (herdados).

CampoTipoObrigatórioRestriçõesDescrição
nivel"plataforma" | "instituicao"sim
valoresobjectsim
herdadosobjectsim

ParametrosInstituicaoAtualizar ​

CampoTipoObrigatórioRestriçõesDescrição
turma.tolerancia_antes_mininteger ou nulonão0…720
turma.tolerancia_depois_mininteger ou nulonão0…720
senha.tamanho_minimointeger ou nulonão8…128
senha.historicointeger ou nulonão0…24
senha.intervalo_min_horasinteger ou nulonão0…168
sessao.expira_diasinteger ou nulonão1…365
auditoria.retencao_mesesinteger ou nulonão1…240
lembrete.atividade_antecedencia_mininteger ou nulonão0…1440
lembrete.avaliador_pendencia_horasinteger ou nulonão0…168
notificacao.silencio_inicio_hinteger ou nulonão0…23
notificacao.silencio_fim_hinteger ou nulonão0…23
sus.convite_intervalo_diasinteger ou nulonão0…730
feedback.prazo_diasinteger ou nulonão0…180
chat.retencao_mesesinteger ou nulonão1…240

ParametrosPlataformaAtualizar ​

CampoTipoObrigatórioRestriçõesDescrição
turma.tolerancia_antes_mininteger ou nulonão0…720
turma.tolerancia_depois_mininteger ou nulonão0…720
senha.tamanho_minimointeger ou nulonão8…128
senha.historicointeger ou nulonão0…24
senha.intervalo_min_horasinteger ou nulonão0…168
sessao.expira_diasinteger ou nulonão1…365
auditoria.retencao_mesesinteger ou nulonão1…240
dados.retencao_mesesinteger ou nulonão1…240
lembrete.atividade_antecedencia_mininteger ou nulonão0…1440
lembrete.avaliador_pendencia_horasinteger ou nulonão0…168
notificacao.silencio_inicio_hinteger ou nulonão0…23
notificacao.silencio_fim_hinteger ou nulonão0…23
sus.convite_intervalo_diasinteger ou nulonão0…730
feedback.prazo_diasinteger ou nulonão0…180
chat.retencao_mesesinteger ou nulonão1…240
notificacao.retencao_diasinteger ou nulonão1…3650

Pendente ​

Pedido na fila da turma (todas as atividades).

CampoTipoObrigatórioRestriçõesDescrição
atividadeobjectsim
atividade.idstring (uuid)sim
atividade.dataDatasim
atividade.descricaostring ou nulosim
linhaPresencaLinhasim

Pendentes ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de Pendentesim

PerfilAtualizar ​

Edição do próprio perfil. Só o que a pessoa pode mudar sozinha: e-mail e papéis não entram.

CampoTipoObrigatórioRestriçõesDescrição
nomestringnão1–200 caracteres
nationalitystring ou nulonão2–2 caracteres; ^[A-Za-z]{2}$
locale"pt-BR" | "es" | "en-US" ou nulonão
lattesUrl"" | stringnãoEndereço do currículo Lattes (https).
conselhoCodigostring ou nulonãoa 60 caracteresNúmero no conselho de classe. Só a própria pessoa vê.
anoGraduacaointeger ou nulonão1930…2100
residenciabooleannão
especializacaobooleannão
mestradobooleannão
doutoradobooleannão
minibiostring ou nulonãoa 2000 caracteres

PerfilDto ​

Perfil completo da própria pessoa (GET /me/perfil). Nunca devolvido a terceiros.

CampoTipoObrigatórioRestriçõesDescrição
nomestringsim
emailstringsim
nationalitystring ou nulosim
locale"pt-BR" | "es" | "en-US" ou nulosim
lattesUrlstring ou nulosim
conselhoCodigostring ou nulosim
anoGraduacaointeger ou nulosim
residenciabooleansim
especializacaobooleansim
mestradobooleansim
doutoradobooleansim
minibiostring ou nulosim
temFotobooleansimHá foto de perfil? A foto em si vem de GET /me/foto.
fotoEmstring ou nulosimMuda a cada troca de foto (serve para renovar o cache do avatar).

PoliticaDto ​

Política de privacidade vigente (mesmo formato do termo) e o endereço público padrão dela.

CampoTipoObrigatórioRestriçõesDescrição
versaointeger ou nulosim
textosTermoTextossim
publicadoEmstring (date-time) ou nulosim
urlPublicastringsim

PoliticaPublica ​

Página pública da política (sem login): é o endereço que as lojas e os e-mails apontam.

CampoTipoObrigatórioRestriçõesDescrição
instituicaoobjectsim
instituicao.siglastringsim
instituicao.nomestringsim
politicaTermoDtosim
privacidadePrivacidadeDtosim
urlPublicastringsim

Preferencia ​

Preferência por tipo: a pessoa desliga o aviso no app e/ou o push. Ausente = ligado.

CampoTipoObrigatórioRestriçõesDescrição
evento"PEDIDO_PENDENTE" | "LEMBRETE_AVALIADOR" | "AVALIACAO_FEITA" | "MENSAGEM_CHAT" | "LEMBRETE_ATIVIDADE" | "CONVITE_SUS" | "CONTA_EXCLUIDA"sim
inAppbooleansim
pushbooleansim

Preferencias ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de Preferenciasim

PreferenciasAtualizar ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de Preferenciasim1–7 itens

PresencaDto ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
atividadeIdstring (uuid)sim
matriculaIdstring (uuid)sim
estado"SOLICITADA" | "CONFIRMADA" | "REJEITADA"sim
solicitadaEmstringsim
capturadaEmstring ou nulosim
relatostring ou nulosim
justificativastring ou nulosim
excecoeslista de "FORA_DA_JANELA" | "FORA_DA_CERCA" | "OUTRO_DIA"sim
avaliadaEmstring ou nulosim
comentarioAvaliadorstring ou nulosim
notaslista de NotasimSó a quem avalia a turma. O aluno vê as próprias notas pelo painel, depois que a turma as libera.
nivelSupervisaoNivelSupervisao ou nulonãoNível de supervisão dado pelo último avaliador; nulo = não informado. Só a quem avalia (o aluno o lê na avaliação, depois da liberação).
relatoEditadoEmstring ou nulonãoÚltima edição do relato pelo aluno; nulo = nunca editado. Depois de avaliadaEm = editado depois da avaliação.
relatoVersoesintegernãoQuantas versões anteriores do relato existem (quem avalia as lê em .../relato/versoes).

PresencaLinha ​

Linha da lista de quem avalia: a matrícula com o pedido dela (se houver). A localização só aparece aqui.

CampoTipoObrigatórioRestriçõesDescrição
matriculaIdstring (uuid)sim
usuarioIdstring (uuid)sim
nomestringsim
presencaPresencaDto ou nulosim
latnumber ou nulosim
lngnumber ou nulosim
precisaoMnumber ou nulosim
avaliadorobject ou nulonãoQuem avaliou por último: só na visão de quem avalia a turma, nunca na do aluno.
avaliador.idstring (uuid)sim
avaliador.nomestringsim
dentroDaArea"dentro" | "fora" | "sem_localizacao"nãoOnde o pedido ficou em relação à cerca da atividade, só a faixa (nunca metros): a mesma regra que exige justificativa. Ausente = a cerca não vale nesta atividade (desligada ou sem centro/raio) ou não há pedido.

PresencaLinhas ​

CampoTipoObrigatórioRestriçõesDescrição
atividadeobjectsim
atividade.idstring (uuid)sim
atividade.turmaIdstring (uuid)sim
atividade.dataDatasim
atividade.descricaostring ou nulosim
itemslista de PresencaLinhasim

PresencaSolicitar ​

CampoTipoObrigatórioRestriçõesDescrição
relatostringnãoa 2000 caracteresAté 2000 caracteres.
justificativastringnãoa 2000 caracteresObrigatória quando o pedido cai em exceção.
clienteIdstring (uuid)nãoGerado no aparelho: reenviar a fila offline não duplica.
capturadaEmstring (date-time)nãoInstante em que o aparelho capturou o pedido (fila offline).
latnumbernão-90…90
lngnumbernão-180…180
precisaoMintegernão0…1000000

PrimeiroAcessoConfirmarInput ​

CampoTipoObrigatórioRestriçõesDescrição
emailEmailsim
codigostringsim^\d{6}$
senhaSenhasim

PrimeiroAcessoSolicitarInput ​

CampoTipoObrigatórioRestriçõesDescrição
emailEmailsim

PrivacidadeDto ​

O que a pessoa vê sobre o tratamento dos seus dados na instituição. controlador e encarregado nulos = a instituição ainda não informou. contato é sempre preenchido (o da instituição ou o padrão); contatoPadrao diz qual dos dois é.

CampoTipoObrigatórioRestriçõesDescrição
controladorstring ou nulosim
encarregadostring ou nulosim
contatostringsim
contatoPadraobooleansim

PushWebConfig ​

Configuração pública do Firebase para o navegador (não é segredo); ausente = push no navegador desligado.

CampoTipoObrigatórioRestriçõesDescrição
apiKeystringsim
appIdstringsim
projectIdstringsim
messagingSenderIdstringsim
vapidKeystringnãoChave pública VAPID, se o projeto usa uma própria; sem ela o SDK usa a padrão do Firebase.

QrResolver ​

CampoTipoObrigatórioRestriçõesDescrição
tokenstringsim20–2000 caracteres

QrResolvido ​

CampoTipoObrigatórioRestriçõesDescrição
turmaIdstring (uuid)sim
atividadeobjectsim
atividade.idstring (uuid)sim
atividade.dataDatasim
atividade.descricaostring ou nulosim
linhaPresencaLinhasim

QrToken ​

CampoTipoObrigatórioRestriçõesDescrição
tokenstringsim
expiraEmstringsim

RedefinirSenhaInput ​

CampoTipoObrigatórioRestriçõesDescrição
tokenstringsim20–200 caracteres
senhaSenhasim

RefreshInput ​

CampoTipoObrigatórioRestriçõesDescrição
refreshTokenstringsim20–200 caracteres

RelatoEditar ​

O aluno reescreve o relato depois do pedido, mesmo já avaliado. A versão anterior fica guardada e a edição vai para a auditoria (sem o texto). Não reabre a avaliação: estado, notas e comentário ficam como estão. Texto vazio apaga o relato (a versão anterior continua guardada).

CampoTipoObrigatórioRestriçõesDescrição
relatostringsima 2000 caracteres

RelatoVersoes ​

Versões anteriores do relato, da mais nova para a mais antiga. Só para quem avalia a turma.

CampoTipoObrigatórioRestriçõesDescrição
itemslista de objectsim
items[].idstring (uuid)sim
items[].textostringsim
items[].substituidoEmstringsim

Rubrica ​

object

Senha ​

Senha em texto, só trafega aqui. O mínimo de caracteres é definido pela política da instituição.

string — 1–128 caracteres

Sessao ​

CampoTipoObrigatórioRestriçõesDescrição
accessTokenstringsim
refreshTokenstringsim
expiresInintegersimValidade do token de acesso, em segundos.
usuarioMesim

SessaoAtivaDto ​

Uma conexão (sessão com renovação ativa). Nunca expõe o token nem o IP.

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
agentestring ou nulosimUser-Agent informado no login, truncado; pode ser nulo.
criadaEmstringsim
expiraEmstringsim
atualbooleansimÉ a sessão de quem pediu a lista (só se o token de renovação foi informado).

SessoesAtivas ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de SessaoAtivaDtosim

SusEnviada ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
pontuacaonumbersim

SusRespostaInput ​

CampoTipoObrigatórioRestriçõesDescrição
respostaslista de integersim10–10 itensOs 10 itens da versão positiva, na ordem, escala 1–5.
observacoesstringnãoa 2000 caracteres

SusResumo ​

CampoTipoObrigatórioRestriçõesDescrição
totalintegersim
medianumber ou nulosimMédia da pontuação SUS; nula sem respostas.
porItemlista de numbersimMédia de cada item (1–5), na ordem; vazia sem respostas.

TermoDto ​

Versão vigente. versao nulo = a instituição ainda não publicou termo.

CampoTipoObrigatórioRestriçõesDescrição
versaointeger ou nulosim
textosTermoTextossim
publicadoEmstring (date-time) ou nulosim

TermoPublicar ​

Publica uma versão nova do termo da instituição. Ao menos um idioma precisa ter texto.

CampoTipoObrigatórioRestriçõesDescrição
textosTermoTextossim

TermosDosMeus ​

Termo e política vigentes de cada instituição onde a pessoa tem vínculo ou matrícula ativa (tela “Termo de uso”).

CampoTipoObrigatórioRestriçõesDescrição
itemslista de objectsim
items[].instituicaoobjectsim
items[].instituicao.idstring (uuid)sim
items[].instituicao.siglastringsim
items[].instituicao.nomestringsim
items[].termoTermoDtosim
items[].politicaTermoDtosim
items[].urlPublicastringsim
items[].privacidadePrivacidadeDtosim

TermoTextos ​

Um texto por idioma; idioma ausente cai no pt-BR (padrão).

CampoTipoObrigatórioRestriçõesDescrição
pt-BRstringnãoa 60000 caracteres
esstringnãoa 60000 caracteres
en-USstringnãoa 60000 caracteres

TrocarSenhaInput ​

CampoTipoObrigatórioRestriçõesDescrição
senhaAtualSenhasim
novaSenhaSenhasim

TurmaAtualizar ​

CampoTipoObrigatórioRestriçõesDescrição
nomestringnão1–200 caracteres
enderecostring ou nulonãoa 500 caracteres
localAtividadestring ou nulonãoa 500 caracteres
latnumber ou nulonão-90…90
lngnumber ou nulonão-180…180
toleranciaAntesMininteger ou nulonão0…720
toleranciaDepoisMininteger ou nulonão0…720
notasVisiveisEmData ou nulonão
ativobooleannão

TurmaCriar ​

CampoTipoObrigatórioRestriçõesDescrição
nomestringsim1–200 caracteres
enderecostring ou nulonãoa 500 caracteres
localAtividadestring ou nulonãoa 500 caracteres
latnumber ou nulonão-90…90
lngnumber ou nulonão-180…180
toleranciaAntesMininteger ou nulonão0…720
toleranciaDepoisMininteger ou nulonão0…720
notasVisiveisEmData ou nulonão

TurmaDto ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
disciplinaIdstring (uuid)sim
instituicaoIdstring (uuid)sim
nomestringsim
ativobooleansim
enderecostring ou nulosim
localAtividadestring ou nulosim
latnumber ou nulosim
lngnumber ou nulosim
toleranciaAntesMininteger ou nulosim
toleranciaDepoisMininteger ou nulosim
notasVisiveisEmData ou nulosim
dataInicioData ou nulosim
dataFimData ou nulosim

TurmaPeriodo ​

Período da turma (o fim abre o prazo do feedback final). Tem rota própria e regra própria de permissão, separada do cadastro comum da turma. Os dois campos sempre vêm; nulo = não definido.

CampoTipoObrigatórioRestriçõesDescrição
dataInicioData ou nulosim
dataFimData ou nulosim

TurmaProntidao ​

O que falta para a turma receber presença (checklist de quem cadastra). Só contagens: nenhum nome nem e-mail, para não expor quem tem conta nem os vínculos da instituição a quem não os administra.

CampoTipoObrigatórioRestriçõesDescrição
centrobooleansim
toleranciaPropriabooleansimTolerância própria da turma; false = vale o padrão.
atividadesFuturasintegersim0…Atividades não canceladas de hoje em diante (no fuso da instituição).
alunosintegersim0…
alunosComAcessointegersim0…Alunos que já aceitaram o convite (conta ativa) e conseguem registrar presença.
avaliadoresintegersim0…Pessoas com conta ativa que podem confirmar presença nesta turma, em qualquer nível (turma, disciplina, instituição).
avaliadoresConvidadosintegersim0…Pessoas que poderão avaliar, mas ainda não aceitaram o convite.

UsuarioAtualizar ​

CampoTipoObrigatórioRestriçõesDescrição
nomestringnão1–200 caracteres
nationalitystring ou nulonão2–2 caracteres; ^[A-Za-z]{2}$
locale"pt-BR" | "es" | "en-US" ou nulonão
status"ATIVO" | "SUSPENSO"não

UsuarioContagens ​

Contagens por situação na instituição, respeitando busca, tipo e papel da consulta, mas sem o filtro de status.

CampoTipoObrigatórioRestriçõesDescrição
todosintegersim0…
ativosintegersim0…
convidadosintegersim0…
suspensosintegersim0…

UsuarioDto ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
emailstringsim
nomestringsim
status"CONVIDADO" | "ATIVO" | "SUSPENSO"sim
nationalitystring ou nulosim
locale"pt-BR" | "es" | "en-US" ou nulosim
compartilhadobooleansimTem vínculo ou matrícula em outra instituição: só a plataforma altera nome e status.
jaExistiabooleannãoSó na resposta de criar: o e-mail já tinha conta e a pessoa foi vinculada a ela.

UsuarioLista ​

CampoTipoObrigatórioRestriçõesDescrição
itemslista de UsuarioDtosim
totalintegersim0…
contagensUsuarioContagensnão

VinculoAtualizar ​

CampoTipoObrigatórioRestriçõesDescrição
podeAvaliarbooleannão
podeCadastrarbooleannão
ativobooleannão

VinculoCriar ​

CampoTipoObrigatórioRestriçõesDescrição
usuarioIdstring (uuid)sim
papel"CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR"sim
disciplinaIdstring (uuid) ou nulonão
turmaIdstring (uuid) ou nulonão
podeAvaliarbooleannãopadrão: false
podeCadastrarbooleannãopadrão: false

VinculoDto ​

CampoTipoObrigatórioRestriçõesDescrição
papel"ADMIN_PLATAFORMA" | "CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR"sim
instituicaoIdstring (uuid) ou nulosim
disciplinaIdstring (uuid) ou nulosim
turmaIdstring (uuid) ou nulosim
podeAvaliarbooleansim
podeCadastrarbooleansim

VinculoItem ​

CampoTipoObrigatórioRestriçõesDescrição
idstring (uuid)sim
usuarioIdstring (uuid)sim
nomestringsim
emailstringsim
papel"ADMIN_PLATAFORMA" | "CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR"sim
instituicaoIdstring (uuid) ou nulosim
disciplinaIdstring (uuid) ou nulosim
turmaIdstring (uuid) ou nulosim
podeAvaliarbooleansim
podeCadastrarbooleansim
ativobooleansim

contato@presente.app.br