wiki: documenta recorrencia da agenda + log da sessao 2026-05-11
Nova pagina [[recorrencia-agenda]] cobrindo: modelo "1 real + N-1 virtual"
via useRecurrence, quem expande virtuais (composables corrigidos em 39cf017),
pattern de materializacao ao mudar status (4 caminhos), view listAll de
2 anos no MelissaAgenda, visual de evento inativo, e query SQL pra detectar
rows orfas. index.md ganhou link sob Concepts.
Log entry da sessao 2026-05-11 10:50 cobrindo os 6 commits previos
(8b0e633..39cf017): time picker, services nome unico, paciente arquivado/
inativo, AgendaEventDialog overhaul, view lista Melissa, expansao+
materializacao de recorrencia.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -543,3 +543,61 @@ placeholders com display:contents; hide rules por breakpoint. Card de preview
|
||||
usa mag-w--side e perde fundo/borda no floating (glass do painel ja faz papel).
|
||||
ESLint 0 errors. Working tree: src/auto-imports.d.ts (auto-gerado) +
|
||||
MelissaAgendador.vue. Nao commitado, nao testado em browser ainda.
|
||||
|
||||
## [2026-05-11 10:50] session | Recorrencia: expandir + materializar + view lista
|
||||
Touched: [[recorrencia-agenda]]
|
||||
Detalhes: 6 commits criados e pushed (8b0e633..39cf017).
|
||||
|
||||
TIME PICKER do AgendaEventDialog (commit 988a4e5):
|
||||
- Header dinamico (header-dot + "Nova {commitment.name}" + subtitulo
|
||||
"Inicio da sessao e duracao"). Inicio + Termino lado a lado (Termino
|
||||
readonly via fimDateTime). Card destacado de Termino removido.
|
||||
- Picker virou DataTable (.aed-patient-dt) + Tags Arquivado/Inativo + sort
|
||||
Ativo>Inativo>Arquivado.
|
||||
- Cadastro completo INLINE via PatientCadastroDialog (botao pi-id-card)
|
||||
em vez de redirecionar pra rota nova — nao vaza do layout Melissa.
|
||||
Usa prop hideViewListButton adicionada antes pra esconder "Salvar e
|
||||
ver pacientes".
|
||||
- Mini calendar (.mc-mini) no time picker; chips de duracao rapida
|
||||
(30/50/60/90m); cards .aed-card; popovers de ajuda.
|
||||
|
||||
EXPANSAO DE RECORRENCIA cross-layout (commit 39cf017): 3 composables
|
||||
compartilhados ganharam loadAndExpand — antes so AgendaTerapeutaPage
|
||||
e AgendaClinicaPage expandiam, deixando widgets do Melissa com 1 sessao
|
||||
de uma serie de 4. usePatientSessions.load (range -6mo a +12mo, filtra
|
||||
por patient_id), useMelissaEventos._fetchRange (range visivel),
|
||||
useMelissaTodasSessoesPaciente.fetch. normalizeEvent aceita shape de
|
||||
virtual (paciente_nome/patient_name) alem de joined query.
|
||||
|
||||
MATERIALIZACAO em 4 caminhos: UPDATE em id virtual "rec::..." quebrava
|
||||
com "invalid input syntax for type uuid". Corrigido em
|
||||
usePatientSessions.updateStatus (aceita row inteira, materializa),
|
||||
useAgendaEventActions watcher (emit updateSeriesEvent com row),
|
||||
MelissaLayout.updateEventoStatus (detecta virtual, delega passando
|
||||
row: ev — sem isso dialogEventRow ficava vazio e criava row orfa sem
|
||||
patient_id), MelissaPaciente wire-up (@updateSeriesEvent aponta pro
|
||||
handler certo agora), useMelissaAgenda.onUpdateSeriesEvent (aceita row
|
||||
do chamador, guard contra rid null, error check no maybeSingle).
|
||||
|
||||
VIEW LISTA MelissaAgenda (commit 279b4f7): listWeek -> custom listAll
|
||||
(duration { years: 2 }, centrada via gotoDate(hoje - 1 ano)). Banner
|
||||
showRecurrenceHint aparece em day/week/month com botao "Ver na lista".
|
||||
Sticky day header (.fc-list-day) com z-index 3 + bg opaco — antes
|
||||
.fc-event passava por cima conforme scroll. View toggle dos botoes
|
||||
manuais -> PrimeVue SelectButton.
|
||||
|
||||
VISUAL EVENTO INATIVO: classNames=['ma-evt--inactive-patient'] em
|
||||
fcEvents quando paciente_status === Arquivado|Inativo (borda tracejada
|
||||
+ opacidade 0.58 + italico em list view). useAgendaEventPickerBilling
|
||||
+ AgendaEventDialogV2: picker mostra TODOS os pacientes ordenados
|
||||
Ativo>Inativo>Arquivado, nao-Ativos com Tag colorida + disabled +
|
||||
tooltip. selectPaciente bloqueia non-Ativo (defesa em camadas, 3
|
||||
specs novas).
|
||||
|
||||
OUTROS: services nome unico por owner (case-insensitive); FC touch
|
||||
defaults centralizados em src/features/agenda/utils/fcDefaults.js
|
||||
aplicado em 4 calendars; props hideViewListButton em
|
||||
ComponentCadastroRapido + PatientCadastroDialog pra uso in-flow.
|
||||
|
||||
Database backup gerado: backups/2026-05-11/ (138 tabelas, 141 FKs).
|
||||
Dashboard regenerado.
|
||||
|
||||
Reference in New Issue
Block a user