feat(rapor): aylık değerlendirme raporu backend (şablon, yorumlar, öneriler)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-13 21:36:43 +03:00
parent b974525cf6
commit dc0d783e46
14 changed files with 1772 additions and 3 deletions
+192
View File
@@ -0,0 +1,192 @@
{#
Aylık değerlendirme raporu (Kakeibo). Değerler `backend/src/services/monthly_report.rs`'ten gelir;
hesap ve cümleler orada, burada yalnızca düzen var. Filtreler: `tl` (kuruş → 1.250,00 ₺),
`pct` (oran → %84), `cell` (tablo hücresi için kaçış).
#}
# {{ title }} — Aylık Değerlendirme
{{ range }} · {{ status_line }} · {{ household }}
{% if interim %}
> **Ara rapor:** dönem sürüyor; rakamlar bugüne kadarki kayıtlardan.
{% endif %}
## 1. Bir bakışta
> {{ headline }}
{% if prev_name %}
| Kakeibo'nun 4 sorusu | Bu dönem | {{ prev_name | cell }} |
|---|---:|---:|
{% for q in questions %}
| {{ q.label }} | {{ q.now | tl }} | {{ q.prev | tl }} |
{% endfor %}
{% else %}
| Kakeibo'nun 4 sorusu | Bu dönem |
|---|---:|
{% for q in questions %}
| {{ q.label }} | {{ q.now | tl }} |
{% endfor %}
{% endif %}
## 2. Ne yaptım?
### Gruplar
| Grup | Bütçe | Harcanan | Kalan | Kullanım |
|---|---:|---:|---:|---:|
{% for g in groups %}
| {{ g.emoji }} {{ g.label }} | {{ g.planned | tl }} | {{ g.spent | tl }} | {{ g.left | tl }} | {{ g.mark }} {{ g.usage | pct }} |
{% endfor %}
| **Toplam** | **{{ totals.planned | tl }}** | **{{ totals.spent | tl }}** | **{{ totals.left | tl }}** | {{ totals.usage | pct }} |
✅ bütçenin %90'ına kadar · ⚠️ %90–100 · ❌ bütçe aşıldı
{% if top %}
### En çok harcadığın kategoriler
{% if avg_n %}
| Kategori | Tutar | İşlem | Pay | Ortalamaya göre ({{ avg_n }} dönem) |
|---|---:|---:|---:|---:|
{% for c in top %}
| {{ c.emoji }} {{ c.name | cell }} | {{ c.spent | tl }} | {{ c.count }} | {{ c.share | pct }} | {{ c.change }} |
{% endfor %}
{% else %}
| Kategori | Tutar | İşlem | Pay |
|---|---:|---:|---:|
{% for c in top %}
| {{ c.emoji }} {{ c.name | cell }} | {{ c.spent | tl }} | {{ c.count }} | {{ c.share | pct }} |
{% endfor %}
{% endif %}
{% endif %}
### Haftalar
| Hafta | Günler | Bütçe | Harcanan | Kullanım |
|---|---|---:|---:|---:|
{% for w in weeks %}
| {{ w.index }}. hafta | {{ w.range }} | {{ w.planned | tl }} | {{ w.spent | tl }} | {{ w.mark }} {{ w.usage | pct }} |
{% endfor %}
{% for line in activity %}
- {{ line }}
{% endfor %}
{% if methods %}
### Ödeme türleri
| Ödeme türü | Tutar | Pay |
|---|---:|---:|
{% for m in methods %}
| {{ m.name | cell }} | {{ m.spent | tl }} | {{ m.share | pct }} |
{% endfor %}
{% endif %}
{% if savings %}
### Birikim
{% for line in savings %}
- {{ line }}
{% endfor %}
{% endif %}
## 3. Neler iyi gitti?
{% for line in good %}
- {{ line }}
{% else %}
- Bu dönem öne çıkan bir olumlu fark yok; 7. bölümdeki küçük adımlarla başlayabilirsin.
{% endfor %}
## 4. Neler zorladı?
{% for line in hard %}
- {{ line }}
{% else %}
- Belirgin bir zorlanma yok: bütçe ve birikim planın içinde.
{% endfor %}
## 5. Ne yapılabilirdi?
{% for line in could %}
- {{ line }}
{% else %}
- Rakamlar zaten planın içinde; aynı düzeni korumak yeterli.
{% endfor %}
## 6. Ne yapmalıydım? — kendi notların
{% if plan_notes %}
### Ay başında yazdıkların
{% for n in plan_notes %}
#### {{ n.title }}
{{ n.body }}
{% endfor %}
{% endif %}
{% if reflection or review_notes %}
### Ay sonunda yazdıkların
{% if reflection %}
#### Nasıl daha iyi yapabilirim?
{{ reflection }}
{% endif %}
{% for n in review_notes %}
#### {{ n.title }}
{{ n.body }}
{% endfor %}
{% endif %}
{% if not plan_notes and not reflection and not review_notes %}
_Bu dönem için not yazılmamış. Kakeibo'nun özü bu kısım: Değerlendirme sayfasındaki “Nasıl daha iyi yapabilirim?” alanına birkaç cümle yazmak bir sonraki ayı en çok değiştiren adımdır._
{% endif %}
## 7. Gelecek dönem için
### Önerilen bütçe
| Grup | Öneri | Dayanak |
|---|---:|---|
{% for s in suggestions %}
| {{ s.emoji }} {{ s.label }} | {{ s.amount | tl }} | {{ s.basis }} |
{% endfor %}
| **Toplam** | **{{ suggestion_total | tl }}** | |
{% if suggestion_note %}
{{ suggestion_note }}
{% endif %}
### Somut adımlar
{% for line in steps %}
{{ loop.index }}. {{ line }}
{% endfor %}
{% if carry %}
**Devir:** {{ carry }}
{% endif %}
### Kendi hedeflerin
- [ ] ______________________________________
- [ ] ______________________________________
- [ ] ______________________________________
{% if categories %}
## Ek: Tüm kategoriler
| Grup | Kategori | Tutar | İşlem | Pay |
|---|---|---:|---:|---:|
{% for c in categories %}
| {{ c.group }} | {{ c.emoji }} {{ c.name | cell }} | {{ c.spent | tl }} | {{ c.count }} | {{ c.share | pct }} |
{% endfor %}
{% endif %}
---
<small>Nasıl hesaplandı: Kalan = bütçe − harcanan. Ortalamalar, bu dönemden önceki en fazla 3 kapalı ya da arşiv dönemden. “İyi gitti / zorladı” için grup bütçesinin %90 ve %100'ü, kategorilerde ortalamaya göre en az %20 ve 250 ₺ fark aranır. Önerilen bütçe: son en fazla 4 dönemin ortalama harcaması, 50 ₺'ye yuvarlanmış. Rapor tarihi: {{ generated_on }}.</small>