Skip to main content
POST
Cria uma turma

Authorizations

Authorization
string
header
required

Token OPACO de sessão de quem administra, emitido por /v1/auth/admin/sign-in e verificado contra a nossa tabela — o mesmo desenho do studentSession, para a outra identidade.

É o esquema de quem ADMINISTRA — o dashboard. O aluno do classroom usa o studentSession; uma rota consumida pelos dois declara os dois esquemas, e o middleware aceita qualquer um deles. As duas credenciais são opacas e chegam pelo mesmo cabeçalho: quem as separa é a tabela em que cada uma existe.

O dashboard o guarda em cookie httpOnly, que o BFF troca pelo Authorization a cada chamada.

Path Parameters

clubId
string<uuid>
required

Id público da organização — o mesmo que GET /v1/me devolve em organization_id.

Na URL o recurso se chama club; no contrato e no domínio, organization. A divergência é deliberada: clubs é a palavra do produto, e a URL é o que as pessoas leem.

É o identificador do provedor de autenticação, e é assim de propósito: o cliente precisa nomear a organização ao pedir o token, e o token é o que prova o escopo. Um id só nosso obrigaria a traduzir um no outro antes de ter um token — e a tradução exigiria uma chamada escopada, que é justamente a que ainda não dá para fazer.

O uuid interno da organização não aparece no contrato: ele é o que as chaves estrangeiras do domínio referenciam, e continua sendo nosso.

deliveryId
string<uuid>
required

Body

application/json
name
string
required
Required string length: 1 - 200
starts_at
string<date-time>
required
ends_at
string<date-time>
required
admission
enum<string>
default:window

Como se entra na turma. window: pela data de pagamento, dentro da janela de matrícula. offer: pelos códigos de oferta reivindicados, sem janela — é o que permite turmas simultâneas.

Available options:
window,
offer
enrolls_from
string<date-time>

Obrigatório na admissão por janela; proibido na por oferta.

enrolls_until
string<date-time>
offers
object[]

Obrigatório (ao menos uma) na admissão por oferta.

access
enum<string>
default:until_end

Como a janela de acesso de quem entra é calculada. until_end vai até ends_at; days_from_start conta access_days de starts_at; days_from_enrollment conta de quando a pessoa entrou.

Available options:
lifetime,
until_end,
days_from_start,
days_from_enrollment
access_days
integer

Obrigatório nos modos que contam dias; ignorado nos outros.

Required range: x >= 1
bonus_deliveries
object[]

Response

Turma criada

data
object
required