> ## Documentation Index
> Fetch the complete documentation index at: https://docs.toolzz.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Criar Turmas

> Com este endpoint, é possível vincular uma turma a uma escola, definir seu tipo, código e título, além de associá-la a grupos, subgrupos e especialidades.

## Parâmetros

<ParamField body="schoolId" type="string" required>
  O identificador da escola à qual a turma será associada.
</ParamField>

<ParamField body="type" type="string" required>
  O tipo de turma a ser estabelecida, que pode ser baseada na filtragem de grupos, subgrupos e especialidades.
</ParamField>

<ParamField body="code" type="string" required>
  Código da turma: identificador único com 1 a 10 caracteres.
</ParamField>

<ParamField body="title" type="string" required>
  Título da turma: descrição em formato string com até 255 caracteres.
</ParamField>

<ParamField body="group" type="array">
  Grupos: conjunto de identificadores dos grupos relacionados à turma. Obrigatório se o parâmetro `type` for `FILTER`.
</ParamField>

<ParamField body="subgroups" type="array">
  Subgrupos: conjunto de identificadores dos subgrupos associados à turma. Obrigatório se o parâmetro `type` for `FILTER`.
</ParamField>

<ParamField body="specialties" type="array">
  Especialidades: conjunto de identificadores das especialidades vinculadas à turma. Obrigatório se o parâmetro `type` for `FILTER`.
</ParamField>

<ParamField body="contents" type="array">
  Conteúdos exclusivos. Obrigatório quando o parâmetro `type` for `EXCLUSIVE_CONTENT`.
</ParamField>

<ParamField body="registration_start_date" type="string">
  Data de início das inscrições.
</ParamField>

<ParamField body="registration_end_date" type="string">
  Data de término das inscrições.
</ParamField>

<Warning>Este endpoint funcionará corretamente apenas se o domínio da sua instituição for informado manualmente na URL, caso contrário, o endpoint poderá falhar ou retornar um erro de validação.</Warning>

## Descrição da Resposta

Abaixo está um exemplo da resposta retornada por este endpoint.

<ResponseField name="success" type="boolean">
  Indica se a requisição foi bem-sucedida.
</ResponseField>

<ResponseField name="data" type="object">
  Detalhes da turma criada.

  <Expandable title="properties">
    <ResponseField name="id" type="number">
      Identificador único da turma.
    </ResponseField>

    <ResponseField name="schoolId" type="string">
      Identificador da escola associada.
    </ResponseField>

    <ResponseField name="title" type="string">
      Título da turma.
    </ResponseField>

    <ResponseField name="code" type="string">
      Código da turma.
    </ResponseField>

    <ResponseField name="image" type="string">
      URL da imagem da turma (pode ser nula).
    </ResponseField>

    <ResponseField name="course" type="string">
      Nome do curso associado (pode ser nulo).
    </ResponseField>

    <ResponseField name="group" type="array">
      Lista de grupos associados à turma.

      <Expandable title="items">
        <ResponseField name="id" type="number">
          Identificador único do grupo.
        </ResponseField>

        <ResponseField name="name" type="string">
          Nome do grupo.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="subgroups" type="array">
      Lista de subgrupos associados à turma.

      <Expandable title="items">
        <ResponseField name="id" type="number">
          Identificador único do subgrupo.
        </ResponseField>

        <ResponseField name="name" type="string">
          Nome do subgrupo.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="specialties" type="array">
      Lista de especialidades associadas à turma.

      <Expandable title="items">
        <ResponseField name="id" type="number">
          Identificador único da especialidade.
        </ResponseField>

        <ResponseField name="name" type="string">
          Nome da especialidade.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="trails" type="array">
      Lista de trilhas associadas à turma.
    </ResponseField>

    <ResponseField name="contents" type="array">
      Lista de conteúdos associados à turma.
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      Data e hora de criação da turma.
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      Data e hora da última atualização da turma.
    </ResponseField>
  </Expandable>
</ResponseField>

## Segurança

Para acessar este endpoint, é necessário enviar um token de acesso válido através do cabeçalho de autorização (`Authorization`) da requisição. Além disso, a API é protegida por outras medidas de segurança para garantir a proteção dos dados dos usuários.
