R-006 — Anotações do cliente pertencem ao terapeuta que as escreveu

TLDR: em /api/v1/me/clients/:client_id/comments o terapeuta lista, cria, edita e exclui apenas as próprias anotações daquele cliente, sejam elas da relação terapeuta–cliente (UserClient) ou de sessões com o cliente (Meeting).

Given / When / Then

Dado que o terapeuta tem o cliente em current_user.clients (não rascunho) Quando cria uma anotação por POST /me/clients/:client_id/comments Então a anotação é gravada com commentable: UserClient e user: current_user, sem depender de sessão

Dado que existem anotações do cliente escritas pelo terapeuta e por outros participantes das sessões Quando o terapeuta lista GET /me/clients/:client_id/comments Então recebe só as próprias, do UserClient e das Meeting cujo dono é o paciente e em que o terapeuta participa, ordenadas por created_at desc

Dado uma anotação de outro autor ou de outro cliente Quando o terapeuta tenta editar ou excluir pelo pid Então recebe 404

Tabela de decisão

Situação index update/destroy
Anotação do terapeuta no UserClient aparece permitido
Anotação do terapeuta em Meeting com o paciente aparece permitido
Anotação de outro participante da sessão não aparece 404
Anotação do terapeuta para outro cliente não aparece 404
Cliente inexistente ou de outro terapeuta 404 404

Restrições

  • content é gravado como recebido (HTML do editor do front ou texto puro do painel da chamada); a sanitização acontece na exibição, no trgclub-web.
  • Não há checagem de plano PRO nas rotas; o acesso segue o padrão de /me/clients (posse do cliente).

Testes vinculados

  • spec/requests/api/v1/clients_comments_index_spec.rb
  • spec/requests/api/v1/clients_comments_create_spec.rb
  • spec/requests/api/v1/clients_comments_update_spec.rb
  • spec/requests/api/v1/clients_comments_destroy_spec.rb