Treinadores
listAdminCoachProfiles()Staff ativo em todas as organizações — papéis de organização e de equipa agregados por pessoa.
| Nomeuser.name | Emailuser.email | OrganizaçõesorganizationNames | EquipasteamNames | JogadoresplayerCount | PlanosplanCount |
|---|
Jogadores
listAdminPlayers()Toca num jogador para veres só os planos dele na secção abaixo.
| NomedisplayName | Organizaçãoorganization.name | Equipateam.name | PlanosplanCount |
|---|
Planos alimentares
listAdminMealPlans({ limit, subjectId })| Planoid | SemanaweekStartDate | Estadostatus | Jogadorsubject.displayName | Equipateam.name | RefeiçõesmealCount | AtualizadoupdatedAt | RunlatestRun.id · latestRun.status |
|---|
Convidar treinador
actions.inviteCoach
Novo convite
Cria um convite Google para um treinador entrar num novo espaço de equipa. O email é enviado através do outbox da app.
coachInvitationUrl
Estado do email: emailStatus
Se o email não aparecer, verifica spam, lixo ou promoções. O link acima também pode ser partilhado diretamente.
Observações
- NOVONão há lista de convites pendentes — teamInvitations (pending/expired/revoked) existe no schema mas não aparece nesta vista; não dá para reenviar ou revogar um convite já criado.
- NOVOA tabela de treinadores agrega organizações/equipas por nome, mas não mostra o papel exato por equipa (head_coach vs. assistente vs. nutricionista).
- NOVOConvidar treinador cria sempre uma organização/equipa nova a partir do texto escrito — não há forma de escolher uma equipa já existente na lista.
- NOVOmealPlans.version existe no schema mas não é devolvido por buildAdminMealPlanRecord — não é possível ver a versão do plano aqui.
- NOVOSem paginação na UI, mesmo com o loader a limitar a 100/250 planos (100 sem filtro, 250 com jogador selecionado).
- NOVOBug real encontrado: planStatusPt (display-labels-i18n.ts) não tem entrada para active — a app real mostra o inglês "active" sem traduzir no ecrã pt-PT. Esta maqueta já usa "ativo" (correção sugerida).
Dados inventados para esta maquete. «campos» revela o campo real do loader por trás de cada elemento; «tema» troca claro/escuro.