first commit

This commit is contained in:
2026-07-06 20:16:00 +02:00
commit 352e6d9e22
147 changed files with 12242 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
# Quality Risks
**Aktualizacja:** 2026-07-06 (post-apply Plan 2 — degraded)
## Zaakceptowane świadomie
- **Kopiowanie wzorców zapytań** z `OperationModel` do `InvOperationModel`/`ValuationModel` (filtered/join). Osobna domena (brak type income/expense, dochodzą wyceny) — nie konsolidować w bazowy model, kod krótki.
- **Format kwoty** `number_format(...,2,',',' ').' zł'` powtórzony w widokach jako lokalna funkcja `$fmt`. Trywialny, świadomie nie wydzielony do helpera (YAGNI).
## Rozwiązane
- Zarobek netto: jedno źródło prawdy `InstrumentModel::withStats` (`net_invested`, `profit`, `percent`); nie liczony w widokach.
- Typ operacji inwestycyjnej: ENUM `deposit|withdraw` w DB + walidacja `in_list` w modelu + sanity w kontrolerze.
- Integralność: FK RESTRICT na `inv_operations`/`inv_valuations`.
## Odłożone
- Pełna indeksacja `codebase-memory-mcp``$paul-map-codebase`.
- jscpd/ast-grep — wyłączone polityką w `config.md` (skan on-demand).
## Do obserwacji
- `portfolioTimeline` liczony w PHP O(daty × operacje) — trywialne przy ręcznych wycenach; przy dużej liczbie wpisów rozważyć agregację SQL.