87 lines
9.3 KiB
Plaintext
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|