Skip to main content
POST
Abre uma sessão em grupo, ou marca uma individual

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.

mentorshipId
string<uuid>
required

Body

application/json
format
enum<string>
required
Available options:
individual,
group
starts_at
string<date-time>
required
duration_minutes
integer

Ausente usa a duração da mentoria.

Required range: 15 <= x <= 480
mentor_user_id
string<uuid>

Quem conduz. Ausente é quem está na sessão, se atende a mentoria.

student_id
string<uuid>

Obrigatório na individual; não existe na em grupo.

title
string

Obrigatório na em grupo.

Required string length: 1 - 120
capacity
integer

Só na em grupo.

Required range: 1 <= x <= 500
consumes_credit
boolean
default:true
meeting
enum<string>

Onde o encontro acontece: room é a sala nossa (entra-se por join); link é o endereço de fora em meeting_url.

Available options:
room,
link
meeting_url
string

Com meeting link (e ausente, herda o do perfil). Precisa começar com https://.

Maximum string length: 500
record
boolean
default:false

Grava o encontro na sala nossa.

agenda
string

A pauta, na individual.

Maximum string length: 2000

Response

A sessão

data
object
required