Files
agenciapsilmno/Debugs/agenda-terapeuta-debug.txt
2026-03-12 08:58:36 -03:00

87 lines
9.3 KiB
Plaintext

Debug Agenda
Funcionando :
- Cadastrar compromisso do tipo Sessão, ok
- Editar compromisso do tipo Sessão, ok
- Trocar Valor do compromisso do tipo sessão, ok
- Ajustar horário arrastando do compromisso do tipo sessão, ok
- Cada compromisso exibe sua cor própria ao ser adicionado na agenda, ok
- Ao Atualizar as cores na Sessão de Compromissos, elas são ajustadas na agenda também, ok
- Status [Agendado, Realizado, Faltou, Cancelado e Remarcar] Todos estão funcionando, ok
- O criar compromisso do tipo sessão está trazendo o valor padrão das configuraçãoes, ok
- O editar está salvando o novo valor informado, ok
- Modalidade [Presencial, Online] está sendo salva ao editar, ok
- Ajuste de Mensagem : "Conflito com X às HH:MM" não é do samePatientConflict : Encontrei o bug. Na timeConflict (linha 1785), a exclusão do evento atual usa form.value.id — mas ocorrências virtuais têm id: null, então nunca são excluídas. A ocorrência fica conflitando consigo mesma.
Causa: ocorrências virtuais têm id: null, então if (form.value.id && ...) nunca excluía a própria ocorrência da checagem — ela conflitava consigo mesma. Agora, para ocorrências virtuais, a exclusão é feita pelo par recurrence_id + original_date.
- Adição de Recorrencia, ok
- Remoção de reorrencia, ok
- Remoção de recorrencias futuras, ok
- Remoção de todas as recorrencias, mantendo o compromisso raiz (inicial), ok
- Adicionado Confirmação de remoção e frase de efeito, ok
- "Todos os agendamentos futuros da série serão removidos permanentemente. Esta sessão será mantida como avulsa. Esta ação é irreversível."
- "A série foi encerrada. Esta sessão foi mantida como avulsa."
Bugs conhecidos corrigidos :
Feito. Resumo dos 4 fixes:
┌──────┬─────────────────────────────────────────┬───────────────────────────────────────────────────────────────┐
│ # │ Problema │ Solução │ ├──────┼─────────────────────────────────────────┼───────────────────────────────────────────────────────────────┤
│ Bug │ Recorrência em evento existente → só │ Removida condição !id — agora cria a regra e vincula o evento │ │ 1 │ fazia update │ existente │
├──────┼─────────────────────────────────────────┼───────────────────────────────────────────────────────────────┤
│ Bug │ Botão de lixeira some quando form.id é │ Substituído por botão "Encerrar série" para hasSerie, lixeira │
│ 2a │ null (virtual) │ simples para eventos avulsos │
├──────┼─────────────────────────────────────────┼───────────────────────────────────────────────────────────────┤
│ Bug │ X das pills some para sessões │ Removida restrição v-if="!isPast" — X sempre visível │
│ 2b │ passadas/canceladas │ │
├──────┼─────────────────────────────────────────┼───────────────────────────────────────────────────────────────┤
│ Bug │ Sem confirmação ao encerrar série pelo │ onEncerrarSerie() com confirm.require() e aviso de │
│ 2c │ botão novo │ irreversibilidade │
└──────┴─────────────────────────────────────────┴───────────────────────────────────────────────────────────────┘
- Dots (mini-day-dot) adicionados em todos os dias que possuem compromissos, ok
Corrigido também na AgendaClinicaPage:
┌────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────┐
│ Fix │ O que foi feito │ ├────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ Mini-day-dot │ loadMiniMonthEvents agora itera sobre todos os ownerIds da clínica chamando │ │ │ loadAndExpand para incluir ocorrências virtuais de recorrência │
├────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ 'todos' delete │ Mantém sessão atual como avulsa antes de cancelar a regra (igual ao terapeuta, usando │
│ │ createClinic/updateClinic) │
├────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ Recorrente em evento │ Removida condição !id, cria a regra e vincula evento via updateClinic │
│ existente │ │
├────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ ConfirmDialog │ Adicionado <ConfirmDialog /> na página para as confirmações funcionarem corretamente │
└────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────┘
Quando adiciona um compromisso na agenda e não aparece :
1. Join FK errada (!determined_commitment_id → !agenda_eventos_determined_commitment_fk) em ambos
agendaClinicRepository.js e useAgendaEvents.js — esse era o bug principal. O Supabase usava o nome do constraint FK (agenda_eventos_determined_commitment_fk), não o nome da coluna. A query estava falhando silenciosamente, mantendo
rows.value no estado anterior (vazio na primeira carga). 2. modalidade ausente do pickDbFields — adicionado para não perder a modalidade selecionada pelo usuário.
3. Toast de erro após _reloadRange — agora, se o reload falhar, um warning aparece em vez de mostrar sucesso sem
eventos.
Para colorir o background dos compromissos :
Pronto. Adicionei eventContent no buildFcOptions do AgendaClinicMosaic — mesmo código do AgendaTerapeutaPage — com
avatar (foto ou iniciais), horário, título e observações. O CSS foi adicionado em bloco não-scoped para que o HTML
injetado pelo FullCalendar seja estilizado corretamente.
As cores dos compromissos já chegavam via backgroundColor no mapper (tanto para o terapeuta quanto para a clínica), o
que estava faltando era o eventContent customizado que dá o mesmo visual.