Disciplinas da Escola

Vincula disciplinas a séries da escola, indicando quais disciplinas são oferecidas para cada série.

O modelo vínculo

id uuid

Identificador do vínculo.

grade_id uuid

UUID da série.

subject_id uuid

UUID da disciplina.

subject string

Nome da disciplina (somente leitura).

grade string

Nome da série (somente leitura).

Modelo vínculo
{
  "id": "a1b2...",
  "grade_id": "...",
  "subject_id": "...",
  "subject": "Matemática",
  "grade": "5º Ano"
}
GET /v1/partners/school/{cnpj}/grade/{gradeId}/subjects/all

Listar disciplinas da série

Retorna todas as disciplinas vinculadas a uma série da escola.

Parâmetros de rota

cnpj string obrigatório

CNPJ da escola (14 dígitos, sem formatação).

gradeId uuid obrigatório

UUID da série.

Códigos de resposta

200

Sucesso.

401

Autenticação inválida.

404

Escola ou série não encontrada.

Requisição GET
GET /v1/partners/school/{cnpj}/grade/{gradeId}/subjects/all
curl https://toakiescola.com.br/api/v1/partners/school/26019466000122/grade/{gradeId}/subjects/all \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "data": [
    {
      "id": "a1b2...",
      "grade_id": "...",
      "subject_id": "...",
      "subject": "Matemática",
      "grade": "5º Ano"
    }
  ]
}
POST /v1/partners/school/{cnpj}/grade/{gradeId}/subject

Vincular disciplina

Vincula uma disciplina existente a uma série da escola. O vínculo deve ser único (mesma disciplina não pode ser vinculada duas vezes à mesma série).

Parâmetros de rota

cnpj string obrigatório

CNPJ da escola (14 dígitos, sem formatação).

gradeId uuid obrigatório

UUID da série.

Parâmetros do corpo

subject_id uuid obrigatório

UUID da disciplina (deve pertencer à mesma escola).

Códigos de resposta

200

Vínculo criado com sucesso.

400

Dados inválidos.

401

Autenticação inválida.

404

Escola, série ou disciplina não encontrada.

409

Disciplina já vinculada a esta série.

Requisição POST
POST /v1/partners/school/{cnpj}/grade/{gradeId}/subject
curl https://toakiescola.com.br/api/v1/partners/school/26019466000122/grade/{gradeId}/subject \
  -X POST \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}" \
  -H "Content-Type: application/json" \
  -d '{"subject_id":"a1b2c3d4-..."}'
Resposta
{
  "data": {
    "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890",
    "grade_id": "b2c3d4e5-f6a7-8901-bc23-de45fa678901",
    "subject_id": "c3d4e5f6-a7b8-9012-cd34-ef56ab789012",
    "subject": "Matemática",
    "grade": "5º Ano"
  }
}
DELETE /v1/partners/school/{cnpj}/grade/{gradeId}/subject/{subjectId}

Desvincular disciplina

Remove o vínculo entre uma disciplina e uma série. Não é possível desvincular uma disciplina que possua carga horária configurada para a série ou que esteja vinculada a um professor em uma turma da série.

Parâmetros de rota

cnpj string obrigatório

CNPJ da escola (14 dígitos, sem formatação).

gradeId uuid obrigatório

UUID da série.

subjectId uuid obrigatório

UUID da disciplina a desvincular.

Códigos de resposta

200

Vínculo removido com sucesso.

401

Autenticação inválida.

404

Escola, série ou vínculo não encontrado.

409

A disciplina está em uso (carga horária ou professor) e não pode ser desvinculada.

Requisição DELETE
curl https://toakiescola.com.br/api/v1/partners/school/26019466000122/grade/{gradeId}/subject/{subjectId} \
  -X DELETE \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "message": "Vínculo removido com sucesso."
}