Carga Horária
A carga horária define quantas aulas (de cada tipo) uma disciplina possui em determinada série. Cada carga horária possui itens com tipo de aula e quantidade.
O modelo carga horária
id
uuid
Identificador da carga horária.
grade_id
uuid
UUID da série.
subject_id
uuid
UUID da disciplina.
items
array
Lista de itens (tipo de aula × quantidade).
items[].class_period_type_id
uuid
UUID do tipo de aula.
items[].quantity
integer
Quantidade de aulas (0–255).
{ "id": "...", "grade_id": "...", "subject_id": "...", "items": [ { "class_period_type_id": "...", "quantity": 5 } ] }
/v1/partners/school/{cnpj}/workloads/all
Listar cargas horárias
Lista todas as cargas horárias da escola. Resposta paginada.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
404
Escola ou recurso não encontrado.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$client->get('.../v1/partners/school/{cnpj}/workloads/all');
await fetch('.../v1/partners/school/{cnpj}/workloads/all');
{ "data": [ { "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890", "grade_id": "b2c3d4e5-f6a7-8901-bc23-de45fa678901", "subject_id": "c3d4e5f6-a7b8-9012-cd34-ef56ab789012", "grade": "5º Ano", "subject": "Matemática", "items": [ { "id": "d4e5f6a7-b8c9-0123-de45-fa67bc890123", "class_period_type_id": "e5f6a7b8-c9d0-1234-ef56-ab67cd890123", "quantity": 4 } ] } ], "links": { /* paginação */ }, "meta": { /* paginação */ } }
{ "message": "Autenticação inválida." }
{ "message": "Escola ou recurso não encontrado." }
/v1/partners/school/{cnpj}/workload/{id}
Obter carga horária
Retorna uma carga horária pelo UUID.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
id
uuid
obrigatório
UUID da carga horária.
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
404
Escola ou recurso não encontrado.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$client->get('.../v1/partners/school/{cnpj}/workload/{id}');
await fetch('.../v1/partners/school/{cnpj}/workload/{id}');
{ "data": { "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890", "grade_id": "b2c3d4e5-f6a7-8901-bc23-de45fa678901", "subject_id": "c3d4e5f6-a7b8-9012-cd34-ef56ab789012", "grade": "5º Ano", "subject": "Matemática", "items": [ { "id": "d4e5f6a7-b8c9-0123-de45-fa67bc890123", "class_period_type_id": "e5f6a7b8-c9d0-1234-ef56-ab67cd890123", "quantity": 4 } ] } }
{ "message": "Autenticação inválida." }
{ "message": "Escola ou recurso não encontrado." }
/v1/partners/school/{cnpj}/workload
Criar carga horária
Cria uma carga horária. Combinação grade + subject deve ser única.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
Parâmetros do corpo
grade_id
uuid
obrigatório
UUID da série.
subject_id
uuid
obrigatório
UUID da disciplina.
items
array
obrigatório
Array de itens. Cada item: class_period_type_id (uuid, obrigatório) + quantity (integer, obrigatório).
Códigos de resposta
200
Sucesso.
400
Dados inválidos.
401
Autenticação inválida.
404
Escola ou recurso não encontrado.
409
Já existe carga horária para esta série + disciplina.
-X POST \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}" \
-H "Content-Type: application/json" \
-d '{"grade_id":"...","subject_id":"...","items":[{"class_period_type_id":"...","quantity":5}]}'
$client->post('.../v1/partners/school/{cnpj}/workload', ['json' => [...]]);
await fetch('.../v1/partners/school/{cnpj}/workload', { method: 'POST', body: JSON.stringify({...}) }
);
{ "data": { "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890", "grade_id": "b2c3d4e5-f6a7-8901-bc23-de45fa678901", "subject_id": "c3d4e5f6-a7b8-9012-cd34-ef56ab789012", "grade": "5º Ano", "subject": "Matemática", "items": [ { "id": "d4e5f6a7-b8c9-0123-de45-fa67bc890123", "class_period_type_id": "e5f6a7b8-c9d0-1234-ef56-ab67cd890123", "quantity": 4 } ] } }
{ "message": "Os dados fornecidos são inválidos." }
{ "message": "Autenticação inválida." }
{ "message": "Escola ou recurso não encontrado." }
{ "message": "Já existe carga horária para esta combinação de série e disciplina." }
/v1/partners/school/{cnpj}/workload/{id}
Editar carga horária
Atualiza a carga horária. Quando o array items é enviado, todos os itens existentes são substituídos.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
id
uuid
obrigatório
UUID da carga horária.
Parâmetros do corpo
items
array
opcional
Array de itens. Quando enviado, substitui todos os itens existentes.
Códigos de resposta
200
Sucesso.
400
Dados inválidos.
401
Autenticação inválida.
404
Escola ou recurso não encontrado.
-X PUT \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}" \
-H "Content-Type: application/json" \
-d '{"items":[{"class_period_type_id":"...","quantity":4}]}'
$client->put('.../v1/partners/school/{cnpj}/workload/{id}', ['json' => [...]]);
await fetch('.../v1/partners/school/{cnpj}/workload/{id}', { method: 'PUT', body: JSON.stringify({...}) }
);
{ "data": { "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890", "grade_id": "b2c3d4e5-f6a7-8901-bc23-de45fa678901", "subject_id": "c3d4e5f6-a7b8-9012-cd34-ef56ab789012", "grade": "5º Ano", "subject": "Matemática", "items": [ { "id": "d4e5f6a7-b8c9-0123-de45-fa67bc890123", "class_period_type_id": "e5f6a7b8-c9d0-1234-ef56-ab67cd890123", "quantity": 4 } ] } }
{ "message": "Os dados fornecidos são inválidos." }
{ "message": "Autenticação inválida." }
{ "message": "Escola ou recurso não encontrado." }
/v1/partners/school/{cnpj}/workload/{id}
Excluir carga horária
Remove a carga horária e todos seus itens.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
id
uuid
obrigatório
UUID da carga horária.
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
404
Escola ou recurso não encontrado.
-X DELETE \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$client->delete('.../v1/partners/school/{cnpj}/workload/{id}');
await fetch('.../v1/partners/school/{cnpj}/workload/{id}', { method: 'DELETE' }
);
{ "message": "Carga horária removida com sucesso." }
{ "message": "Autenticação inválida." }
{ "message": "Escola ou recurso não encontrado." }