# Faz 3 Teslim Özeti

Tarih: 24 Ağustos 2026

## Tamamlanan işler

- Kurum kapsamlı belge kategorileri, belge talepleri ve çalışan belgeleri.
- Dosyaların public dizin dışında saklanması; yetkili indirme, dosya türü/boyut doğrulaması ve değiştirilebilir tarama servisi.
- Belge sürümü, imza durumu, geçerlilik tarihi ve yükleyen kullanıcı takibi.
- Süresi 30 gün içinde dolacak belgeler için günlük uygulama içi/e-posta bildirim görevi.
- İzin türleri, çalışan/yıl bazlı hak ediş ve açıklaması zorunlu bakiye hareketleri.
- Tam gün, yarım gün ve saatlik izin; hafta sonu/resmi tatil hesabı ve çakışma kontrolü.
- Tek adımlı seri İK onayı, onay/ret geçmişi ve yalnız nihai onayda bakiye düşümü.
- Yerine bakacak kişi seçimi ve onay sonrası bildirim altyapısı.
- Aylık, haftalık, günlük ve liste görünümlü kurum takvimi.
- Onaylı izinler, resmi tatiller ve kurum etkinliklerinin takvimde birleştirilmesi.
- Uygulama içi bildirim merkezi ve SMTP e-posta gönderimi.
- Dashboard üzerinde bekleyen izin ve süresi yaklaşan belge verileri.

## Başlıca değişen dosyalar

- `database/migrations/2026_08_24_000004_create_documents_leaves_and_calendar_tables.php`
- `app/Models/*Document*.php`, `app/Models/Leave*.php`, `app/Models/PublicHoliday.php`, `app/Models/CalendarEvent.php`
- `app/Http/Controllers/DocumentController.php`
- `app/Http/Controllers/LeaveController.php`
- `app/Http/Controllers/CalendarController.php`
- `app/Services/LeaveDurationCalculator.php`
- `app/Services/LeaveWorkflowService.php`
- `app/Services/LeaveBalanceService.php`
- `app/Contracts/FileScanner.php`
- `resources/views/documents/*`, `resources/views/leaves/*`, `resources/views/calendar/*`
- `tests/Feature/DocumentManagementTest.php`
- `tests/Feature/LeaveManagementTest.php`

## Kurulum ve doğrulama

```powershell
& 'C:\xampp82\php\php.exe' artisan migrate:fresh --seed
npm.cmd run build
& 'C:\xampp82\php\php.exe' artisan test
```

Son doğrulama sonucu: **45 test, 136 assertion başarılı.**

Belge süre bildirimini elle çalıştırmak için:

```powershell
& 'C:\xampp82\php\php.exe' artisan documents:notify-expiring
```

## Üretim notu

`BasicFileScanner` yalnız yerel güvenlik/boyut kontrolüdür. Üretimde `App\Contracts\FileScanner` için ClamAV veya seçilecek servis sağlayıcısı adaptörü bağlanmalıdır.

## Sonraki faz

Faz 4: çalışma takvimleri, puantaj dönemleri ve kayıtları, tatil/izinlerin otomatik puantaja aktarılması, toplu işlemler ve raporlar.
