# Story 3.3: Payroll Cycle Read API key: 3-3-payroll-cycle-read-api status: drafted phase: backend-planning note: Non-implementasi — kontrak read-only periode payroll. ## Ringkasan Endpoint read-only untuk membaca daftar siklus payroll guna referensi admin & proses ekspor. ## Scope Backend - Read list: cycles dengan field inti { cycleId, periodStart, periodEnd, status, exportStatus } - Query params: `page`, `pageSize`, `status`, `period` - Sorting: disepakati saat kontrak (opsional) ## Acceptance Gate - Struktur periode payroll disetujui - Konsistensi relasi data diverifikasi ## Kontrak (Outline) - Route: GET /api/payroll/cycles - Response: 200 ``` { "page":1, "pageSize":20, "total":2, "items":[{"cycleId":"pc-2025-11","periodStart":"2025-11-01","periodEnd":"2025-11-30","status":"open","exportStatus":"not-started"}] } ```