obsidian-vault/Infra-Network/SPEC-SESSION-2026-09-14.md

39 lines
1.4 KiB
Markdown

# SPEC — Session 2026-09-14 (Rently / RentCharge)
**Status:** implemented · **Operador:** Roger
**Ambientes:** test + prod (frontend partilhado)
---
## Alterações do dia
### QuickPost modal
- **Cash Sale** — layout fiel ao mockup (âmbar); modal shell 920px
- **Credit Settlement** — UI mockup (azul), last 10 Credit Book history, `transaction_id` (`CT-`/`CR-`), balance after, Posted by; live over-settlement
- **Credit Sale** — UI mockup (vermelho), impact R-CB03 (consumo over-settlement), recent charges last 8 weeks, footer info
### Backend ledger
- Coluna `service_ledger_entries.transaction_id` + backfill
- `GET /api/residents/{id}/credit-book` → `balance_after` + `transaction_id`
### Residents KPI header
- Novo bloco visual (mockup KPI) em **`/people`** e **`/residents`**
- Clique filtra: All / Current / Up to date / Arrears / Former
- Lógica de contagem inalterada (`paymentStatus` + NP)
### Ficheiros principais
- `frontend/src/components/QuickPostModal.tsx`
- `frontend/src/components/residents/ResidentsKpiHeader.tsx`
- `frontend/src/app/people/page.tsx`
- `frontend/src/app/residents/page.tsx`
- `frontend/src/app/globals.css`
- `backend/app/database.py`, `services/ledger.py`, `modules/ledger/router.py`
- `frontend/src/lib/api.ts`
## Versão
**005.2026** — 2026-09-14
## Deploy
- `npm run build` frontend
- restart `rentcharge-frontend` + `rentcharge-test-frontend`
- backends se schema transaction_id (init_db)