Proje: OkulUp API · Hub: OkulUp API — Architecture
OkulUp API — Rapor Export Sistemi
Genel Akış
- Kullanıcı export endpoint’ini çağırır (attendance veya payment)
ExportService::generateCsvExport()CSV üretir ve local disk’e kaydederReportExportkaydı oluşturulur (status: completed, 24 saat expiry)- Client daha sonra
GET /reports/exports/{id}/downloadile indirir
ExportService
generateCsvExport(
User $user,
ReportType $reportType,
array $headers,
array $rows,
string $filenamePrefix,
array $filters = [],
): ReportExport- Storage:
localdisk (S3 değil),exports/{userId}/klasörü - Dosya 24 saat sonra expire eder (
expires_at) - CSV build: headers + rows array’i, quote + escape
ReportType Enum
StudentAcademicSummary
StudentAcademicSummaryExport
AttendanceReport
PaymentReportEndpoint’ler
| Method | Path | Feature Flag |
|---|---|---|
| GET | /reports/exports | — |
| GET | /reports/exports/attendance | attendance_reports |
| GET | /reports/exports/payment | payment_summary |
| GET | /reports/exports/{id}/download | — |
Named Route
/reports/exports/{id}/download → api.exports.download (named route)
Yetki
- Admin/Manager: okul geneli
- Teacher: sadece kendi sınıfları (attendance export)
ReportExportPolicy::exportAttendanceile kontrol
Related
- sistem-genel-bakis — genel mimari
- akademik-ozet-raporu — student academic export
- feature-flag-sistemi — attendance_reports, payment_summary