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).

Modelo carga horária
{
  "id": "...",
  "grade_id": "...",
  "subject_id": "...",
  "items": [
    { "class_period_type_id": "...", "quantity": 5 }
  ]
}
GET /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.

Requisição GET
GET /v1/partners/school/{cnpj}/workloads/all
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/workloads/all \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "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 */ }
}
GET /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.

Requisição GET
GET /v1/partners/school/{cnpj}/workload/{id}
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/workload/{id} \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "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
      }
    ]
  }
}
POST /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.

Requisição POST
POST /v1/partners/school/{cnpj}/workload
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/workload \
  -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}]}'
Resposta
{
  "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
      }
    ]
  }
}
PUT /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.

Requisição PUT
PUT /v1/partners/school/{cnpj}/workload/{id}
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/workload/{id} \
  -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}]}'
Resposta
{
  "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
      }
    ]
  }
}
DELETE /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.

Requisição DELETE
DELETE /v1/partners/school/{cnpj}/workload/{id}
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/workload/{id} \
  -X DELETE \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "message": "Carga horária removida com sucesso."
}