Modelos de datos
Estructuras usadas en los cuerpos y las respuestas. Los campos obligatorios deben estar siempre presentes; "o nulo" indica que el valor puede ser null.
AceitarConviteInput
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
token | string | sí | 20–200 caracteres | |
senha | Senha | sí | ||
nationality | string | no | 2–2 caracteres; ^[A-Za-z]{2}$ | |
locale | "pt-BR" | "es" | "en-US" | no | ||
aceites | lista de object | no | 0–4 elementos; por defecto: [] | Términos aceptados (versión del documento vigente). |
aceites[].documento | "TERMO_USO" | "POLITICA_PRIVACIDADE" | sí | ||
aceites[].versao | string | sí | 1–20 caracteres |
AtividadeAtualizar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
data | Data | no | ||
atividadeProfissionalId | string (uuid) o nulo | no | ||
horaInicio | Hora o nulo | no | ||
horaFim | Hora o nulo | no | ||
descricao | string o nulo | no | a 2000 caracteres | |
observacoes | string o nulo | no | a 5000 caracteres | |
local | string o nulo | no | a 500 caracteres | |
obrigatoria | boolean | no | ||
cancelada | boolean | no | ||
cercaAtiva | boolean | no | ||
cercaRaioM | integer o nulo | no | 10…5000 | |
lat | number o nulo | no | -90…90 | |
lng | number o nulo | no | -180…180 |
AtividadeCriar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
data | Data | sí | ||
atividadeProfissionalId | string (uuid) o nulo | no | ||
horaInicio | Hora o nulo | no | ||
horaFim | Hora o nulo | no | ||
descricao | string o nulo | no | a 2000 caracteres | |
observacoes | string o nulo | no | a 5000 caracteres | |
local | string o nulo | no | a 500 caracteres | |
obrigatoria | boolean | no | ||
cancelada | boolean | no | ||
cercaAtiva | boolean | no | ||
cercaRaioM | integer o nulo | no | 10…5000 | |
lat | number o nulo | no | -90…90 | |
lng | number o nulo | no | -180…180 |
AtividadeDto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
turmaId | string (uuid) | sí | ||
data | Data | sí | ||
horaInicio | Hora o nulo | sí | ||
horaFim | Hora o nulo | sí | ||
atividadeProfissionalId | string (uuid) o nulo | sí | ||
atividadeProfissionalNome | string o nulo | sí | Nombre del elemento del catálogo (para listas y pantallas que no cargan el catálogo). | |
descricao | string o nulo | sí | ||
observacoes | string o nulo | sí | ||
local | string o nulo | sí | ||
obrigatoria | boolean | sí | ||
cancelada | boolean | sí | ||
cercaAtiva | boolean | sí | ||
cercaRaioM | integer o nulo | sí | ||
lat | number o nulo | sí | ||
lng | number o nulo | sí | ||
comPresencas | boolean | sí | Ya existen asistencias: la fecha y la hora quedan bloqueadas. |
AtividadeProfissionalAtualizar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
nome | string | no | 1–200 caracteres | |
descricao | string o nulo | no | a 2000 caracteres | |
ativo | boolean | no |
AtividadeProfissionalCriar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
nome | string | sí | 1–200 caracteres | |
descricao | string o nulo | no | a 2000 caracteres |
AtividadeProfissionalDto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
disciplinaId | string (uuid) | sí | ||
nome | string | sí | ||
descricao | string o nulo | sí | ||
ativo | boolean | sí | ||
atividades | integer | sí | Cuántas actividades (ocurrencias) apuntan al elemento. |
AtividadeProfissionalMesclar
Fusión: las actividades del elemento de origen pasan al de destino y el origen se desactiva (nada se borra).
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
destinoId | string (uuid) | sí |
AtividadesProfissionais
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de AtividadeProfissionalDto | sí |
AuditoriaEstatisticas
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
de | Data | sí | ||
ate | Data | sí | ||
total | integer | sí | 0… | |
porAcao | lista de object | sí | ||
porAcao[].acao | string | sí | ||
porAcao[].total | integer | sí | 0… | |
porDia | lista de object | sí | ||
porDia[].dia | Data | sí | ||
porDia[].total | integer | sí | 0… |
AuditoriaItem
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
criadoEm | string | sí | ||
acao | string | sí | ||
entidade | string | sí | ||
entidadeId | string o nulo | sí | ||
instituicaoId | string o nulo | sí | ||
instituicaoSigla | string o nulo | sí | ||
ator | object o nulo | sí | Quién lo hizo: solo el id y el nombre visible. Nulo = el propio sistema o una cuenta ya eliminada (las cuentas anonimizadas aparecen como «Persona eliminada»). | |
ator.id | string (uuid) | sí | ||
ator.nome | string | sí | ||
dados | object | sí | Detalles del evento, ya filtrados: se omiten los campos que podrían contener texto libre. | |
omitidos | integer | sí | 0… | Cuántos campos de los detalles se omitieron por poder contener texto libre. |
AuditoriaPagina
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de AuditoriaItem | sí | ||
proximo | string o nulo | sí |
AutoavaliacaoDoAluno
Vista del alumno: la ventana es la del feedback final; podeEscrever = ventana abierta y matrícula activa. minha es la única autoevaluación que el alumno ve (la suya), incluso después del plazo.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
turma | object | sí | ||
turma.id | string (uuid) | sí | ||
turma.nome | string | sí | ||
janela | JanelaFeedback | sí | ||
podeEscrever | boolean | sí | ||
criterios | lista de CriterioDto | sí | ||
minha | AutoavaliacaoDto o nulo | sí |
AutoavaliacaoDto
Autoevaluación final del alumno; viene aquí porque la pantalla del equipo la muestra junto al feedback final.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
matriculaId | string (uuid) | sí | ||
comentario | string | sí | ||
notas | lista de object | sí | ||
notas[].criterioId | string (uuid) | sí | ||
notas[].valor | integer o nulo | sí | ||
criadoEm | string | sí | ||
atualizadoEm | string | sí |
AutoavaliacaoEscrever
Autoevaluación final del alumno: nota propia en cada criterio activo de la asignatura (o null = «no aplica», solo donde el criterio lo permite) y un comentario obligatorio. Solo el propio alumno la graba, durante la ventana del feedback final.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
notas | lista de object | sí | 0–200 elementos | |
notas[].criterioId | string (uuid) | sí | ||
notas[].valor | integer o nulo | sí | ||
comentario | string | sí | 1–4000 caracteres |
AvaliacaoMatricula
Notas y evaluación final de una matrícula. Al alumno, antes de notasVisiveisEm, liberada es falso y presencas y avaliacaoFinal vienen vacíos. Quien evalúa el grupo ve todo, siempre. rotulo: la etiqueta de la rúbrica del criterio para ese valor, en el idioma pedido (nulo sin rúbrica o «no aplica»).
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
matriculaId | string (uuid) | sí | ||
turma | object | sí | ||
turma.id | string (uuid) | sí | ||
turma.nome | string | sí | ||
aluno | object | sí | ||
aluno.id | string (uuid) | sí | ||
aluno.nome | string | sí | ||
liberada | boolean | sí | ||
notasVisiveisEm | Data o nulo | sí | ||
criterios | lista de object | sí | ||
criterios[].id | string (uuid) | sí | ||
criterios[].nome | string | sí | ||
criterios[].notaMin | integer | sí | ||
criterios[].notaMax | integer | sí | ||
criterios[].ativo | boolean | sí | ||
presencas | lista de object | sí | ||
presencas[].presencaId | string (uuid) | sí | ||
presencas[].atividade | object | sí | ||
presencas[].atividade.id | string (uuid) | sí | ||
presencas[].atividade.data | Data | sí | ||
presencas[].atividade.descricao | string o nulo | sí | ||
presencas[].notas | lista de object | sí | ||
presencas[].notas[].criterioId | string (uuid) | sí | ||
presencas[].notas[].valor | integer o nulo | sí | ||
presencas[].notas[].rotulo | string o nulo | sí | ||
presencas[].nivelSupervisao | NivelSupervisao o nulo | no | ||
avaliacaoFinal | object o nulo | sí | ||
avaliacaoFinal.texto | string | sí | ||
avaliacaoFinal.em | string o nulo | sí | ||
avaliacaoFinal.por | object o nulo | no | ||
avaliacaoFinal.por.id | string (uuid) | sí | ||
avaliacaoFinal.por.nome | string | sí |
AvaliarPresenca
notas solo vale al confirmar: rechazar no tiene nota. Ausente = mantiene las notas que había; presente (aunque vacío) = reemplaza el conjunto entero.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
estado | "CONFIRMADA" | "REJEITADA" | sí | ||
comentario | string o nulo | no | a 2000 caracteres | |
notas | lista de Nota | no | 0–20 elementos | |
nivelSupervisao | NivelSupervisao o nulo | no | Ausente = mantiene lo que había; nulo = limpia; solo vale al confirmar. |
Cockpit
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
aluno | CockpitAluno o nulo | sí | ||
avaliador | CockpitAvaliador o nulo | sí | ||
gestao | CockpitGestao o nulo | sí |
CockpitAluno
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
instituicoes | lista de object | no | Instituciones donde la persona tiene matrícula (activa o en el historial): siempre todas, incluso con el filtro instituicaoId. Puede faltar en servidores más antiguos. | |
instituicoes[].id | string (uuid) | sí | ||
instituicoes[].sigla | string | sí | ||
instituicoes[].nome | string | sí | ||
proximas | lista de object | sí | Próximas actividades (de hoy en adelante, en la zona horaria de la institución), con la situación del pedido de asistencia. | |
proximas[].id | string (uuid) | sí | ||
proximas[].data | Data | sí | ||
proximas[].horaInicio | Hora o nulo | sí | ||
proximas[].horaFim | Hora o nulo | sí | ||
proximas[].descricao | string o nulo | sí | ||
proximas[].turma | object | sí | ||
proximas[].turma.id | string (uuid) | sí | ||
proximas[].turma.nome | string | sí | ||
proximas[].disciplina | object | sí | ||
proximas[].disciplina.id | string (uuid) | sí | ||
proximas[].disciplina.sigla | string | sí | ||
proximas[].disciplina.nome | string | sí | ||
proximas[].estado | "NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA" | sí | ||
proximas[].obrigatoria | boolean | no | ||
proximas[].janela | object | no | ||
proximas[].janela.abre | string o nulo | sí | ||
proximas[].janela.fecha | string o nulo | sí | ||
proximas[].janela.fase | "antes" | "aberta" | "encerrada" | sí | ||
proximas[].janela.fuso | string | no | ||
semPedido | integer | sí | Actividades de los últimos 30 días que ya pasaron y aún no tienen pedido de asistencia. | |
rejeitadas | integer | sí | Pedidos rechazados en los últimos 60 días: la persona puede rehacerlos. | |
frequencia | object | sí | confirmadas y realizadas cuentan todas las actividades (el «X de N» del inicio); percentual considera solo las obligatorias. | |
frequencia.confirmadas | integer | sí | ||
frequencia.realizadas | integer | sí | ||
frequencia.percentual | number o nulo | sí | ||
turmas | lista de object | sí | Notas por grupo. Solo traen valores después de que el grupo las libera; antes, liberada es falso y criterios viene vacío. | |
turmas[].turma | object | sí | ||
turmas[].turma.id | string (uuid) | sí | ||
turmas[].turma.nome | string | sí | ||
turmas[].disciplina | object | sí | ||
turmas[].disciplina.id | string (uuid) | sí | ||
turmas[].disciplina.sigla | string | sí | ||
turmas[].disciplina.nome | string | sí | ||
turmas[].liberada | boolean | sí | ||
turmas[].feedbackFinalLiberado | boolean | sí | ||
turmas[].autoavaliacaoAberta | boolean | sí | ||
turmas[].autoavaliacaoEnviada | boolean | sí | ||
turmas[].criterios | lista de object | sí | ||
turmas[].criterios[].criterioId | string (uuid) | sí | ||
turmas[].criterios[].nome | string | sí | ||
turmas[].criterios[].notaMin | integer | sí | ||
turmas[].criterios[].notaMax | integer | sí | ||
turmas[].criterios[].media | number | sí | ||
turmas[].criterios[].quantidade | integer | sí |
CockpitAvaliador
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
pendentes | integer | sí | ||
comExcecao | integer | sí | Pendientes fuera de la ventana o de la cerca (cola de excepciones). | |
atividadesHoje | integer | sí | Actividades de hoy en los grupos que la persona evalúa. | |
turmas | lista de object | sí | Grupos con pedidos esperando, del más lleno al más vacío (hasta 10). | |
turmas[].turma | object | sí | ||
turmas[].turma.id | string (uuid) | sí | ||
turmas[].turma.nome | string | sí | ||
turmas[].disciplina | object | sí | ||
turmas[].disciplina.id | string (uuid) | sí | ||
turmas[].disciplina.sigla | string | sí | ||
turmas[].disciplina.nome | string | sí | ||
turmas[].pendentes | integer | sí | ||
turmas[].comExcecao | integer | sí | Pendientes fuera de la ventana o de la cerca (cola de excepciones). | |
feedbackFinal | object | sí | Feedback final por escribir: en los grupos que la persona evalúa y cuyo plazo está abierto, alumnos (menos ella misma) sin feedback suyo. Los más urgentes (plazo más cercano) primero, hasta 10 grupos. | |
feedbackFinal.pendentes | integer | sí | ||
feedbackFinal.turmas | lista de object | sí | Grupos con pedidos esperando, del más lleno al más vacío (hasta 10). | |
feedbackFinal.turmas[].turma | object | sí | ||
feedbackFinal.turmas[].disciplina | object | sí | ||
feedbackFinal.turmas[].ate | Data | sí | ||
feedbackFinal.turmas[].pendentes | integer | sí |
CockpitGestao
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
instituicoes | integer | sí | ||
disciplinas | integer | sí | ||
turmas | integer | sí | ||
alunos | integer | sí | ||
semCriterios | lista de object | sí | Asignaturas activas sin ningún criterio activo: nadie puede poner nota en ellas (hasta 5; el total está en semCriteriosTotal). | |
semCriterios[].id | string (uuid) | sí | ||
semCriterios[].sigla | string | sí | ||
semCriterios[].nome | string | sí | ||
semCriteriosTotal | integer | sí | ||
pendencias | lista de object | sí | Grupos activos aún no listos para recibir asistencia, por motivo: sin centro (la cerca no tiene referencia), sin actividad de hoy en adelante, sin alumno, o con alumno que aún no aceptó la invitación. Hasta 5 grupos por motivo; el total viene en total. Solo grupos y conteos, ningún nombre de persona. | |
pendencias[].tipo | "SEM_CENTRO" | "SEM_ATIVIDADE" | "SEM_ALUNOS" | "CONVITE_PENDENTE" | sí | ||
pendencias[].total | integer | sí | ||
pendencias[].turmas | lista de object | sí | ||
pendencias[].turmas[].turma | object | sí | ||
pendencias[].turmas[].disciplina | object | sí | ||
listaTurmas | object | no | Situación de cada grupo activo del ámbito (los mismos contados en turmas), por sigla de la asignatura y nombre del grupo, hasta 50 (el total viene en total): cuántas actividades hoy y qué pendientes tiene, con las mismas reglas de pendencias. semCriterio: la asignatura no tiene criterio activo (bloquea la evaluación). Solo ids, siglas y conteos. Puede faltar en servidores más antiguos. | |
listaTurmas.total | integer | sí | ||
listaTurmas.itens | lista de object | sí | ||
listaTurmas.itens[].id | string (uuid) | sí | ||
listaTurmas.itens[].nome | string | sí | ||
listaTurmas.itens[].disciplina | object | sí | ||
listaTurmas.itens[].atividadesHoje | integer | sí | ||
listaTurmas.itens[].pendencias | lista de "SEM_CENTRO" | "SEM_ATIVIDADE" | "SEM_ALUNOS" | "CONVITE_PENDENTE" | sí | Grupos activos aún no listos para recibir asistencia, por motivo: sin centro (la cerca no tiene referencia), sin actividad de hoy en adelante, sin alumno, o con alumno que aún no aceptó la invitación. Hasta 5 grupos por motivo; el total viene en total. Solo grupos y conteos, ningún nombre de persona. | |
listaTurmas.itens[].semCriterio | boolean | sí |
ConfirmarLote
Confirmación en lote: solo pedidos pendientes, sin excepción, sin notas ni comentario (esos quedan en la evaluación individual). Todo o nada: si un elemento no pasa, ninguno se graba.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
ids | lista de string (uuid) | sí | 1–100 elementos |
ConfirmarLoteResultado
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de PresencaDto | sí |
ContadorNotificacoes
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
naoLidas | integer | sí | 0… |
ContatoSite
Formulario de contacto del sitio (sin inicio de sesión). site es un campo señuelo: invisible para quien usa el formulario; un robot que lo rellena todo también lo rellena, y la API descarta el envío sin avisar.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
nome | string | no | a 120 caracteres | |
email | sí | |||
telefone | string | no | a 30 caracteres | |
mensagem | string | sí | 20–2000 caracteres | |
site | string | no | a 200 caracteres |
ConversaPagina
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
turma | object | sí | ||
turma.id | string (uuid) | sí | ||
turma.nome | string | sí | ||
turma.disciplinaNome | string | sí | ||
turma.ativa | boolean | sí | ||
itens | lista de MensagemDto | sí | Del más antiguo al más nuevo. | |
anteriores | string o nulo | sí | Cursor para buscar las anteriores; nulo = se llegó al principio. | |
podeEscrever | boolean | sí | ||
podeModerar | boolean | sí | ||
alteradas | lista de MensagemDto | sí | Mensajes editados o eliminados desde alteradasDesde (para consulta periódica): el cliente reemplaza las que ya tiene. | |
agora | string | sí | Reloj del servidor en el momento de la lectura (úselo en el próximo alteradasDesde). |
CriterioAtualizar
Solo lo que puede cambiar después: nombres, descripciones, orden y activo. Enviar clave o escala es un error (400), no se ignora en silencio.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
nomes | object | no | ||
nomes.pt-BR | string | no | 1–120 caracteres | |
nomes.es | string | no | 1–120 caracteres | |
nomes.en-US | string | no | 1–120 caracteres | |
descricoes | CriterioDescricoes | no | ||
rubricas | CriterioRubricas | no | ||
ordem | integer | no | 0…999 | |
ativo | boolean | no |
CriterioCriar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
chave | string | sí | ^[a-z][a-z0-9_]{1,39}$ | |
notaMin | integer | sí | 0…99 | |
notaMax | integer | sí | 1…100 | |
permiteNa | boolean | no | por defecto: false | |
ordem | integer | no | 0…999 | |
nomes | CriterioNomes | sí | ||
descricoes | CriterioDescricoes | no | ||
rubricas | CriterioRubricas | no |
CriterioDescricoes
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
pt-BR | string | no | a 300 caracteres | |
es | string | no | a 300 caracteres | |
en-US | string | no | a 300 caracteres |
CriterioDto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
disciplinaId | string (uuid) | sí | ||
chave | string | sí | ||
notaMin | integer | sí | ||
notaMax | integer | sí | ||
permiteNa | boolean | sí | ||
ordem | integer | sí | ||
ativo | boolean | sí | ||
nome | string | sí | Nombre en el idioma de quien pidió (cae en portugués y luego en cualquier idioma). | |
nomes | object | sí | Todos los nombres registrados, por idioma (para editar). | |
descricao | string | sí | Descripción de cómo evaluar en el idioma de quien pidió (cae en portugués; vacía si no hay). | |
descricoes | object | sí | Todas las descripciones registradas, por idioma (para editar). | |
rubrica | Rubrica | sí | Rúbrica en el idioma de quien pidió (cae en portugués; vacía si no hay). | |
rubricas | object | sí | Todas las rúbricas registradas, por idioma (para editar). |
CriterioNomes
Nombre del criterio por idioma. El portugués es obligatorio al crear; los demás caen en portugués si faltan.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
pt-BR | string | sí | 1–120 caracteres | |
es | string | no | 1–120 caracteres | |
en-US | string | no | 1–120 caracteres |
CriterioRubricas
Rúbrica por idioma al crear y editar. null borra la rúbrica de ese idioma.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
pt-BR | Rubrica o nulo | no | ||
es | Rubrica o nulo | no | ||
en-US | Rubrica o nulo | no |
Criterios
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de CriterioDto | sí |
Data
Fecha civil AAAA-MM-DD, existente en el calendario.
string — ^\d{4}-\d{2}-\d{2}$
DisciplinaAtualizar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
sigla | string | no | ^[A-Za-z0-9][A-Za-z0-9._-]{0,14}$ | |
nome | string | no | 1–200 caracteres | |
ementa | string o nulo | no | a 10000 caracteres | |
semanas | integer o nulo | no | 1…520 | |
ativo | boolean | no |
DisciplinaCriar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
sigla | string | sí | ^[A-Za-z0-9][A-Za-z0-9._-]{0,14}$ | |
nome | string | sí | 1–200 caracteres | |
ementa | string o nulo | no | a 10000 caracteres | |
semanas | integer o nulo | no | 1…520 |
DisciplinaDto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
instituicaoId | string (uuid) | sí | ||
sigla | string | sí | ||
nome | string | sí | ||
ementa | string o nulo | sí | ||
semanas | integer o nulo | sí | ||
ativo | boolean | sí |
DispositivoRegistrar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
token | string | sí | 8–4096 caracteres; ^[\x21-\x7E]+$ | |
plataforma | "IOS" | "ANDROID" | "WEB" | sí |
DispositivoRemover
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
token | string | sí | 8–4096 caracteres; ^[\x21-\x7E]+$ |
Email
Correo de inicio de sesión: sin espacios en los extremos y en minúsculas.
string — a 254 caracteres; ^[^\s@]+@[^\s@]+\.[^\s@]+$
EncerrarOutrasResultado
Respuesta de «cerrar todas las demás»: cuántas conexiones se cerraron.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
encerradas | integer | sí | 0… |
EquipeCriar
Nueva persona del equipo: crea (o reutiliza por el correo) el usuario y le da el vínculo. La invitación sale por correo.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
email | sí | |||
nome | string | sí | 1–200 caracteres | |
nationality | string o nulo | no | 2–2 caracteres; ^[A-Za-z]{2}$ | |
locale | "pt-BR" | "es" | "en-US" o nulo | no | ||
papel | "CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR" | sí | ||
disciplinaId | string (uuid) o nulo | no | ||
turmaId | string (uuid) o nulo | no | ||
podeAvaliar | boolean | no | por defecto: false | |
podeCadastrar | boolean | no | por defecto: false |
ErroApi
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
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" | sí | ||
fields | object | no | ||
excecoes | lista de string | no | ||
falhas | lista de object | no | ||
falhas[].id | string | sí | ||
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" | sí | ||
retryAfterSeg | integer | no | 0… | |
requestId | string | no |
EsqueciSenhaInput
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
email | sí |
EstatisticaAluno
Asistencia de un alumno en un grupo, contando solo actividades no canceladas que ya ocurrieron (hasta hoy).
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
alunoId | string (uuid) | sí | ||
nome | string | sí | ||
proprio | boolean | sí | Es la propia persona que pidió. | |
confirmadas | integer | sí | ||
pendentes | integer | sí | ||
rejeitadas | integer | sí | ||
naoSolicitadas | integer | sí | ||
obrigatorias | object | sí | Confirmadas y realizadas solo entre las actividades obligatorias: la base del percentual. | |
obrigatorias.confirmadas | integer | sí | ||
obrigatorias.total | integer | sí | ||
percentual | number o nulo | sí | Obligatorias confirmadas ÷ obligatorias realizadas, de 0 a 100 con 1 decimal; nulo si aún no hubo actividad obligatoria realizada. La actividad opcional no entra. | |
medias | lista de MediaCriterio | no | Promedio por criterio (asistencias confirmadas en la ventana, sin «no aplica»). Ausente en la fila de la propia persona mientras el grupo no libera las notas. El criterio sin nota no aparece. |
Estatisticas
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
turmas | lista de EstatisticaTurma | sí |
EstatisticaTurma
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
turma | object | sí | ||
turma.id | string (uuid) | sí | ||
turma.nome | string | sí | ||
turma.ativo | boolean | sí | ||
disciplina | object | sí | ||
disciplina.id | string (uuid) | sí | ||
disciplina.sigla | string | sí | ||
disciplina.nome | string | sí | ||
instituicao | object | sí | ||
instituicao.id | string (uuid) | sí | ||
instituicao.sigla | string | sí | ||
instituicao.nome | string | sí | ||
atividades | integer | sí | Actividades no canceladas que ya ocurrieron en la ventana. | |
alunos | lista de EstatisticaAluno | sí | Quien evalúa el grupo ve a todos los alumnos; quien solo es alumno se ve a sí mismo. | |
criterios | lista de object | no | Criterios que aparecen en los promedios (activos o con nota), en el orden de la asignatura y en el idioma de la persona. | |
criterios[].id | string (uuid) | sí | ||
criterios[].nome | string | sí | ||
criterios[].notaMin | integer | sí | ||
criterios[].notaMax | integer | sí | ||
notasLiberadas | boolean | no | El grupo ya liberó las notas al alumno. | |
mediasTurma | lista de MediaCriterio | no | Promedio del grupo por criterio: solo para quien evalúa el grupo; nunca para el alumno. | |
podeAvaliar | boolean | no | Quien pidió evalúa el grupo (puede exportar). |
EvolucaoAluno
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
aluno | object | sí | ||
aluno.id | string (uuid) | sí | ||
aluno.nome | string | sí | ||
disciplinas | lista de EvolucaoDisciplina | sí | ||
turmasNaoLiberadas | integer | sí | 0… | Solo en la vista del propio alumno: grupos suyos cuyas notas aún no se liberaron (no entran en las series). |
EvolucaoAlunoItem
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
matriculaId | string (uuid) | sí | ||
nome | string | sí | ||
turma | object | sí | ||
turma.id | string (uuid) | sí | ||
turma.nome | string | sí | ||
disciplina | object | sí | ||
disciplina.id | string (uuid) | sí | ||
disciplina.nome | string | sí |
EvolucaoAlunos
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de EvolucaoAlunoItem | sí |
EvolucaoDisciplina
Evolución longitudinal de un alumno por asignatura, atravesando los grupos en que estuvo. criterios: nota a lo largo del tiempo (N/A no es un punto); notaMin y notaMax dan la escala. atividadesProfissionais: nivel de supervisión por elemento del catálogo (la actividad sin elemento no entra). avaliadores: cuántos evaluadores distintos (el último de cada asistencia), solo el conteo, nunca el nombre.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
disciplina | object | sí | ||
disciplina.id | string (uuid) | sí | ||
disciplina.nome | string | sí | ||
instituicao | object | no | Institución de la asignatura: con cuenta única en varias instituciones, la pantalla filtra por ella. Puede faltar en servidores más antiguos. | |
instituicao.id | string (uuid) | sí | ||
instituicao.sigla | string | sí | ||
instituicao.nome | string | sí | ||
turmas | lista de object | sí | ||
turmas[].id | string (uuid) | sí | ||
turmas[].matriculaId | string (uuid) | sí | ||
turmas[].nome | string | sí | ||
turmas[].dataInicio | Data o nulo | sí | ||
turmas[].dataFim | Data o nulo | sí | ||
presencasAvaliadas | integer | sí | 0… | |
avaliadores | integer | sí | 0… | |
criterios | lista de object | sí | ||
criterios[].id | string (uuid) | sí | ||
criterios[].nome | string | sí | ||
criterios[].notaMin | integer | sí | ||
criterios[].notaMax | integer | sí | ||
criterios[].pontos | lista de object | sí | ||
criterios[].pontos[].atividadeId | string (uuid) | sí | ||
criterios[].pontos[].turmaId | string (uuid) | sí | ||
criterios[].pontos[].data | Data | sí | ||
criterios[].pontos[].valor | integer | sí | ||
atividadesProfissionais | lista de object | sí | ||
atividadesProfissionais[].id | string (uuid) | sí | ||
atividadesProfissionais[].nome | string | sí | ||
atividadesProfissionais[].pontos | lista de object | sí | ||
atividadesProfissionais[].pontos[].atividadeId | string (uuid) | sí | ||
atividadesProfissionais[].pontos[].turmaId | string (uuid) | sí | ||
atividadesProfissionais[].pontos[].data | Data | sí | ||
atividadesProfissionais[].pontos[].nivel | NivelSupervisao | sí |
ExcluirContaConfirmarInput
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
token | string | sí | 20–200 caracteres |
ExcluirContaInput
Eliminación de la propia cuenta desde la aplicación: se confirma con la contraseña.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
senha | Senha | sí |
ExcluirContaSolicitarInput
Eliminación por la web, sin inicio de sesión: en el paso 1 se pide el enlace por correo; en el paso 2 se confirma con el token del enlace.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
email | sí |
FeedbackFinalDoAluno
El feedback final del propio alumno en un grupo: solo después del plazo (janela.estado === "encerrada") y sin el interno. Antes, liberado es falso y feedbacks viene vacío; liberaEm es el primer día en que el alumno pasa a verlo.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
turma | object | sí | ||
turma.id | string (uuid) | sí | ||
turma.nome | string | sí | ||
liberado | boolean | sí | ||
liberaEm | Data o nulo | sí | ||
criterios | lista de CriterioDto | sí | ||
feedbacks | lista de FeedbackFinalDto | sí |
FeedbackFinalDto
Un feedback final. comentarioInterno solo aparece para el equipo del grupo y nunca para el alumno; autor es la persona que lo escribió. El alumno recibe esta misma forma, siempre sin el interno.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
matriculaId | string (uuid) | sí | ||
autor | object o nulo | sí | Nulo cuando el autor eliminó la cuenta. | |
autor.id | string (uuid) | sí | ||
autor.nome | string | sí | ||
comentario | string | sí | ||
comentarioInterno | string o nulo | no | ||
notas | lista de object | sí | ||
notas[].criterioId | string (uuid) | sí | ||
notas[].valor | integer o nulo | sí | ||
criadoEm | string | sí | ||
atualizadoEm | string | sí |
FeedbackFinalEscrever
Feedback general de cierre del alumno en el grupo. Todos los criterios activos de la asignatura vienen con valor (o null = «no aplica», solo donde el criterio lo permite); el comentario es obligatorio; el interno es opcional y nunca llega al alumno. Texto vacío en el interno lo borra.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
notas | lista de object | sí | 0–200 elementos | |
notas[].criterioId | string (uuid) | sí | ||
notas[].valor | integer o nulo | sí | ||
comentario | string | sí | 1–4000 caracteres | |
comentarioInterno | string o nulo | no | a 4000 caracteres |
FeedbackFinalMatricula
Pantalla del feedback final de un alumno, para quien evalúa el grupo o lo acompaña. meu: el feedback del propio usuario (nulo si aún no escribió); podeEscrever = tiene la capacidad de evaluar en el grupo, la ventana está abierta y la matrícula no es la suya. equipe: los feedbacks de los otros autores, con el interno; solo verTudo (profesor del grupo, coordinador de la asignatura, curador de la institución) los ve; preceptor y auxiliar ven solo el propio y equipe viene vacía.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
matriculaId | string (uuid) | sí | ||
turma | object | sí | ||
turma.id | string (uuid) | sí | ||
turma.nome | string | sí | ||
turma.dataInicio | Data o nulo | sí | ||
turma.dataFim | Data o nulo | sí | ||
aluno | object | sí | ||
aluno.id | string (uuid) | sí | ||
aluno.nome | string | sí | ||
janela | JanelaFeedback | sí | ||
criterios | lista de CriterioDto | sí | ||
meu | FeedbackFinalDto o nulo | sí | ||
podeEscrever | boolean | sí | ||
verTudo | boolean | sí | ||
equipe | lista de FeedbackFinalDto | sí | ||
autoavaliacao | AutoavaliacaoDto o nulo | no | Autoevaluación del alumno. Solo para quien verTudo; nulo para los demás y cuando el alumno no escribió. |
FeedbackFinalTurma
Lista del grupo para quien evalúa o acompaña: un elemento por alumno activo (menos el propio usuario). meuEm = cuándo el usuario grabó el suyo por última vez (nulo = falta escribir); total = cuántos feedbacks tiene el alumno, solo para quien verTudo (nulo para los demás: preceptor y auxiliar no saben qué escribieron los colegas).
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
turma | object | sí | ||
turma.id | string (uuid) | sí | ||
turma.nome | string | sí | ||
turma.dataInicio | Data o nulo | sí | ||
turma.dataFim | Data o nulo | sí | ||
janela | JanelaFeedback | sí | ||
podeEscrever | boolean | sí | ||
verTudo | boolean | sí | ||
itens | lista de object | sí | ||
itens[].matriculaId | string (uuid) | sí | ||
itens[].aluno | object | sí | ||
itens[].aluno.id | string (uuid) | sí | ||
itens[].aluno.nome | string | sí | ||
itens[].meuEm | string o nulo | sí | ||
itens[].total | integer o nulo | sí |
FilaAvaliacao
Ordenada por fecha de la actividad y hora del pedido; total cuenta todos los pendientes, no solo la página.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de FilaAvaliacaoItem | sí | ||
total | integer | sí | 0… |
FilaAvaliacaoItem
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
atividade | object | sí | ||
atividade.id | string (uuid) | sí | ||
atividade.descricao | string o nulo | sí | ||
atividade.data | Data | sí | ||
atividade.horaInicio | Hora o nulo | sí | ||
atividade.horaFim | Hora o nulo | sí | ||
atividade.obrigatoria | boolean | sí | ||
atividade.turma | object | sí | ||
atividade.turma.id | string (uuid) | sí | ||
atividade.turma.nome | string | sí | ||
atividade.disciplina | object | sí | ||
atividade.disciplina.id | string (uuid) | sí | ||
atividade.disciplina.sigla | string | sí | ||
atividade.disciplina.nome | string | sí | ||
linha | PresencaLinha | sí | ||
elegivelLote | boolean | sí | Entra en la confirmación en lote: pendiente y sin excepción (regla calculada en el servidor). |
FrequenciaTurma
Matriz alumno × actividad del grupo. Solo el estado del pedido de cada alumno en cada actividad: ninguna ubicación, relato, justificación ni nota. estado es NAO_SOLICITADA también para actividad futura (el cliente decide por data y hoje). Los totales cuentan solo actividades no canceladas que ya ocurrieron (hasta hoje); por eso una actividad futura o cancelada no entra en total.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
turma | object | sí | ||
turma.id | string (uuid) | sí | ||
turma.nome | string | sí | ||
hoje | Data | sí | Fecha de hoy en la zona horaria de la institución (para resaltar la columna «hoy»). | |
de | Data | sí | ||
ate | Data | sí | ||
atividades | lista de object | sí | Actividades en la ventana, por fecha y hora de inicio. | |
atividades[].id | string (uuid) | sí | ||
atividades[].data | Data | sí | ||
atividades[].horaInicio | string o nulo | sí | ||
atividades[].horaFim | string o nulo | sí | ||
atividades[].descricao | string o nulo | sí | ||
atividades[].obrigatoria | boolean | sí | ||
atividades[].cancelada | boolean | sí | ||
alunos | lista de object | sí | Alumnos con matrícula activa, en orden alfabético. | |
alunos[].id | string (uuid) | sí | ||
alunos[].matriculaId | string (uuid) | sí | ||
alunos[].nome | string | sí | ||
alunos[].celulas | lista de object | sí | ||
alunos[].celulas[].atividadeId | string (uuid) | sí | ||
alunos[].celulas[].estado | "NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA" | sí | ||
alunos[].obrigatorias | object | sí | ||
alunos[].obrigatorias.confirmadas | integer | sí | ||
alunos[].obrigatorias.total | integer | sí | ||
alunos[].opcionais | object | sí | ||
alunos[].opcionais.confirmadas | integer | sí | ||
alunos[].opcionais.total | integer | sí | ||
alunos[].percentual | number o nulo | sí | ||
truncado | object | sí | La lista se cortó en el límite máximo de alumnos y actividades; la cuadrícula y los totales valen solo para lo recibido. | |
truncado.atividades | boolean | sí | Actividades en la ventana, por fecha y hora de inicio. | |
truncado.alunos | boolean | sí | Alumnos con matrícula activa, en orden alfabético. |
Fuso
string — 1–64 caracteres
Health
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
status | "ok" | "degraded" | sí | ||
db | "up" | "down" | sí | ||
version | string | sí | ||
locale | string | sí |
Hora
Hora del día HH:MM o HH:MM:SS; siempre se devuelve como HH:MM:SS.
string — ^([01]\d\|2[0-3]):[0-5]\d(:[0-5]\d)?$
ImportacaoEntrada
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
csv | string | sí | 1–90000 caracteres | |
modo | "simular" | "aplicar" | sí | simular solo valida y muestra lo que ocurriría; aplicar graba todo o nada (a menos que parcial). | |
parcial | boolean | no | Modo parcial (con trabas): importa solo las filas válidas y devuelve las ignoradas en la respuesta. simular con parcial devuelve hashConteudo; aplicar con parcial exige el mismo hashConteudo (ausente o distinto = 409 CONFLICT). Ausente o false = todo o nada. | |
hashConteudo | string | no | ^[0-9a-f]{64}$ | Hash devuelto por la simulación parcial del mismo contenido (SHA-256 del contenido normalizado, 64 caracteres hexadecimales). |
ImportacaoRelatorio
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
tipo | "pessoas" | "alunos" | "atividades" | sí | ||
modo | "simular" | "aplicar" | sí | ||
aplicado | boolean | sí | En aplicar: true = grabó; false = alguna fila con error, no se grabó nada. En simular, siempre false. | |
erroArquivo | "empty" | "too_many_lines" | "unterminated_quote" | "too_large" | "missing_column" o nulo | sí | Error del archivo en su conjunto (vacío, demasiado grande, falta una columna obligatoria). | |
colunaAusente | string o nulo | sí | ||
resumo | object | sí | ||
linhas | lista de LinhaRelatorio | sí | ||
convites | integer o nulo | sí | 0… | Invitaciones que saldrán (cuentas nuevas). null = no informado (simular no revela si el correo ya tiene cuenta). |
parcial | boolean | no | Solo en el modo parcial. true = el pedido fue parcial. | |
hashConteudo | string | no | Solo en simular parcial: SHA-256 del contenido normalizado (tipo, destino y filas leídas), que aplicar parcial devuelve. | |
contagens | object | no | Solo en el modo parcial: importadas = filas válidas (CRIADA, INCLUIDA, REATIVADA o JA_EXISTE, detalladas en resumo); ignoradas = filas con ERRO. Importadas + ignoradas = filas leídas. En simular, es la previsión. | |
contagens.importadas | integer | sí | 0… | |
contagens.ignoradas | integer | sí | 0… | Solo en aplicar parcial: las filas que quedaron fuera (fila, campo y motivo). Existe solo en esta respuesta: no se graba. |
ignoradas | lista de LinhaRelatorio | no | Solo en aplicar parcial: las filas que quedaron fuera (fila, campo y motivo). Existe solo en esta respuesta: no se graba. |
InstituicaoAtualizar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
nome | string | no | 1–200 caracteres | |
locale | "pt-BR" | "es" | "en-US" o nulo | no | ||
timezone | Fuso | no | ||
retencaoMeses | integer o nulo | no | 1…600 | |
controladorNome | string o nulo | no | 1–200 caracteres | Privacidad (LGPD): null borra el valor y vuelve al predeterminado de la plataforma. |
encarregadoNome | string o nulo | no | 1–200 caracteres | |
contatoPrivacidade | Email o nulo | no | ||
ativo | boolean | no |
InstituicaoCriar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
sigla | string | sí | ^[A-Za-z0-9][A-Za-z0-9._-]{1,19}$ | |
nome | string | sí | 1–200 caracteres | |
locale | "pt-BR" | "es" | "en-US" o nulo | no | ||
timezone | Fuso | no | ||
retencaoMeses | integer o nulo | no | 1…600 | |
curador | object | no | Primer curador de la institución: recibe la invitación por correo. | |
curador.email | sí | |||
curador.nome | string | sí | 1–200 caracteres |
InstituicaoDto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
sigla | string | sí | ||
nome | string | sí | ||
ativo | boolean | sí | ||
locale | "pt-BR" | "es" | "en-US" o nulo | sí | ||
timezone | string | sí | ||
retencaoMeses | integer o nulo | sí | ||
controladorNome | string o nulo | no | Datos de privacidad de la institución; la API siempre los envía (nulos cuando no se informaron). | |
encarregadoNome | string o nulo | no | ||
contatoPrivacidade | string o nulo | no |
JanelaFeedback
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
estado | "sem_data" | "nao_abriu" | "aberta" | "encerrada" | sí | ||
prazoDias | integer | sí | ||
abreEm | Data o nulo | sí | Primer día en que se puede escribir (el día del fin del grupo); nulo sin fecha de fin. | |
ate | Data o nulo | sí | Último día en que se puede escribir o ajustar; nulo sin fecha de fin. |
LinhaRelatorio
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
linha | integer | sí | ||
situacao | "VALIDA" | "CRIADA" | "VINCULADA" | "INCLUIDA" | "REATIVADA" | "JA_EXISTE" | "ERRO" | sí | ||
rotulo | string | sí | Lo que identifica la fila para quien importó (el correo, o la fecha y la descripción que venían en el propio archivo). | |
campo | string | no | ||
codigo | "required" | "invalid" | "too_long" | "out_of_range" | "duplicate" | "not_found" | no |
LoginInput
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
email | sí | |||
senha | Senha | sí |
LogoutInput
Entrada del cierre de sesión: el aparato puede enviar su token de push para borrarlo a la vez.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
refreshToken | string | sí | 20–200 caracteres | |
dispositivoToken | string | no | 8–4096 caracteres; ^[\x21-\x7E]+$ |
MarcarLidas
Opción 1
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
ids | lista de string (uuid) | sí | 1–100 elementos |
Opción 2
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
todas | true | sí |
MatriculaAtualizar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
ativo | boolean | sí |
MatriculaCriar
Alumno ya registrado (usuarioId) o nuevo (email y nome; recibe la invitación).
Opción 1
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
usuarioId | string (uuid) | sí |
Opción 2
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
email | sí | |||
nome | string | sí | 1–200 caracteres | |
nationality | string | no | 2–2 caracteres; ^[A-Za-z]{2}$ |
MatriculaDto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
turmaId | string (uuid) | sí | ||
usuarioId | string (uuid) | sí | ||
ativo | boolean | sí | ||
nome | string | sí | ||
email | string | sí | ||
status | "CONVIDADO" | "ATIVO" | "SUSPENSO" | sí | ||
jaExistia | boolean | no | Solo en la respuesta de crear por correo: el correo ya tenía cuenta y la persona se vinculó a ella. |
Me
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
email | string | sí | ||
nome | string | sí | ||
locale | "pt-BR" | "es" | "en-US" | sí | ||
nationality | string o nulo | sí | ||
vinculos | lista de VinculoDto | sí |
MediaCriterio
Promedio de un criterio con 1 decimal y cuántas notas entraron (el mismo cálculo del inicio del alumno).
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
criterioId | string (uuid) | sí | ||
media | number | sí | ||
quantidade | integer | sí |
MensagemDto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
turmaId | string (uuid) | sí | ||
autor | object o nulo | sí | Nulo cuando el autor eliminó la cuenta. | |
autor.id | string (uuid) | sí | ||
autor.nome | string | sí | ||
texto | string o nulo | sí | Nulo cuando el mensaje fue eliminado (el texto se borra al eliminarlo). | |
criadaEm | string | sí | ||
editadaEm | string o nulo | sí | ||
removida | boolean | sí | ||
removidaPorModeracao | boolean | sí | Eliminado por quien modera (y no por el autor). | |
cursor | string | sí | Cursor de este mensaje (úselo en depois o antes). |
MensagemTexto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
texto | string | sí | 1–2000 caracteres |
MinhaAtividadeDto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
matriculaId | string (uuid) | sí | ||
data | Data | sí | ||
horaInicio | Hora o nulo | sí | ||
horaFim | Hora o nulo | sí | ||
descricao | string o nulo | sí | ||
local | string o nulo | sí | ||
obrigatoria | boolean | sí | ||
cancelada | boolean | sí | ||
turma | object | sí | ||
turma.id | string (uuid) | sí | ||
turma.nome | string | sí | ||
disciplina | object | sí | ||
disciplina.id | string (uuid) | sí | ||
disciplina.sigla | string | sí | ||
disciplina.nome | string | sí | ||
instituicao | object | sí | ||
instituicao.id | string (uuid) | sí | ||
instituicao.sigla | string | sí | ||
instituicao.nome | string | sí | ||
estado | "NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA" | sí | ||
presencaId | string (uuid) o nulo | sí | ||
solicitadaEm | string o nulo | sí | Cuándo se hizo el pedido, si lo hubo. | |
avaliadaEm | string o nulo | sí | Cuándo fue confirmada o rechazada (nulo mientras no se evalúa). Quien evaluó no viene: el alumno no ve nombres del equipo. | |
comentarioAvaliador | string o nulo | sí | Comentario de quien evaluó. Solo llega al propio alumno y a quien evalúa el grupo. Al alumno: el motivo de un rechazo siempre; el de una confirmación solo después de que el grupo libera las notas. | |
relato | string o nulo | no | El relato de la propia asistencia (el alumno puede reescribirlo). Solo en las filas de la propia persona. | |
regrasPedido | object | sí | Para avisar antes del envío lo que el servidor exigirá: la ventana del pedido (con las tolerancias del grupo), la zona horaria de la institución (otro día = fecha local distinta) y si la cerca vale (sin ubicación, habrá que justificar). El servidor sigue decidiendo: esto solo evita enviar, recibir error y volver a enviar. | |
regrasPedido.janelaInicio | string | sí | ||
regrasPedido.janelaFim | string | sí | ||
regrasPedido.fuso | string | sí | ||
regrasPedido.exigeLocal | boolean | sí |
MinhaConversa
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
turmaId | string (uuid) | sí | ||
turmaNome | string | sí | ||
disciplinaNome | string | sí | ||
instituicaoSigla | string | sí | ||
ativa | boolean | sí | ||
naoLida | boolean | sí | Hay una notificación de mensaje no leído en este grupo. |
MinhasAtividades
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de MinhaAtividadeDto | sí |
MinhasConversas
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de MinhaConversa | sí |
NivelSupervisao
integer — 1…5
Nota
Nota de un criterio en una asistencia. valor nulo = «no aplica».
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
criterioId | string (uuid) | sí | ||
valor | integer o nulo | sí | 0…100 |
NotificacaoDto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
evento | "PEDIDO_PENDENTE" | "LEMBRETE_AVALIADOR" | "AVALIACAO_FEITA" | "MENSAGEM_CHAT" | "LEMBRETE_ATIVIDADE" | "CONVITE_SUS" | "CONTA_EXCLUIDA" | sí | ||
criadaEm | string | sí | ||
lida | boolean | sí | ||
turmaId | string (uuid) o nulo | sí | Solo ids y nombres de grupo y actividad, para armar el texto y el enlace en el idioma de quien lee. Nunca el texto de un mensaje. | |
turmaNome | string o nulo | sí | ||
instituicaoNome | string o nulo | sí | por defecto: null | Nombre de la institución (solo en el aviso de cuenta eliminada, que no tiene grupo). |
atividadeId | string (uuid) o nulo | sí | ||
atividadeData | string o nulo | sí | Fecha de la actividad (AAAA-MM-DD), cuando exista. | |
quantidade | integer | sí | 1… | Cuántos eventos reúne esta notificación (p. ej.: 3 mensajes nuevos). |
NotificacoesPagina
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de NotificacaoDto | sí | ||
proximo | string o nulo | sí | ||
naoLidas | integer | sí | 0… |
Painel
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de PainelItem | sí | ||
truncado | boolean | sí | Había más filas que el límite. | |
opcoes | object | sí | Opciones de los filtros: todo lo que la persona ve, independientemente de los filtros activos. | |
opcoes.instituicoes | lista de object | sí | ||
opcoes.instituicoes[].id | string (uuid) | sí | ||
opcoes.instituicoes[].sigla | string | sí | ||
opcoes.instituicoes[].nome | string | sí | ||
opcoes.disciplinas | lista de object | sí | ||
opcoes.disciplinas[].id | string (uuid) | sí | ||
opcoes.disciplinas[].sigla | string | sí | ||
opcoes.disciplinas[].nome | string | sí | ||
opcoes.disciplinas[].instituicaoId | string (uuid) | sí | ||
opcoes.turmas | lista de object | sí | ||
opcoes.turmas[].id | string (uuid) | sí | ||
opcoes.turmas[].nome | string | sí | ||
opcoes.turmas[].disciplinaId | string (uuid) | sí | ||
opcoes.turmas[].ativo | boolean | sí | ||
opcoes.alunos | lista de object | sí | ||
opcoes.alunos[].id | string (uuid) | sí | ||
opcoes.alunos[].nome | string | sí |
PainelItem
Una fila del panel: una actividad para un alumno (la propia persona o alguien que evalúa).
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
matriculaId | string (uuid) | sí | ||
data | Data | sí | ||
horaInicio | Hora o nulo | sí | ||
horaFim | Hora o nulo | sí | ||
descricao | string o nulo | sí | ||
local | string o nulo | sí | ||
obrigatoria | boolean | sí | ||
cancelada | boolean | sí | ||
turma | object | sí | ||
turma.id | string (uuid) | sí | ||
turma.nome | string | sí | ||
disciplina | object | sí | ||
disciplina.id | string (uuid) | sí | ||
disciplina.sigla | string | sí | ||
disciplina.nome | string | sí | ||
instituicao | object | sí | ||
instituicao.id | string (uuid) | sí | ||
instituicao.sigla | string | sí | ||
instituicao.nome | string | sí | ||
estado | "NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA" | sí | ||
presencaId | string (uuid) o nulo | sí | ||
solicitadaEm | string o nulo | sí | ||
avaliadaEm | string o nulo | sí | ||
comentarioAvaliador | string o nulo | sí | ||
relato | string o nulo | no | ||
regrasPedido | object | sí | ||
regrasPedido.janelaInicio | string | sí | ||
regrasPedido.janelaFim | string | sí | ||
regrasPedido.fuso | string | sí | ||
regrasPedido.exigeLocal | boolean | sí | ||
aluno | object | sí | ||
aluno.id | string (uuid) | sí | ||
aluno.nome | string | sí | ||
proprio | boolean | sí | La fila es de la propia persona (como alumna). | |
podeAvaliar | boolean | sí | Puede confirmar o rechazar esta asistencia (evalúa el grupo y no es la propia). |
ParametrosDto
Lectura de un nivel: lo que define (valores, null = no define) y lo que valdría sin él (herdados).
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
nivel | "plataforma" | "instituicao" | sí | ||
valores | object | sí | ||
herdados | object | sí |
ParametrosInstituicaoAtualizar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
turma.tolerancia_antes_min | integer o nulo | no | 0…720 | |
turma.tolerancia_depois_min | integer o nulo | no | 0…720 | |
senha.tamanho_minimo | integer o nulo | no | 8…128 | |
senha.historico | integer o nulo | no | 0…24 | |
senha.intervalo_min_horas | integer o nulo | no | 0…168 | |
sessao.expira_dias | integer o nulo | no | 1…365 | |
auditoria.retencao_meses | integer o nulo | no | 1…240 | |
lembrete.atividade_antecedencia_min | integer o nulo | no | 0…1440 | |
lembrete.avaliador_pendencia_horas | integer o nulo | no | 0…168 | |
notificacao.silencio_inicio_h | integer o nulo | no | 0…23 | |
notificacao.silencio_fim_h | integer o nulo | no | 0…23 | |
sus.convite_intervalo_dias | integer o nulo | no | 0…730 | |
feedback.prazo_dias | integer o nulo | no | 0…180 | |
chat.retencao_meses | integer o nulo | no | 1…240 |
ParametrosPlataformaAtualizar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
turma.tolerancia_antes_min | integer o nulo | no | 0…720 | |
turma.tolerancia_depois_min | integer o nulo | no | 0…720 | |
senha.tamanho_minimo | integer o nulo | no | 8…128 | |
senha.historico | integer o nulo | no | 0…24 | |
senha.intervalo_min_horas | integer o nulo | no | 0…168 | |
sessao.expira_dias | integer o nulo | no | 1…365 | |
auditoria.retencao_meses | integer o nulo | no | 1…240 | |
dados.retencao_meses | integer o nulo | no | 1…240 | |
lembrete.atividade_antecedencia_min | integer o nulo | no | 0…1440 | |
lembrete.avaliador_pendencia_horas | integer o nulo | no | 0…168 | |
notificacao.silencio_inicio_h | integer o nulo | no | 0…23 | |
notificacao.silencio_fim_h | integer o nulo | no | 0…23 | |
sus.convite_intervalo_dias | integer o nulo | no | 0…730 | |
feedback.prazo_dias | integer o nulo | no | 0…180 | |
chat.retencao_meses | integer o nulo | no | 1…240 | |
notificacao.retencao_dias | integer o nulo | no | 1…3650 |
Pendente
Pedido en la cola del grupo (todas las actividades).
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
atividade | object | sí | ||
atividade.id | string (uuid) | sí | ||
atividade.data | Data | sí | ||
atividade.descricao | string o nulo | sí | ||
linha | PresencaLinha | sí |
Pendentes
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de Pendente | sí |
PerfilAtualizar
Edición del propio perfil. Solo lo que la persona puede cambiar sola: correo y roles no entran.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
nome | string | no | 1–200 caracteres | |
nationality | string o nulo | no | 2–2 caracteres; ^[A-Za-z]{2}$ | |
locale | "pt-BR" | "es" | "en-US" o nulo | no | ||
lattesUrl | "" | string | no | Dirección del currículo Lattes (https). | |
conselhoCodigo | string o nulo | no | a 60 caracteres | Número en el consejo profesional. Solo la propia persona lo ve. |
anoGraduacao | integer o nulo | no | 1930…2100 | |
residencia | boolean | no | ||
especializacao | boolean | no | ||
mestrado | boolean | no | ||
doutorado | boolean | no | ||
minibio | string o nulo | no | a 2000 caracteres |
PerfilDto
Perfil completo de la propia persona (GET /me/perfil). Nunca se devuelve a terceros.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
nome | string | sí | ||
email | string | sí | ||
nationality | string o nulo | sí | ||
locale | "pt-BR" | "es" | "en-US" o nulo | sí | ||
lattesUrl | string o nulo | sí | ||
conselhoCodigo | string o nulo | sí | ||
anoGraduacao | integer o nulo | sí | ||
residencia | boolean | sí | ||
especializacao | boolean | sí | ||
mestrado | boolean | sí | ||
doutorado | boolean | sí | ||
minibio | string o nulo | sí | ||
temFoto | boolean | sí | ¿Hay foto de perfil? La foto en sí viene de GET /me/foto. | |
fotoEm | string o nulo | sí | Cambia en cada cambio de foto (sirve para renovar la caché del avatar). |
PoliticaDto
Política de privacidad vigente (mismo formato que los términos) y su dirección pública predeterminada.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
versao | integer o nulo | sí | ||
textos | TermoTextos | sí | ||
publicadoEm | string (date-time) o nulo | sí | ||
urlPublica | string | sí |
PoliticaPublica
Página pública de la política (sin inicio de sesión): es la dirección a la que apuntan las tiendas y los correos.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
instituicao | object | sí | ||
instituicao.sigla | string | sí | ||
instituicao.nome | string | sí | ||
politica | TermoDto | sí | ||
privacidade | PrivacidadeDto | sí | ||
urlPublica | string | sí |
Preferencia
Preferencia por tipo: la persona desactiva el aviso en la app y/o el push. Ausente = activado.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
evento | "PEDIDO_PENDENTE" | "LEMBRETE_AVALIADOR" | "AVALIACAO_FEITA" | "MENSAGEM_CHAT" | "LEMBRETE_ATIVIDADE" | "CONVITE_SUS" | "CONTA_EXCLUIDA" | sí | ||
inApp | boolean | sí | ||
push | boolean | sí |
Preferencias
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de Preferencia | sí |
PreferenciasAtualizar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de Preferencia | sí | 1–7 elementos |
PresencaDto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
atividadeId | string (uuid) | sí | ||
matriculaId | string (uuid) | sí | ||
estado | "SOLICITADA" | "CONFIRMADA" | "REJEITADA" | sí | ||
solicitadaEm | string | sí | ||
capturadaEm | string o nulo | sí | ||
relato | string o nulo | sí | ||
justificativa | string o nulo | sí | ||
excecoes | lista de "FORA_DA_JANELA" | "FORA_DA_CERCA" | "OUTRO_DIA" | sí | ||
avaliadaEm | string o nulo | sí | ||
comentarioAvaliador | string o nulo | sí | ||
notas | lista de Nota | sí | Solo para quien evalúa el grupo. El alumno ve sus notas en el panel, después de que el grupo las libera. | |
nivelSupervisao | NivelSupervisao o nulo | no | Nivel de supervisión dado por el último evaluador; nulo = no informado. Solo para quien evalúa (el alumno lo lee en la evaluación, tras la liberación). | |
relatoEditadoEm | string o nulo | no | Última edición del relato por el alumno; nulo = nunca editado. Posterior a avaliadaEm = editado después de la evaluación. | |
relatoVersoes | integer | no | Cuántas versiones anteriores del relato existen (quien evalúa las lee en .../relato/versoes). |
PresencaLinha
Fila de la lista de quien evalúa: la matrícula con su pedido (si lo hay). La ubicación solo aparece aquí.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
matriculaId | string (uuid) | sí | ||
usuarioId | string (uuid) | sí | ||
nome | string | sí | ||
presenca | PresencaDto o nulo | sí | ||
lat | number o nulo | sí | ||
lng | number o nulo | sí | ||
precisaoM | number o nulo | sí | ||
avaliador | object o nulo | no | Quien evaluó por última vez: solo en la vista de quien evalúa el grupo, nunca en la del alumno. | |
avaliador.id | string (uuid) | sí | ||
avaliador.nome | string | sí | ||
dentroDaArea | "dentro" | "fora" | "sem_localizacao" | no | Dónde quedó el pedido respecto a la cerca de la actividad, solo la franja (nunca metros): la misma regla que exige justificación. Ausente = la cerca no vale en esta actividad (desactivada o sin centro/radio) o no hay pedido. |
PresencaLinhas
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
atividade | object | sí | ||
atividade.id | string (uuid) | sí | ||
atividade.turmaId | string (uuid) | sí | ||
atividade.data | Data | sí | ||
atividade.descricao | string o nulo | sí | ||
items | lista de PresencaLinha | sí |
PresencaSolicitar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
relato | string | no | a 2000 caracteres | Hasta 2000 caracteres. |
justificativa | string | no | a 2000 caracteres | Obligatoria cuando el pedido cae en excepción. |
clienteId | string (uuid) | no | Generado en el aparato: reenviar la cola sin conexión no duplica. | |
capturadaEm | string (date-time) | no | Instante en que el aparato capturó el pedido (cola sin conexión). | |
lat | number | no | -90…90 | |
lng | number | no | -180…180 | |
precisaoM | integer | no | 0…1000000 |
PrimeiroAcessoConfirmarInput
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
email | sí | |||
codigo | string | sí | ^\d{6}$ | |
senha | Senha | sí |
PrimeiroAcessoSolicitarInput
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
email | sí |
PrivacidadeDto
Lo que la persona ve sobre el tratamiento de sus datos en la institución. controlador y encarregado nulos = la institución aún no informó. contato siempre está completo (el de la institución o el predeterminado); contatoPadrao indica cuál de los dos es.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
controlador | string o nulo | sí | ||
encarregado | string o nulo | sí | ||
contato | string | sí | ||
contatoPadrao | boolean | sí |
PushWebConfig
Configuración pública de Firebase para el navegador (no es secreto); ausente = push en el navegador desactivado.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
apiKey | string | sí | ||
appId | string | sí | ||
projectId | string | sí | ||
messagingSenderId | string | sí | ||
vapidKey | string | no | Clave pública VAPID, si el proyecto usa una propia; sin ella el SDK usa la predeterminada de Firebase. |
QrResolver
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
token | string | sí | 20–2000 caracteres |
QrResolvido
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
turmaId | string (uuid) | sí | ||
atividade | object | sí | ||
atividade.id | string (uuid) | sí | ||
atividade.data | Data | sí | ||
atividade.descricao | string o nulo | sí | ||
linha | PresencaLinha | sí |
QrToken
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
token | string | sí | ||
expiraEm | string | sí |
RedefinirSenhaInput
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
token | string | sí | 20–200 caracteres | |
senha | Senha | sí |
RefreshInput
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
refreshToken | string | sí | 20–200 caracteres |
RelatoEditar
El alumno reescribe el relato después del pedido, incluso ya evaluado. La versión anterior queda guardada y la edición va a la auditoría (sin el texto). No reabre la evaluación: estado, notas y comentario quedan como están. Texto vacío borra el relato (la versión anterior sigue guardada).
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
relato | string | sí | a 2000 caracteres |
RelatoVersoes
Versiones anteriores del relato, de la más nueva a la más antigua. Solo para quien evalúa el grupo.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de object | sí | ||
items[].id | string (uuid) | sí | ||
items[].texto | string | sí | ||
items[].substituidoEm | string | sí |
Rubrica
object
Senha
Contraseña en texto; solo viaja aquí. El mínimo de caracteres lo define la política de la institución.
string — 1–128 caracteres
Sessao
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
accessToken | string | sí | ||
refreshToken | string | sí | ||
expiresIn | integer | sí | Validez del token de acceso, en segundos. | |
usuario | Me | sí |
SessaoAtivaDto
Una conexión (sesión con renovación activa). Nunca expone el token ni la IP.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
agente | string o nulo | sí | User-Agent informado en el inicio de sesión, truncado; puede ser nulo. | |
criadaEm | string | sí | ||
expiraEm | string | sí | ||
atual | boolean | sí | Es la sesión de quien pidió la lista (solo si se informó el token de renovación). |
SessoesAtivas
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de SessaoAtivaDto | sí |
SusEnviada
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
pontuacao | number | sí |
SusRespostaInput
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
respostas | lista de integer | sí | 10–10 elementos | Los 10 ítems de la versión positiva, en orden, escala 1–5. |
observacoes | string | no | a 2000 caracteres |
SusResumo
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
total | integer | sí | ||
media | number o nulo | sí | Promedio de la puntuación SUS; nulo sin respuestas. | |
porItem | lista de number | sí | Promedio de cada ítem (1–5), en orden; vacía sin respuestas. |
TermoDto
Versión vigente. versao nulo = la institución aún no publicó términos.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
versao | integer o nulo | sí | ||
textos | TermoTextos | sí | ||
publicadoEm | string (date-time) o nulo | sí |
TermoPublicar
Publica una versión nueva de los términos de la institución. Al menos un idioma debe tener texto.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
textos | TermoTextos | sí |
TermosDosMeus
Términos y política vigentes de cada institución donde la persona tiene vínculo o matrícula activa (pantalla «Términos de uso»).
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de object | sí | ||
items[].instituicao | object | sí | ||
items[].instituicao.id | string (uuid) | sí | ||
items[].instituicao.sigla | string | sí | ||
items[].instituicao.nome | string | sí | ||
items[].termo | TermoDto | sí | ||
items[].politica | TermoDto | sí | ||
items[].urlPublica | string | sí | ||
items[].privacidade | PrivacidadeDto | sí |
TermoTextos
Un texto por idioma; el idioma ausente cae en pt-BR (predeterminado).
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
pt-BR | string | no | a 60000 caracteres | |
es | string | no | a 60000 caracteres | |
en-US | string | no | a 60000 caracteres |
TrocarSenhaInput
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
senhaAtual | Senha | sí | ||
novaSenha | Senha | sí |
TurmaAtualizar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
nome | string | no | 1–200 caracteres | |
endereco | string o nulo | no | a 500 caracteres | |
localAtividade | string o nulo | no | a 500 caracteres | |
lat | number o nulo | no | -90…90 | |
lng | number o nulo | no | -180…180 | |
toleranciaAntesMin | integer o nulo | no | 0…720 | |
toleranciaDepoisMin | integer o nulo | no | 0…720 | |
notasVisiveisEm | Data o nulo | no | ||
ativo | boolean | no |
TurmaCriar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
nome | string | sí | 1–200 caracteres | |
endereco | string o nulo | no | a 500 caracteres | |
localAtividade | string o nulo | no | a 500 caracteres | |
lat | number o nulo | no | -90…90 | |
lng | number o nulo | no | -180…180 | |
toleranciaAntesMin | integer o nulo | no | 0…720 | |
toleranciaDepoisMin | integer o nulo | no | 0…720 | |
notasVisiveisEm | Data o nulo | no |
TurmaDto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
disciplinaId | string (uuid) | sí | ||
instituicaoId | string (uuid) | sí | ||
nome | string | sí | ||
ativo | boolean | sí | ||
endereco | string o nulo | sí | ||
localAtividade | string o nulo | sí | ||
lat | number o nulo | sí | ||
lng | number o nulo | sí | ||
toleranciaAntesMin | integer o nulo | sí | ||
toleranciaDepoisMin | integer o nulo | sí | ||
notasVisiveisEm | Data o nulo | sí | ||
dataInicio | Data o nulo | sí | ||
dataFim | Data o nulo | sí |
TurmaPeriodo
Período del grupo (el fin abre el plazo del feedback final). Tiene ruta propia y regla de permiso propia, separada del alta común del grupo. Los dos campos siempre vienen; nulo = no definido.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
dataInicio | Data o nulo | sí | ||
dataFim | Data o nulo | sí |
TurmaProntidao
Qué falta para que el grupo reciba asistencia (checklist de quien registra). Solo conteos: ningún nombre ni correo, para no exponer quién tiene cuenta ni los vínculos de la institución a quien no los administra.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
centro | boolean | sí | ||
toleranciaPropria | boolean | sí | Tolerancia propia del grupo; false = vale el predeterminado. | |
atividadesFuturas | integer | sí | 0… | Actividades no canceladas de hoy en adelante (en la zona horaria de la institución). |
alunos | integer | sí | 0… | |
alunosComAcesso | integer | sí | 0… | Alumnos que ya aceptaron la invitación (cuenta activa) y pueden registrar asistencia. |
avaliadores | integer | sí | 0… | Personas con cuenta activa que pueden confirmar asistencia en este grupo, en cualquier nivel (grupo, asignatura, institución). |
avaliadoresConvidados | integer | sí | 0… | Personas que podrán evaluar, pero aún no aceptaron la invitación. |
UsuarioAtualizar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
nome | string | no | 1–200 caracteres | |
nationality | string o nulo | no | 2–2 caracteres; ^[A-Za-z]{2}$ | |
locale | "pt-BR" | "es" | "en-US" o nulo | no | ||
status | "ATIVO" | "SUSPENSO" | no |
UsuarioContagens
Conteos por situación en la institución, respetando búsqueda, tipo y rol de la consulta, pero sin el filtro de estado.
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
todos | integer | sí | 0… | |
ativos | integer | sí | 0… | |
convidados | integer | sí | 0… | |
suspensos | integer | sí | 0… |
UsuarioDto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
email | string | sí | ||
nome | string | sí | ||
status | "CONVIDADO" | "ATIVO" | "SUSPENSO" | sí | ||
nationality | string o nulo | sí | ||
locale | "pt-BR" | "es" | "en-US" o nulo | sí | ||
compartilhado | boolean | sí | Tiene vínculo o matrícula en otra institución: solo la plataforma cambia nombre y estado. | |
jaExistia | boolean | no | Solo en la respuesta de crear: el correo ya tenía cuenta y la persona se vinculó a ella. |
UsuarioLista
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
items | lista de UsuarioDto | sí | ||
total | integer | sí | 0… | |
contagens | UsuarioContagens | no |
VinculoAtualizar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
podeAvaliar | boolean | no | ||
podeCadastrar | boolean | no | ||
ativo | boolean | no |
VinculoCriar
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
usuarioId | string (uuid) | sí | ||
papel | "CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR" | sí | ||
disciplinaId | string (uuid) o nulo | no | ||
turmaId | string (uuid) o nulo | no | ||
podeAvaliar | boolean | no | por defecto: false | |
podeCadastrar | boolean | no | por defecto: false |
VinculoDto
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
papel | "ADMIN_PLATAFORMA" | "CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR" | sí | ||
instituicaoId | string (uuid) o nulo | sí | ||
disciplinaId | string (uuid) o nulo | sí | ||
turmaId | string (uuid) o nulo | sí | ||
podeAvaliar | boolean | sí | ||
podeCadastrar | boolean | sí |
VinculoItem
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
id | string (uuid) | sí | ||
usuarioId | string (uuid) | sí | ||
nome | string | sí | ||
email | string | sí | ||
papel | "ADMIN_PLATAFORMA" | "CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR" | sí | ||
instituicaoId | string (uuid) o nulo | sí | ||
disciplinaId | string (uuid) o nulo | sí | ||
turmaId | string (uuid) o nulo | sí | ||
podeAvaliar | boolean | sí | ||
podeCadastrar | boolean | sí | ||
ativo | boolean | sí |