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
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
token | string | sim | 20–200 caracteres | |
senha | Senha | sim | ||
nationality | string | não | 2–2 caracteres; ^[A-Za-z]{2}$ | |
locale | "pt-BR" | "es" | "en-US" | não | ||
aceites | lista de object | não | 0–4 itens; padrão: [] | Termos aceitos (versão do documento vigente). |
aceites[].documento | "TERMO_USO" | "POLITICA_PRIVACIDADE" | sim | ||
aceites[].versao | string | sim | 1–20 caracteres |
AtividadeAtualizar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
data | Data | não | ||
atividadeProfissionalId | string (uuid) ou nulo | não | ||
horaInicio | Hora ou nulo | não | ||
horaFim | Hora ou nulo | não | ||
descricao | string ou nulo | não | a 2000 caracteres | |
observacoes | string ou nulo | não | a 5000 caracteres | |
local | string ou nulo | não | a 500 caracteres | |
obrigatoria | boolean | não | ||
cancelada | boolean | não | ||
cercaAtiva | boolean | não | ||
cercaRaioM | integer ou nulo | não | 10…5000 | |
lat | number ou nulo | não | -90…90 | |
lng | number ou nulo | não | -180…180 |
AtividadeCriar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
data | Data | sim | ||
atividadeProfissionalId | string (uuid) ou nulo | não | ||
horaInicio | Hora ou nulo | não | ||
horaFim | Hora ou nulo | não | ||
descricao | string ou nulo | não | a 2000 caracteres | |
observacoes | string ou nulo | não | a 5000 caracteres | |
local | string ou nulo | não | a 500 caracteres | |
obrigatoria | boolean | não | ||
cancelada | boolean | não | ||
cercaAtiva | boolean | não | ||
cercaRaioM | integer ou nulo | não | 10…5000 | |
lat | number ou nulo | não | -90…90 | |
lng | number ou nulo | não | -180…180 |
AtividadeDto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
turmaId | string (uuid) | sim | ||
data | Data | sim | ||
horaInicio | Hora ou nulo | sim | ||
horaFim | Hora ou nulo | sim | ||
atividadeProfissionalId | string (uuid) ou nulo | sim | ||
atividadeProfissionalNome | string ou nulo | sim | Nome do item do catálogo (para listas e telas que não carregam o catálogo). | |
descricao | string ou nulo | sim | ||
observacoes | string ou nulo | sim | ||
local | string ou nulo | sim | ||
obrigatoria | boolean | sim | ||
cancelada | boolean | sim | ||
cercaAtiva | boolean | sim | ||
cercaRaioM | integer ou nulo | sim | ||
lat | number ou nulo | sim | ||
lng | number ou nulo | sim | ||
comPresencas | boolean | sim | Já existem presenças: data e hora ficam travadas. |
AtividadeProfissionalAtualizar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
nome | string | não | 1–200 caracteres | |
descricao | string ou nulo | não | a 2000 caracteres | |
ativo | boolean | não |
AtividadeProfissionalCriar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
nome | string | sim | 1–200 caracteres | |
descricao | string ou nulo | não | a 2000 caracteres |
AtividadeProfissionalDto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
disciplinaId | string (uuid) | sim | ||
nome | string | sim | ||
descricao | string ou nulo | sim | ||
ativo | boolean | sim | ||
atividades | integer | sim | Quantas 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).
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
destinoId | string (uuid) | sim |
AtividadesProfissionais
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de AtividadeProfissionalDto | sim |
AuditoriaEstatisticas
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
de | Data | sim | ||
ate | Data | sim | ||
total | integer | sim | 0… | |
porAcao | lista de object | sim | ||
porAcao[].acao | string | sim | ||
porAcao[].total | integer | sim | 0… | |
porDia | lista de object | sim | ||
porDia[].dia | Data | sim | ||
porDia[].total | integer | sim | 0… |
AuditoriaItem
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
criadoEm | string | sim | ||
acao | string | sim | ||
entidade | string | sim | ||
entidadeId | string ou nulo | sim | ||
instituicaoId | string ou nulo | sim | ||
instituicaoSigla | string ou nulo | sim | ||
ator | object ou nulo | sim | Quem 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.id | string (uuid) | sim | ||
ator.nome | string | sim | ||
dados | object | sim | Detalhes do evento, já filtrados: campos que poderiam conter texto livre são omitidos. | |
omitidos | integer | sim | 0… | Quantos campos dos detalhes foram omitidos por poderem conter texto livre. |
AuditoriaPagina
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de AuditoriaItem | sim | ||
proximo | string ou nulo | sim |
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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
turma | object | sim | ||
turma.id | string (uuid) | sim | ||
turma.nome | string | sim | ||
janela | JanelaFeedback | sim | ||
podeEscrever | boolean | sim | ||
criterios | lista de CriterioDto | sim | ||
minha | AutoavaliacaoDto ou nulo | sim |
AutoavaliacaoDto
Autoavaliação final do aluno; vem aqui porque a tela da equipe a mostra junto do feedback final.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
matriculaId | string (uuid) | sim | ||
comentario | string | sim | ||
notas | lista de object | sim | ||
notas[].criterioId | string (uuid) | sim | ||
notas[].valor | integer ou nulo | sim | ||
criadoEm | string | sim | ||
atualizadoEm | string | sim |
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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
notas | lista de object | sim | 0–200 itens | |
notas[].criterioId | string (uuid) | sim | ||
notas[].valor | integer ou nulo | sim | ||
comentario | string | sim | 1–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”).
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
matriculaId | string (uuid) | sim | ||
turma | object | sim | ||
turma.id | string (uuid) | sim | ||
turma.nome | string | sim | ||
aluno | object | sim | ||
aluno.id | string (uuid) | sim | ||
aluno.nome | string | sim | ||
liberada | boolean | sim | ||
notasVisiveisEm | Data ou nulo | sim | ||
criterios | lista de object | sim | ||
criterios[].id | string (uuid) | sim | ||
criterios[].nome | string | sim | ||
criterios[].notaMin | integer | sim | ||
criterios[].notaMax | integer | sim | ||
criterios[].ativo | boolean | sim | ||
presencas | lista de object | sim | ||
presencas[].presencaId | string (uuid) | sim | ||
presencas[].atividade | object | sim | ||
presencas[].atividade.id | string (uuid) | sim | ||
presencas[].atividade.data | Data | sim | ||
presencas[].atividade.descricao | string ou nulo | sim | ||
presencas[].notas | lista de object | sim | ||
presencas[].notas[].criterioId | string (uuid) | sim | ||
presencas[].notas[].valor | integer ou nulo | sim | ||
presencas[].notas[].rotulo | string ou nulo | sim | ||
presencas[].nivelSupervisao | NivelSupervisao ou nulo | não | ||
avaliacaoFinal | object ou nulo | sim | ||
avaliacaoFinal.texto | string | sim | ||
avaliacaoFinal.em | string ou nulo | sim | ||
avaliacaoFinal.por | object ou nulo | não | ||
avaliacaoFinal.por.id | string (uuid) | sim | ||
avaliacaoFinal.por.nome | string | sim |
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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
estado | "CONFIRMADA" | "REJEITADA" | sim | ||
comentario | string ou nulo | não | a 2000 caracteres | |
notas | lista de Nota | não | 0–20 itens | |
nivelSupervisao | NivelSupervisao ou nulo | não | Ausente = mantém o que havia; nulo = limpa; só vale ao confirmar. |
Cockpit
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
aluno | CockpitAluno ou nulo | sim | ||
avaliador | CockpitAvaliador ou nulo | sim | ||
gestao | CockpitGestao ou nulo | sim |
CockpitAluno
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
instituicoes | lista de object | não | Instituiçõ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[].id | string (uuid) | sim | ||
instituicoes[].sigla | string | sim | ||
instituicoes[].nome | string | sim | ||
proximas | lista de object | sim | Próximas atividades (de hoje em diante, no fuso da instituição), com a situação do pedido de presença. | |
proximas[].id | string (uuid) | sim | ||
proximas[].data | Data | sim | ||
proximas[].horaInicio | Hora ou nulo | sim | ||
proximas[].horaFim | Hora ou nulo | sim | ||
proximas[].descricao | string ou nulo | sim | ||
proximas[].turma | object | sim | ||
proximas[].turma.id | string (uuid) | sim | ||
proximas[].turma.nome | string | sim | ||
proximas[].disciplina | object | sim | ||
proximas[].disciplina.id | string (uuid) | sim | ||
proximas[].disciplina.sigla | string | sim | ||
proximas[].disciplina.nome | string | sim | ||
proximas[].estado | "NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA" | sim | ||
proximas[].obrigatoria | boolean | não | ||
proximas[].janela | object | não | ||
proximas[].janela.abre | string ou nulo | sim | ||
proximas[].janela.fecha | string ou nulo | sim | ||
proximas[].janela.fase | "antes" | "aberta" | "encerrada" | sim | ||
proximas[].janela.fuso | string | não | ||
semPedido | integer | sim | Atividades dos últimos 30 dias que já passaram e ainda não têm pedido de presença. | |
rejeitadas | integer | sim | Pedidos rejeitados nos últimos 60 dias: a pessoa pode refazê-los. | |
frequencia | object | sim | confirmadas e realizadas contam todas as atividades (o “X de N” do início); percentual considera só as obrigatórias. | |
frequencia.confirmadas | integer | sim | ||
frequencia.realizadas | integer | sim | ||
frequencia.percentual | number ou nulo | sim | ||
turmas | lista de object | sim | Notas por turma. Só trazem valores depois que a turma libera; antes, liberada é falso e criterios vem vazio. | |
turmas[].turma | object | sim | ||
turmas[].turma.id | string (uuid) | sim | ||
turmas[].turma.nome | string | sim | ||
turmas[].disciplina | object | sim | ||
turmas[].disciplina.id | string (uuid) | sim | ||
turmas[].disciplina.sigla | string | sim | ||
turmas[].disciplina.nome | string | sim | ||
turmas[].liberada | boolean | sim | ||
turmas[].feedbackFinalLiberado | boolean | sim | ||
turmas[].autoavaliacaoAberta | boolean | sim | ||
turmas[].autoavaliacaoEnviada | boolean | sim | ||
turmas[].criterios | lista de object | sim | ||
turmas[].criterios[].criterioId | string (uuid) | sim | ||
turmas[].criterios[].nome | string | sim | ||
turmas[].criterios[].notaMin | integer | sim | ||
turmas[].criterios[].notaMax | integer | sim | ||
turmas[].criterios[].media | number | sim | ||
turmas[].criterios[].quantidade | integer | sim |
CockpitAvaliador
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
pendentes | integer | sim | ||
comExcecao | integer | sim | Pendentes fora da janela ou da cerca (fila de exceções). | |
atividadesHoje | integer | sim | Atividades de hoje nas turmas que a pessoa avalia. | |
turmas | lista de object | sim | Turmas com pedido esperando, da mais cheia para a mais vazia (até 10). | |
turmas[].turma | object | sim | ||
turmas[].turma.id | string (uuid) | sim | ||
turmas[].turma.nome | string | sim | ||
turmas[].disciplina | object | sim | ||
turmas[].disciplina.id | string (uuid) | sim | ||
turmas[].disciplina.sigla | string | sim | ||
turmas[].disciplina.nome | string | sim | ||
turmas[].pendentes | integer | sim | ||
turmas[].comExcecao | integer | sim | Pendentes fora da janela ou da cerca (fila de exceções). | |
feedbackFinal | object | sim | Feedback 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.pendentes | integer | sim | ||
feedbackFinal.turmas | lista de object | sim | Turmas com pedido esperando, da mais cheia para a mais vazia (até 10). | |
feedbackFinal.turmas[].turma | object | sim | ||
feedbackFinal.turmas[].disciplina | object | sim | ||
feedbackFinal.turmas[].ate | Data | sim | ||
feedbackFinal.turmas[].pendentes | integer | sim |
CockpitGestao
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
instituicoes | integer | sim | ||
disciplinas | integer | sim | ||
turmas | integer | sim | ||
alunos | integer | sim | ||
semCriterios | lista de object | sim | Disciplinas ativas sem nenhum critério ativo: ninguém consegue dar nota nelas (até 5; o total está em semCriteriosTotal). | |
semCriterios[].id | string (uuid) | sim | ||
semCriterios[].sigla | string | sim | ||
semCriterios[].nome | string | sim | ||
semCriteriosTotal | integer | sim | ||
pendencias | lista de object | sim | Turmas 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[].total | integer | sim | ||
pendencias[].turmas | lista de object | sim | ||
pendencias[].turmas[].turma | object | sim | ||
pendencias[].turmas[].disciplina | object | sim | ||
listaTurmas | object | não | Situaçã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.total | integer | sim | ||
listaTurmas.itens | lista de object | sim | ||
listaTurmas.itens[].id | string (uuid) | sim | ||
listaTurmas.itens[].nome | string | sim | ||
listaTurmas.itens[].disciplina | object | sim | ||
listaTurmas.itens[].atividadesHoje | integer | sim | ||
listaTurmas.itens[].pendencias | lista de "SEM_CENTRO" | "SEM_ATIVIDADE" | "SEM_ALUNOS" | "CONVITE_PENDENTE" | sim | Turmas 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[].semCriterio | boolean | sim |
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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
ids | lista de string (uuid) | sim | 1–100 itens |
ConfirmarLoteResultado
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de PresencaDto | sim |
ContadorNotificacoes
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
naoLidas | integer | sim | 0… |
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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
nome | string | não | a 120 caracteres | |
email | sim | |||
telefone | string | não | a 30 caracteres | |
mensagem | string | sim | 20–2000 caracteres | |
site | string | não | a 200 caracteres |
ConversaPagina
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
turma | object | sim | ||
turma.id | string (uuid) | sim | ||
turma.nome | string | sim | ||
turma.disciplinaNome | string | sim | ||
turma.ativa | boolean | sim | ||
itens | lista de MensagemDto | sim | Da mais antiga para a mais nova. | |
anteriores | string ou nulo | sim | Cursor para buscar as anteriores; nulo = chegou ao começo. | |
podeEscrever | boolean | sim | ||
podeModerar | boolean | sim | ||
alteradas | lista de MensagemDto | sim | Mensagens editadas ou removidas desde alteradasDesde (para consulta periódica): o cliente troca as que já tem. | |
agora | string | sim | Reló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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
nomes | object | não | ||
nomes.pt-BR | string | não | 1–120 caracteres | |
nomes.es | string | não | 1–120 caracteres | |
nomes.en-US | string | não | 1–120 caracteres | |
descricoes | CriterioDescricoes | não | ||
rubricas | CriterioRubricas | não | ||
ordem | integer | não | 0…999 | |
ativo | boolean | não |
CriterioCriar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
chave | string | sim | ^[a-z][a-z0-9_]{1,39}$ | |
notaMin | integer | sim | 0…99 | |
notaMax | integer | sim | 1…100 | |
permiteNa | boolean | não | padrão: false | |
ordem | integer | não | 0…999 | |
nomes | CriterioNomes | sim | ||
descricoes | CriterioDescricoes | não | ||
rubricas | CriterioRubricas | não |
CriterioDescricoes
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
pt-BR | string | não | a 300 caracteres | |
es | string | não | a 300 caracteres | |
en-US | string | não | a 300 caracteres |
CriterioDto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
disciplinaId | string (uuid) | sim | ||
chave | string | sim | ||
notaMin | integer | sim | ||
notaMax | integer | sim | ||
permiteNa | boolean | sim | ||
ordem | integer | sim | ||
ativo | boolean | sim | ||
nome | string | sim | Nome no idioma de quem pediu (cai no português e depois em qualquer idioma). | |
nomes | object | sim | Todos os nomes cadastrados, por idioma (para editar). | |
descricao | string | sim | Descrição de como avaliar no idioma de quem pediu (cai no português; vazia se não houver). | |
descricoes | object | sim | Todas as descrições cadastradas, por idioma (para editar). | |
rubrica | Rubrica | sim | Rubrica no idioma de quem pediu (cai no português; vazia se não houver). | |
rubricas | object | sim | Todas 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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
pt-BR | string | sim | 1–120 caracteres | |
es | string | não | 1–120 caracteres | |
en-US | string | não | 1–120 caracteres |
CriterioRubricas
Rubrica por idioma na criação e edição. null apaga a rubrica daquele idioma.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
pt-BR | Rubrica ou nulo | não | ||
es | Rubrica ou nulo | não | ||
en-US | Rubrica ou nulo | não |
Criterios
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de CriterioDto | sim |
Data
Data civil AAAA-MM-DD, existente no calendário.
string — ^\d{4}-\d{2}-\d{2}$
DisciplinaAtualizar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
sigla | string | não | ^[A-Za-z0-9][A-Za-z0-9._-]{0,14}$ | |
nome | string | não | 1–200 caracteres | |
ementa | string ou nulo | não | a 10000 caracteres | |
semanas | integer ou nulo | não | 1…520 | |
ativo | boolean | não |
DisciplinaCriar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
sigla | string | sim | ^[A-Za-z0-9][A-Za-z0-9._-]{0,14}$ | |
nome | string | sim | 1–200 caracteres | |
ementa | string ou nulo | não | a 10000 caracteres | |
semanas | integer ou nulo | não | 1…520 |
DisciplinaDto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
instituicaoId | string (uuid) | sim | ||
sigla | string | sim | ||
nome | string | sim | ||
ementa | string ou nulo | sim | ||
semanas | integer ou nulo | sim | ||
ativo | boolean | sim |
DispositivoRegistrar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
token | string | sim | 8–4096 caracteres; ^[\x21-\x7E]+$ | |
plataforma | "IOS" | "ANDROID" | "WEB" | sim |
DispositivoRemover
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
token | string | sim | 8–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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
encerradas | integer | sim | 0… |
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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
email | sim | |||
nome | string | sim | 1–200 caracteres | |
nationality | string ou nulo | não | 2–2 caracteres; ^[A-Za-z]{2}$ | |
locale | "pt-BR" | "es" | "en-US" ou nulo | não | ||
papel | "CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR" | sim | ||
disciplinaId | string (uuid) ou nulo | não | ||
turmaId | string (uuid) ou nulo | não | ||
podeAvaliar | boolean | não | padrão: false | |
podeCadastrar | boolean | não | padrão: false |
ErroApi
| Campo | Tipo | Obrigatório | Restrições | Descriçã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 | ||
fields | object | não | ||
excecoes | lista de string | não | ||
falhas | lista de object | não | ||
falhas[].id | string | sim | ||
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 | ||
retryAfterSeg | integer | não | 0… | |
requestId | string | não |
EsqueciSenhaInput
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
email | sim |
EstatisticaAluno
Presença de um aluno numa turma, contando só atividades não canceladas que já aconteceram (até hoje).
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
alunoId | string (uuid) | sim | ||
nome | string | sim | ||
proprio | boolean | sim | É a própria pessoa que pediu. | |
confirmadas | integer | sim | ||
pendentes | integer | sim | ||
rejeitadas | integer | sim | ||
naoSolicitadas | integer | sim | ||
obrigatorias | object | sim | Confirmadas e realizadas só entre as atividades obrigatórias: a base do percentual. | |
obrigatorias.confirmadas | integer | sim | ||
obrigatorias.total | integer | sim | ||
percentual | number ou nulo | sim | Obrigató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. | |
medias | lista de MediaCriterio | não | Mé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
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
turmas | lista de EstatisticaTurma | sim |
EstatisticaTurma
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
turma | object | sim | ||
turma.id | string (uuid) | sim | ||
turma.nome | string | sim | ||
turma.ativo | boolean | sim | ||
disciplina | object | sim | ||
disciplina.id | string (uuid) | sim | ||
disciplina.sigla | string | sim | ||
disciplina.nome | string | sim | ||
instituicao | object | sim | ||
instituicao.id | string (uuid) | sim | ||
instituicao.sigla | string | sim | ||
instituicao.nome | string | sim | ||
atividades | integer | sim | Atividades não canceladas que já aconteceram na janela. | |
alunos | lista de EstatisticaAluno | sim | Quem avalia a turma vê todos os alunos; quem só é aluno vê só a si. | |
criterios | lista de object | não | Critérios que aparecem nas médias (ativos ou com nota), na ordem da disciplina e no idioma da pessoa. | |
criterios[].id | string (uuid) | sim | ||
criterios[].nome | string | sim | ||
criterios[].notaMin | integer | sim | ||
criterios[].notaMax | integer | sim | ||
notasLiberadas | boolean | não | A turma já liberou as notas ao aluno. | |
mediasTurma | lista de MediaCriterio | não | Média da turma por critério: só para quem avalia a turma; nunca ao aluno. | |
podeAvaliar | boolean | não | Quem pediu avalia a turma (pode exportar). |
EvolucaoAluno
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
aluno | object | sim | ||
aluno.id | string (uuid) | sim | ||
aluno.nome | string | sim | ||
disciplinas | lista de EvolucaoDisciplina | sim | ||
turmasNaoLiberadas | integer | sim | 0… | Só na visão do próprio aluno: turmas dele cujas notas ainda não foram liberadas (não entram nas séries). |
EvolucaoAlunoItem
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
matriculaId | string (uuid) | sim | ||
nome | string | sim | ||
turma | object | sim | ||
turma.id | string (uuid) | sim | ||
turma.nome | string | sim | ||
disciplina | object | sim | ||
disciplina.id | string (uuid) | sim | ||
disciplina.nome | string | sim |
EvolucaoAlunos
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de EvolucaoAlunoItem | sim |
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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
disciplina | object | sim | ||
disciplina.id | string (uuid) | sim | ||
disciplina.nome | string | sim | ||
instituicao | object | não | Instituição da disciplina: com conta única em várias instituições, a tela filtra por ela. Pode faltar em servidores mais antigos. | |
instituicao.id | string (uuid) | sim | ||
instituicao.sigla | string | sim | ||
instituicao.nome | string | sim | ||
turmas | lista de object | sim | ||
turmas[].id | string (uuid) | sim | ||
turmas[].matriculaId | string (uuid) | sim | ||
turmas[].nome | string | sim | ||
turmas[].dataInicio | Data ou nulo | sim | ||
turmas[].dataFim | Data ou nulo | sim | ||
presencasAvaliadas | integer | sim | 0… | |
avaliadores | integer | sim | 0… | |
criterios | lista de object | sim | ||
criterios[].id | string (uuid) | sim | ||
criterios[].nome | string | sim | ||
criterios[].notaMin | integer | sim | ||
criterios[].notaMax | integer | sim | ||
criterios[].pontos | lista de object | sim | ||
criterios[].pontos[].atividadeId | string (uuid) | sim | ||
criterios[].pontos[].turmaId | string (uuid) | sim | ||
criterios[].pontos[].data | Data | sim | ||
criterios[].pontos[].valor | integer | sim | ||
atividadesProfissionais | lista de object | sim | ||
atividadesProfissionais[].id | string (uuid) | sim | ||
atividadesProfissionais[].nome | string | sim | ||
atividadesProfissionais[].pontos | lista de object | sim | ||
atividadesProfissionais[].pontos[].atividadeId | string (uuid) | sim | ||
atividadesProfissionais[].pontos[].turmaId | string (uuid) | sim | ||
atividadesProfissionais[].pontos[].data | Data | sim | ||
atividadesProfissionais[].pontos[].nivel | NivelSupervisao | sim |
ExcluirContaConfirmarInput
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
token | string | sim | 20–200 caracteres |
ExcluirContaInput
Exclusão da própria conta pelo aplicativo: confirma com a senha.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
senha | Senha | sim |
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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
email | sim |
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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
turma | object | sim | ||
turma.id | string (uuid) | sim | ||
turma.nome | string | sim | ||
liberado | boolean | sim | ||
liberaEm | Data ou nulo | sim | ||
criterios | lista de CriterioDto | sim | ||
feedbacks | lista de FeedbackFinalDto | sim |
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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
matriculaId | string (uuid) | sim | ||
autor | object ou nulo | sim | Nulo quando o autor excluiu a conta. | |
autor.id | string (uuid) | sim | ||
autor.nome | string | sim | ||
comentario | string | sim | ||
comentarioInterno | string ou nulo | não | ||
notas | lista de object | sim | ||
notas[].criterioId | string (uuid) | sim | ||
notas[].valor | integer ou nulo | sim | ||
criadoEm | string | sim | ||
atualizadoEm | string | sim |
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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
notas | lista de object | sim | 0–200 itens | |
notas[].criterioId | string (uuid) | sim | ||
notas[].valor | integer ou nulo | sim | ||
comentario | string | sim | 1–4000 caracteres | |
comentarioInterno | string ou nulo | não | a 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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
matriculaId | string (uuid) | sim | ||
turma | object | sim | ||
turma.id | string (uuid) | sim | ||
turma.nome | string | sim | ||
turma.dataInicio | Data ou nulo | sim | ||
turma.dataFim | Data ou nulo | sim | ||
aluno | object | sim | ||
aluno.id | string (uuid) | sim | ||
aluno.nome | string | sim | ||
janela | JanelaFeedback | sim | ||
criterios | lista de CriterioDto | sim | ||
meu | FeedbackFinalDto ou nulo | sim | ||
podeEscrever | boolean | sim | ||
verTudo | boolean | sim | ||
equipe | lista de FeedbackFinalDto | sim | ||
autoavaliacao | AutoavaliacaoDto ou nulo | não | Autoavaliaçã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).
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
turma | object | sim | ||
turma.id | string (uuid) | sim | ||
turma.nome | string | sim | ||
turma.dataInicio | Data ou nulo | sim | ||
turma.dataFim | Data ou nulo | sim | ||
janela | JanelaFeedback | sim | ||
podeEscrever | boolean | sim | ||
verTudo | boolean | sim | ||
itens | lista de object | sim | ||
itens[].matriculaId | string (uuid) | sim | ||
itens[].aluno | object | sim | ||
itens[].aluno.id | string (uuid) | sim | ||
itens[].aluno.nome | string | sim | ||
itens[].meuEm | string ou nulo | sim | ||
itens[].total | integer ou nulo | sim |
FilaAvaliacao
Ordenada por data da atividade e hora do pedido; total conta todos os pendentes, não só a página.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de FilaAvaliacaoItem | sim | ||
total | integer | sim | 0… |
FilaAvaliacaoItem
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
atividade | object | sim | ||
atividade.id | string (uuid) | sim | ||
atividade.descricao | string ou nulo | sim | ||
atividade.data | Data | sim | ||
atividade.horaInicio | Hora ou nulo | sim | ||
atividade.horaFim | Hora ou nulo | sim | ||
atividade.obrigatoria | boolean | sim | ||
atividade.turma | object | sim | ||
atividade.turma.id | string (uuid) | sim | ||
atividade.turma.nome | string | sim | ||
atividade.disciplina | object | sim | ||
atividade.disciplina.id | string (uuid) | sim | ||
atividade.disciplina.sigla | string | sim | ||
atividade.disciplina.nome | string | sim | ||
linha | PresencaLinha | sim | ||
elegivelLote | boolean | sim | Entra 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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
turma | object | sim | ||
turma.id | string (uuid) | sim | ||
turma.nome | string | sim | ||
hoje | Data | sim | Data de hoje no fuso da instituição (para destacar a coluna “hoje”). | |
de | Data | sim | ||
ate | Data | sim | ||
atividades | lista de object | sim | Atividades na janela, por data e hora de início. | |
atividades[].id | string (uuid) | sim | ||
atividades[].data | Data | sim | ||
atividades[].horaInicio | string ou nulo | sim | ||
atividades[].horaFim | string ou nulo | sim | ||
atividades[].descricao | string ou nulo | sim | ||
atividades[].obrigatoria | boolean | sim | ||
atividades[].cancelada | boolean | sim | ||
alunos | lista de object | sim | Alunos com matrícula ativa, em ordem alfabética. | |
alunos[].id | string (uuid) | sim | ||
alunos[].matriculaId | string (uuid) | sim | ||
alunos[].nome | string | sim | ||
alunos[].celulas | lista de object | sim | ||
alunos[].celulas[].atividadeId | string (uuid) | sim | ||
alunos[].celulas[].estado | "NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA" | sim | ||
alunos[].obrigatorias | object | sim | ||
alunos[].obrigatorias.confirmadas | integer | sim | ||
alunos[].obrigatorias.total | integer | sim | ||
alunos[].opcionais | object | sim | ||
alunos[].opcionais.confirmadas | integer | sim | ||
alunos[].opcionais.total | integer | sim | ||
alunos[].percentual | number ou nulo | sim | ||
truncado | object | sim | A lista foi cortada no limite máximo de alunos e atividades; a grade e os totais valem só para o que veio. | |
truncado.atividades | boolean | sim | Atividades na janela, por data e hora de início. | |
truncado.alunos | boolean | sim | Alunos com matrícula ativa, em ordem alfabética. |
Fuso
string — 1–64 caracteres
Health
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
status | "ok" | "degraded" | sim | ||
db | "up" | "down" | sim | ||
version | string | sim | ||
locale | string | sim |
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
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
csv | string | sim | 1–90000 caracteres | |
modo | "simular" | "aplicar" | sim | simular só valida e mostra o que aconteceria; aplicar grava tudo ou nada (a menos que parcial). | |
parcial | boolean | não | Modo 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. | |
hashConteudo | string | nã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
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
tipo | "pessoas" | "alunos" | "atividades" | sim | ||
modo | "simular" | "aplicar" | sim | ||
aplicado | boolean | sim | No 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 nulo | sim | Erro do arquivo como um todo (vazio, grande demais, coluna obrigatória ausente). | |
colunaAusente | string ou nulo | sim | ||
resumo | object | sim | ||
linhas | lista de LinhaRelatorio | sim | ||
convites | integer ou nulo | sim | 0… | Convites que vão sair (contas novas). null = não informado (o simular não revela se o e-mail já tem conta). |
parcial | boolean | não | Só no modo parcial. true = o pedido foi parcial. | |
hashConteudo | string | não | Só no simular parcial: SHA-256 do conteúdo normalizado (tipo, destino e linhas lidas), que o aplicar parcial devolve. | |
contagens | object | não | Só 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.importadas | integer | sim | 0… | |
contagens.ignoradas | integer | sim | 0… | Só no aplicar parcial: as linhas que ficaram de fora (linha, campo e motivo). Existe apenas nesta resposta: não é gravado. |
ignoradas | lista de LinhaRelatorio | não | Só no aplicar parcial: as linhas que ficaram de fora (linha, campo e motivo). Existe apenas nesta resposta: não é gravado. |
InstituicaoAtualizar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
nome | string | não | 1–200 caracteres | |
locale | "pt-BR" | "es" | "en-US" ou nulo | não | ||
timezone | Fuso | não | ||
retencaoMeses | integer ou nulo | não | 1…600 | |
controladorNome | string ou nulo | não | 1–200 caracteres | Privacidade (LGPD): null apaga o valor e volta ao padrão da plataforma. |
encarregadoNome | string ou nulo | não | 1–200 caracteres | |
contatoPrivacidade | Email ou nulo | não | ||
ativo | boolean | não |
InstituicaoCriar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
sigla | string | sim | ^[A-Za-z0-9][A-Za-z0-9._-]{1,19}$ | |
nome | string | sim | 1–200 caracteres | |
locale | "pt-BR" | "es" | "en-US" ou nulo | não | ||
timezone | Fuso | não | ||
retencaoMeses | integer ou nulo | não | 1…600 | |
curador | object | não | Primeiro curador da instituição: recebe o convite por e-mail. | |
curador.email | sim | |||
curador.nome | string | sim | 1–200 caracteres |
InstituicaoDto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
sigla | string | sim | ||
nome | string | sim | ||
ativo | boolean | sim | ||
locale | "pt-BR" | "es" | "en-US" ou nulo | sim | ||
timezone | string | sim | ||
retencaoMeses | integer ou nulo | sim | ||
controladorNome | string ou nulo | não | Dados de privacidade da instituição; a API sempre os envia (nulos quando não informados). | |
encarregadoNome | string ou nulo | não | ||
contatoPrivacidade | string ou nulo | não |
JanelaFeedback
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
estado | "sem_data" | "nao_abriu" | "aberta" | "encerrada" | sim | ||
prazoDias | integer | sim | ||
abreEm | Data ou nulo | sim | Primeiro dia em que se pode escrever (o dia do fim da turma); nulo sem data de fim. | |
ate | Data ou nulo | sim | Último dia em que se pode escrever ou ajustar; nulo sem data de fim. |
LinhaRelatorio
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
linha | integer | sim | ||
situacao | "VALIDA" | "CRIADA" | "VINCULADA" | "INCLUIDA" | "REATIVADA" | "JA_EXISTE" | "ERRO" | sim | ||
rotulo | string | sim | O que identifica a linha para quem importou (o e-mail, ou a data e a descrição que vieram no próprio arquivo). | |
campo | string | não | ||
codigo | "required" | "invalid" | "too_long" | "out_of_range" | "duplicate" | "not_found" | não |
LoginInput
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
email | sim | |||
senha | Senha | sim |
LogoutInput
Entrada do logout: o aparelho pode mandar o token de push dele para ser apagado junto.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
refreshToken | string | sim | 20–200 caracteres | |
dispositivoToken | string | não | 8–4096 caracteres; ^[\x21-\x7E]+$ |
MarcarLidas
Opção 1
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
ids | lista de string (uuid) | sim | 1–100 itens |
Opção 2
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
todas | true | sim |
MatriculaAtualizar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
ativo | boolean | sim |
MatriculaCriar
Aluno já cadastrado (usuarioId) ou novo (email e nome; recebe o convite).
Opção 1
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
usuarioId | string (uuid) | sim |
Opção 2
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
email | sim | |||
nome | string | sim | 1–200 caracteres | |
nationality | string | não | 2–2 caracteres; ^[A-Za-z]{2}$ |
MatriculaDto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
turmaId | string (uuid) | sim | ||
usuarioId | string (uuid) | sim | ||
ativo | boolean | sim | ||
nome | string | sim | ||
email | string | sim | ||
status | "CONVIDADO" | "ATIVO" | "SUSPENSO" | sim | ||
jaExistia | boolean | não | Só na resposta de criar por e-mail: o e-mail já tinha conta e a pessoa foi vinculada a ela. |
Me
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
email | string | sim | ||
nome | string | sim | ||
locale | "pt-BR" | "es" | "en-US" | sim | ||
nationality | string ou nulo | sim | ||
vinculos | lista de VinculoDto | sim |
MediaCriterio
Média de um critério com 1 casa decimal e quantas notas entraram nela (a mesma conta do início do aluno).
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
criterioId | string (uuid) | sim | ||
media | number | sim | ||
quantidade | integer | sim |
MensagemDto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
turmaId | string (uuid) | sim | ||
autor | object ou nulo | sim | Nulo quando o autor excluiu a conta. | |
autor.id | string (uuid) | sim | ||
autor.nome | string | sim | ||
texto | string ou nulo | sim | Nulo quando a mensagem foi removida (o texto é apagado na remoção). | |
criadaEm | string | sim | ||
editadaEm | string ou nulo | sim | ||
removida | boolean | sim | ||
removidaPorModeracao | boolean | sim | Removida por quem modera (e não pelo autor). | |
cursor | string | sim | Cursor desta mensagem (use em depois ou antes). |
MensagemTexto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
texto | string | sim | 1–2000 caracteres |
MinhaAtividadeDto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
matriculaId | string (uuid) | sim | ||
data | Data | sim | ||
horaInicio | Hora ou nulo | sim | ||
horaFim | Hora ou nulo | sim | ||
descricao | string ou nulo | sim | ||
local | string ou nulo | sim | ||
obrigatoria | boolean | sim | ||
cancelada | boolean | sim | ||
turma | object | sim | ||
turma.id | string (uuid) | sim | ||
turma.nome | string | sim | ||
disciplina | object | sim | ||
disciplina.id | string (uuid) | sim | ||
disciplina.sigla | string | sim | ||
disciplina.nome | string | sim | ||
instituicao | object | sim | ||
instituicao.id | string (uuid) | sim | ||
instituicao.sigla | string | sim | ||
instituicao.nome | string | sim | ||
estado | "NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA" | sim | ||
presencaId | string (uuid) ou nulo | sim | ||
solicitadaEm | string ou nulo | sim | Quando o pedido foi feito, se houve. | |
avaliadaEm | string ou nulo | sim | Quando foi confirmada ou rejeitada (nulo enquanto não avaliada). Quem avaliou não vem: o aluno não vê nomes da equipe. | |
comentarioAvaliador | string ou nulo | sim | Comentá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. | |
relato | string ou nulo | não | O relato da própria presença (o aluno pode reescrevê-lo). Só nas linhas da própria pessoa. | |
regrasPedido | object | sim | Para 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.janelaInicio | string | sim | ||
regrasPedido.janelaFim | string | sim | ||
regrasPedido.fuso | string | sim | ||
regrasPedido.exigeLocal | boolean | sim |
MinhaConversa
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
turmaId | string (uuid) | sim | ||
turmaNome | string | sim | ||
disciplinaNome | string | sim | ||
instituicaoSigla | string | sim | ||
ativa | boolean | sim | ||
naoLida | boolean | sim | Há notificação de mensagem não lida nesta turma. |
MinhasAtividades
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de MinhaAtividadeDto | sim |
MinhasConversas
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de MinhaConversa | sim |
NivelSupervisao
integer — 1…5
Nota
Nota de um critério numa presença. valor nulo = “não se aplica”.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
criterioId | string (uuid) | sim | ||
valor | integer ou nulo | sim | 0…100 |
NotificacaoDto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
evento | "PEDIDO_PENDENTE" | "LEMBRETE_AVALIADOR" | "AVALIACAO_FEITA" | "MENSAGEM_CHAT" | "LEMBRETE_ATIVIDADE" | "CONVITE_SUS" | "CONTA_EXCLUIDA" | sim | ||
criadaEm | string | sim | ||
lida | boolean | sim | ||
turmaId | string (uuid) ou nulo | sim | Só 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. | |
turmaNome | string ou nulo | sim | ||
instituicaoNome | string ou nulo | sim | padrão: null | Nome da instituição (só no aviso de conta excluída, que não tem turma). |
atividadeId | string (uuid) ou nulo | sim | ||
atividadeData | string ou nulo | sim | Data da atividade (AAAA-MM-DD), quando houver. | |
quantidade | integer | sim | 1… | Quantos eventos esta notificação junta (ex.: 3 mensagens novas). |
NotificacoesPagina
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de NotificacaoDto | sim | ||
proximo | string ou nulo | sim | ||
naoLidas | integer | sim | 0… |
Painel
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de PainelItem | sim | ||
truncado | boolean | sim | Havia mais linhas do que o limite. | |
opcoes | object | sim | Opções dos filtros: tudo o que a pessoa enxerga, independente dos filtros ativos. | |
opcoes.instituicoes | lista de object | sim | ||
opcoes.instituicoes[].id | string (uuid) | sim | ||
opcoes.instituicoes[].sigla | string | sim | ||
opcoes.instituicoes[].nome | string | sim | ||
opcoes.disciplinas | lista de object | sim | ||
opcoes.disciplinas[].id | string (uuid) | sim | ||
opcoes.disciplinas[].sigla | string | sim | ||
opcoes.disciplinas[].nome | string | sim | ||
opcoes.disciplinas[].instituicaoId | string (uuid) | sim | ||
opcoes.turmas | lista de object | sim | ||
opcoes.turmas[].id | string (uuid) | sim | ||
opcoes.turmas[].nome | string | sim | ||
opcoes.turmas[].disciplinaId | string (uuid) | sim | ||
opcoes.turmas[].ativo | boolean | sim | ||
opcoes.alunos | lista de object | sim | ||
opcoes.alunos[].id | string (uuid) | sim | ||
opcoes.alunos[].nome | string | sim |
PainelItem
Uma linha do painel: uma atividade para um aluno (a própria pessoa ou alguém que ela avalia).
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
matriculaId | string (uuid) | sim | ||
data | Data | sim | ||
horaInicio | Hora ou nulo | sim | ||
horaFim | Hora ou nulo | sim | ||
descricao | string ou nulo | sim | ||
local | string ou nulo | sim | ||
obrigatoria | boolean | sim | ||
cancelada | boolean | sim | ||
turma | object | sim | ||
turma.id | string (uuid) | sim | ||
turma.nome | string | sim | ||
disciplina | object | sim | ||
disciplina.id | string (uuid) | sim | ||
disciplina.sigla | string | sim | ||
disciplina.nome | string | sim | ||
instituicao | object | sim | ||
instituicao.id | string (uuid) | sim | ||
instituicao.sigla | string | sim | ||
instituicao.nome | string | sim | ||
estado | "NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA" | sim | ||
presencaId | string (uuid) ou nulo | sim | ||
solicitadaEm | string ou nulo | sim | ||
avaliadaEm | string ou nulo | sim | ||
comentarioAvaliador | string ou nulo | sim | ||
relato | string ou nulo | não | ||
regrasPedido | object | sim | ||
regrasPedido.janelaInicio | string | sim | ||
regrasPedido.janelaFim | string | sim | ||
regrasPedido.fuso | string | sim | ||
regrasPedido.exigeLocal | boolean | sim | ||
aluno | object | sim | ||
aluno.id | string (uuid) | sim | ||
aluno.nome | string | sim | ||
proprio | boolean | sim | A linha é da própria pessoa (como aluna). | |
podeAvaliar | boolean | sim | Pode 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).
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
nivel | "plataforma" | "instituicao" | sim | ||
valores | object | sim | ||
herdados | object | sim |
ParametrosInstituicaoAtualizar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
turma.tolerancia_antes_min | integer ou nulo | não | 0…720 | |
turma.tolerancia_depois_min | integer ou nulo | não | 0…720 | |
senha.tamanho_minimo | integer ou nulo | não | 8…128 | |
senha.historico | integer ou nulo | não | 0…24 | |
senha.intervalo_min_horas | integer ou nulo | não | 0…168 | |
sessao.expira_dias | integer ou nulo | não | 1…365 | |
auditoria.retencao_meses | integer ou nulo | não | 1…240 | |
lembrete.atividade_antecedencia_min | integer ou nulo | não | 0…1440 | |
lembrete.avaliador_pendencia_horas | integer ou nulo | não | 0…168 | |
notificacao.silencio_inicio_h | integer ou nulo | não | 0…23 | |
notificacao.silencio_fim_h | integer ou nulo | não | 0…23 | |
sus.convite_intervalo_dias | integer ou nulo | não | 0…730 | |
feedback.prazo_dias | integer ou nulo | não | 0…180 | |
chat.retencao_meses | integer ou nulo | não | 1…240 |
ParametrosPlataformaAtualizar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
turma.tolerancia_antes_min | integer ou nulo | não | 0…720 | |
turma.tolerancia_depois_min | integer ou nulo | não | 0…720 | |
senha.tamanho_minimo | integer ou nulo | não | 8…128 | |
senha.historico | integer ou nulo | não | 0…24 | |
senha.intervalo_min_horas | integer ou nulo | não | 0…168 | |
sessao.expira_dias | integer ou nulo | não | 1…365 | |
auditoria.retencao_meses | integer ou nulo | não | 1…240 | |
dados.retencao_meses | integer ou nulo | não | 1…240 | |
lembrete.atividade_antecedencia_min | integer ou nulo | não | 0…1440 | |
lembrete.avaliador_pendencia_horas | integer ou nulo | não | 0…168 | |
notificacao.silencio_inicio_h | integer ou nulo | não | 0…23 | |
notificacao.silencio_fim_h | integer ou nulo | não | 0…23 | |
sus.convite_intervalo_dias | integer ou nulo | não | 0…730 | |
feedback.prazo_dias | integer ou nulo | não | 0…180 | |
chat.retencao_meses | integer ou nulo | não | 1…240 | |
notificacao.retencao_dias | integer ou nulo | não | 1…3650 |
Pendente
Pedido na fila da turma (todas as atividades).
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
atividade | object | sim | ||
atividade.id | string (uuid) | sim | ||
atividade.data | Data | sim | ||
atividade.descricao | string ou nulo | sim | ||
linha | PresencaLinha | sim |
Pendentes
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de Pendente | sim |
PerfilAtualizar
Edição do próprio perfil. Só o que a pessoa pode mudar sozinha: e-mail e papéis não entram.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
nome | string | não | 1–200 caracteres | |
nationality | string ou nulo | não | 2–2 caracteres; ^[A-Za-z]{2}$ | |
locale | "pt-BR" | "es" | "en-US" ou nulo | não | ||
lattesUrl | "" | string | não | Endereço do currículo Lattes (https). | |
conselhoCodigo | string ou nulo | não | a 60 caracteres | Número no conselho de classe. Só a própria pessoa vê. |
anoGraduacao | integer ou nulo | não | 1930…2100 | |
residencia | boolean | não | ||
especializacao | boolean | não | ||
mestrado | boolean | não | ||
doutorado | boolean | não | ||
minibio | string ou nulo | não | a 2000 caracteres |
PerfilDto
Perfil completo da própria pessoa (GET /me/perfil). Nunca devolvido a terceiros.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
nome | string | sim | ||
email | string | sim | ||
nationality | string ou nulo | sim | ||
locale | "pt-BR" | "es" | "en-US" ou nulo | sim | ||
lattesUrl | string ou nulo | sim | ||
conselhoCodigo | string ou nulo | sim | ||
anoGraduacao | integer ou nulo | sim | ||
residencia | boolean | sim | ||
especializacao | boolean | sim | ||
mestrado | boolean | sim | ||
doutorado | boolean | sim | ||
minibio | string ou nulo | sim | ||
temFoto | boolean | sim | Há foto de perfil? A foto em si vem de GET /me/foto. | |
fotoEm | string ou nulo | sim | Muda 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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
versao | integer ou nulo | sim | ||
textos | TermoTextos | sim | ||
publicadoEm | string (date-time) ou nulo | sim | ||
urlPublica | string | sim |
PoliticaPublica
Página pública da política (sem login): é o endereço que as lojas e os e-mails apontam.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
instituicao | object | sim | ||
instituicao.sigla | string | sim | ||
instituicao.nome | string | sim | ||
politica | TermoDto | sim | ||
privacidade | PrivacidadeDto | sim | ||
urlPublica | string | sim |
Preferencia
Preferência por tipo: a pessoa desliga o aviso no app e/ou o push. Ausente = ligado.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
evento | "PEDIDO_PENDENTE" | "LEMBRETE_AVALIADOR" | "AVALIACAO_FEITA" | "MENSAGEM_CHAT" | "LEMBRETE_ATIVIDADE" | "CONVITE_SUS" | "CONTA_EXCLUIDA" | sim | ||
inApp | boolean | sim | ||
push | boolean | sim |
Preferencias
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de Preferencia | sim |
PreferenciasAtualizar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de Preferencia | sim | 1–7 itens |
PresencaDto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
atividadeId | string (uuid) | sim | ||
matriculaId | string (uuid) | sim | ||
estado | "SOLICITADA" | "CONFIRMADA" | "REJEITADA" | sim | ||
solicitadaEm | string | sim | ||
capturadaEm | string ou nulo | sim | ||
relato | string ou nulo | sim | ||
justificativa | string ou nulo | sim | ||
excecoes | lista de "FORA_DA_JANELA" | "FORA_DA_CERCA" | "OUTRO_DIA" | sim | ||
avaliadaEm | string ou nulo | sim | ||
comentarioAvaliador | string ou nulo | sim | ||
notas | lista de Nota | sim | Só a quem avalia a turma. O aluno vê as próprias notas pelo painel, depois que a turma as libera. | |
nivelSupervisao | NivelSupervisao ou nulo | não | Ní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). | |
relatoEditadoEm | string ou nulo | não | Última edição do relato pelo aluno; nulo = nunca editado. Depois de avaliadaEm = editado depois da avaliação. | |
relatoVersoes | integer | não | Quantas 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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
matriculaId | string (uuid) | sim | ||
usuarioId | string (uuid) | sim | ||
nome | string | sim | ||
presenca | PresencaDto ou nulo | sim | ||
lat | number ou nulo | sim | ||
lng | number ou nulo | sim | ||
precisaoM | number ou nulo | sim | ||
avaliador | object ou nulo | não | Quem avaliou por último: só na visão de quem avalia a turma, nunca na do aluno. | |
avaliador.id | string (uuid) | sim | ||
avaliador.nome | string | sim | ||
dentroDaArea | "dentro" | "fora" | "sem_localizacao" | não | Onde 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
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
atividade | object | sim | ||
atividade.id | string (uuid) | sim | ||
atividade.turmaId | string (uuid) | sim | ||
atividade.data | Data | sim | ||
atividade.descricao | string ou nulo | sim | ||
items | lista de PresencaLinha | sim |
PresencaSolicitar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
relato | string | não | a 2000 caracteres | Até 2000 caracteres. |
justificativa | string | não | a 2000 caracteres | Obrigatória quando o pedido cai em exceção. |
clienteId | string (uuid) | não | Gerado no aparelho: reenviar a fila offline não duplica. | |
capturadaEm | string (date-time) | não | Instante em que o aparelho capturou o pedido (fila offline). | |
lat | number | não | -90…90 | |
lng | number | não | -180…180 | |
precisaoM | integer | não | 0…1000000 |
PrimeiroAcessoConfirmarInput
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
email | sim | |||
codigo | string | sim | ^\d{6}$ | |
senha | Senha | sim |
PrimeiroAcessoSolicitarInput
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
email | sim |
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 é.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
controlador | string ou nulo | sim | ||
encarregado | string ou nulo | sim | ||
contato | string | sim | ||
contatoPadrao | boolean | sim |
PushWebConfig
Configuração pública do Firebase para o navegador (não é segredo); ausente = push no navegador desligado.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
apiKey | string | sim | ||
appId | string | sim | ||
projectId | string | sim | ||
messagingSenderId | string | sim | ||
vapidKey | string | não | Chave pública VAPID, se o projeto usa uma própria; sem ela o SDK usa a padrão do Firebase. |
QrResolver
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
token | string | sim | 20–2000 caracteres |
QrResolvido
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
turmaId | string (uuid) | sim | ||
atividade | object | sim | ||
atividade.id | string (uuid) | sim | ||
atividade.data | Data | sim | ||
atividade.descricao | string ou nulo | sim | ||
linha | PresencaLinha | sim |
QrToken
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
token | string | sim | ||
expiraEm | string | sim |
RedefinirSenhaInput
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
token | string | sim | 20–200 caracteres | |
senha | Senha | sim |
RefreshInput
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
refreshToken | string | sim | 20–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).
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
relato | string | sim | a 2000 caracteres |
RelatoVersoes
Versões anteriores do relato, da mais nova para a mais antiga. Só para quem avalia a turma.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de object | sim | ||
items[].id | string (uuid) | sim | ||
items[].texto | string | sim | ||
items[].substituidoEm | string | sim |
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
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
accessToken | string | sim | ||
refreshToken | string | sim | ||
expiresIn | integer | sim | Validade do token de acesso, em segundos. | |
usuario | Me | sim |
SessaoAtivaDto
Uma conexão (sessão com renovação ativa). Nunca expõe o token nem o IP.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
agente | string ou nulo | sim | User-Agent informado no login, truncado; pode ser nulo. | |
criadaEm | string | sim | ||
expiraEm | string | sim | ||
atual | boolean | sim | É a sessão de quem pediu a lista (só se o token de renovação foi informado). |
SessoesAtivas
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de SessaoAtivaDto | sim |
SusEnviada
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
pontuacao | number | sim |
SusRespostaInput
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
respostas | lista de integer | sim | 10–10 itens | Os 10 itens da versão positiva, na ordem, escala 1–5. |
observacoes | string | não | a 2000 caracteres |
SusResumo
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
total | integer | sim | ||
media | number ou nulo | sim | Média da pontuação SUS; nula sem respostas. | |
porItem | lista de number | sim | Mé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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
versao | integer ou nulo | sim | ||
textos | TermoTextos | sim | ||
publicadoEm | string (date-time) ou nulo | sim |
TermoPublicar
Publica uma versão nova do termo da instituição. Ao menos um idioma precisa ter texto.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
textos | TermoTextos | sim |
TermosDosMeus
Termo e política vigentes de cada instituição onde a pessoa tem vínculo ou matrícula ativa (tela “Termo de uso”).
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de object | sim | ||
items[].instituicao | object | sim | ||
items[].instituicao.id | string (uuid) | sim | ||
items[].instituicao.sigla | string | sim | ||
items[].instituicao.nome | string | sim | ||
items[].termo | TermoDto | sim | ||
items[].politica | TermoDto | sim | ||
items[].urlPublica | string | sim | ||
items[].privacidade | PrivacidadeDto | sim |
TermoTextos
Um texto por idioma; idioma ausente cai no pt-BR (padrão).
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
pt-BR | string | não | a 60000 caracteres | |
es | string | não | a 60000 caracteres | |
en-US | string | não | a 60000 caracteres |
TrocarSenhaInput
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
senhaAtual | Senha | sim | ||
novaSenha | Senha | sim |
TurmaAtualizar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
nome | string | não | 1–200 caracteres | |
endereco | string ou nulo | não | a 500 caracteres | |
localAtividade | string ou nulo | não | a 500 caracteres | |
lat | number ou nulo | não | -90…90 | |
lng | number ou nulo | não | -180…180 | |
toleranciaAntesMin | integer ou nulo | não | 0…720 | |
toleranciaDepoisMin | integer ou nulo | não | 0…720 | |
notasVisiveisEm | Data ou nulo | não | ||
ativo | boolean | não |
TurmaCriar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
nome | string | sim | 1–200 caracteres | |
endereco | string ou nulo | não | a 500 caracteres | |
localAtividade | string ou nulo | não | a 500 caracteres | |
lat | number ou nulo | não | -90…90 | |
lng | number ou nulo | não | -180…180 | |
toleranciaAntesMin | integer ou nulo | não | 0…720 | |
toleranciaDepoisMin | integer ou nulo | não | 0…720 | |
notasVisiveisEm | Data ou nulo | não |
TurmaDto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
disciplinaId | string (uuid) | sim | ||
instituicaoId | string (uuid) | sim | ||
nome | string | sim | ||
ativo | boolean | sim | ||
endereco | string ou nulo | sim | ||
localAtividade | string ou nulo | sim | ||
lat | number ou nulo | sim | ||
lng | number ou nulo | sim | ||
toleranciaAntesMin | integer ou nulo | sim | ||
toleranciaDepoisMin | integer ou nulo | sim | ||
notasVisiveisEm | Data ou nulo | sim | ||
dataInicio | Data ou nulo | sim | ||
dataFim | Data ou nulo | sim |
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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
dataInicio | Data ou nulo | sim | ||
dataFim | Data ou nulo | sim |
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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
centro | boolean | sim | ||
toleranciaPropria | boolean | sim | Tolerância própria da turma; false = vale o padrão. | |
atividadesFuturas | integer | sim | 0… | Atividades não canceladas de hoje em diante (no fuso da instituição). |
alunos | integer | sim | 0… | |
alunosComAcesso | integer | sim | 0… | Alunos que já aceitaram o convite (conta ativa) e conseguem registrar presença. |
avaliadores | integer | sim | 0… | Pessoas com conta ativa que podem confirmar presença nesta turma, em qualquer nível (turma, disciplina, instituição). |
avaliadoresConvidados | integer | sim | 0… | Pessoas que poderão avaliar, mas ainda não aceitaram o convite. |
UsuarioAtualizar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
nome | string | não | 1–200 caracteres | |
nationality | string ou nulo | não | 2–2 caracteres; ^[A-Za-z]{2}$ | |
locale | "pt-BR" | "es" | "en-US" ou nulo | nã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.
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
todos | integer | sim | 0… | |
ativos | integer | sim | 0… | |
convidados | integer | sim | 0… | |
suspensos | integer | sim | 0… |
UsuarioDto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
email | string | sim | ||
nome | string | sim | ||
status | "CONVIDADO" | "ATIVO" | "SUSPENSO" | sim | ||
nationality | string ou nulo | sim | ||
locale | "pt-BR" | "es" | "en-US" ou nulo | sim | ||
compartilhado | boolean | sim | Tem vínculo ou matrícula em outra instituição: só a plataforma altera nome e status. | |
jaExistia | boolean | não | Só na resposta de criar: o e-mail já tinha conta e a pessoa foi vinculada a ela. |
UsuarioLista
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
items | lista de UsuarioDto | sim | ||
total | integer | sim | 0… | |
contagens | UsuarioContagens | não |
VinculoAtualizar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
podeAvaliar | boolean | não | ||
podeCadastrar | boolean | não | ||
ativo | boolean | não |
VinculoCriar
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
usuarioId | string (uuid) | sim | ||
papel | "CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR" | sim | ||
disciplinaId | string (uuid) ou nulo | não | ||
turmaId | string (uuid) ou nulo | não | ||
podeAvaliar | boolean | não | padrão: false | |
podeCadastrar | boolean | não | padrão: false |
VinculoDto
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
papel | "ADMIN_PLATAFORMA" | "CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR" | sim | ||
instituicaoId | string (uuid) ou nulo | sim | ||
disciplinaId | string (uuid) ou nulo | sim | ||
turmaId | string (uuid) ou nulo | sim | ||
podeAvaliar | boolean | sim | ||
podeCadastrar | boolean | sim |
VinculoItem
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
id | string (uuid) | sim | ||
usuarioId | string (uuid) | sim | ||
nome | string | sim | ||
email | string | sim | ||
papel | "ADMIN_PLATAFORMA" | "CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR" | sim | ||
instituicaoId | string (uuid) ou nulo | sim | ||
disciplinaId | string (uuid) ou nulo | sim | ||
turmaId | string (uuid) ou nulo | sim | ||
podeAvaliar | boolean | sim | ||
podeCadastrar | boolean | sim | ||
ativo | boolean | sim |