Skip to main content
PATCH
Define o nome e o endereço do club no classroom

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.

Body

application/json

Ao menos um campo. slug define o endereço exatamente; name renomeia o club e, na falta de slug, é a semente de um endereço derivado. A marca (logo_media_id, favicon_media_id, login_image_media_id), a cor (accent_color) e o suporte (support_email, support_phone) e o tema (theme, member_theme_choice) valem sozinhos e não tocam o endereço. Nulo tira; ausente mantém.

logo_media_id
string<uuid> | null

A marca do club, da biblioteca de mídia. Nulo tira a marca.

favicon_media_id
string<uuid> | null

O ícone da aba do navegador no classroom — uma imagem da biblioteca, de preferência quadrada. Nulo volta ao ícone padrão.

login_image_media_id
string<uuid> | null

A imagem das telas de entrada do classroom — uma imagem da biblioteca. Nulo deixa a tela só com o formulário.

support_email
string | null

O e-mail de suporte ao aluno. Nulo (ou em branco) tira o contato.

Maximum string length: 254
theme
enum<string>

O tema base da área do aluno — o que vale para quem não escolheu outro (ou para todos, sem member_theme_choice).

Available options:
light,
dark
member_theme_choice
boolean

Libera (ou tira) a troca de tema pelo aluno.

support_phone
string | null

O telefone de suporte ao aluno, escrito como o club quiser mostrá-lo: dígitos, espaço, +, -, ( e ). Nulo (ou em branco) tira o contato.

Maximum string length: 32
accent_color
string | null

A cor do club no classroom, em hex de seis dígitos. Nulo volta à cor do classroom. Como a marca, vale sozinha no corpo.

Pattern: ^#[0-9a-fA-F]{6}$
slug
string

Rótulo de DNS: minúscula, dígito e hífen, sem hífen nas pontas. Nomes que o produto reserva são recusados com o mesmo código de um slug mal formado — dizer qual é reservado entregaria a lista.

Required string length: 1 - 63
name
string

O nome do club. Sem slug no corpo, é dele que o endereço derivado sai — renomear sozinho troca o endereço junto.

Required string length: 1 - 200

Response

Endereço gravado

data
object
required

O escopo do domínio: o club. Tudo que o produto cria pertence a um.