# Modul 5: Editorial Workflow

## 1. State Machine Editorial Workflow
- **submitted**: Artikel baru masuk dari Author.
- **desk_review**: Initial check oleh Journal Manager / Editor.
- **in_review**: Artikel sedang di-review oleh Reviewer.
- **revisions_required**: Editor meminta revisi (Minor/Major) kepada Author.
- **resubmitted**: Author mengirimkan file revisi.
- **accepted**: Artikel diterima dan siap untuk produksi/copyediting.
- **rejected**: Artikel ditolak.

## 2. User Flow Editor
1. **Editor/Journal Manager** masuk ke Dashboard Editorial.
2. Melihat daftar submission dengan filter status (Submitted, Desk Review, dsb).
3. Klik salah satu submission untuk masuk ke halaman detail editorial.
4. **Initial Check**: Melihat metadata, AI Review Summary, dan memutuskan apakah layak lanjut review (In Review) atau langsung reject (Desk Reject).
5. **Assign Editor/Reviewer**: Memilih editor penanggung jawab dan mengundang reviewer.
6. **Melihat Review Report**: Membaca hasil review dari Reviewer jika sudah selesai.
7. **Membuat Keputusan**: Mengisi editorial note dan memilih decision (Accept, Minor, Major, Reject). Ini akan memicu notifikasi ke author (dan mengubah status menjadi `revisions_required` jika minor/major).

## 3. User Flow Author (Revisi)
1. Author melihat status berubah menjadi `revisions_required`.
2. Masuk ke halaman detail submission, terdapat tab atau section baru "Revisions".
3. Author dapat melihat "Editorial Decision Letter" (Catatan editor & reviewer).
4. Author menyiapkan file revisi dan catatan respon (Response to Reviewers).
5. Author meng-upload file revisi melalui form dan klik "Submit Revision".
6. Status kembali menjadi `resubmitted` (atau otomatis dilanjutkan ke `in_review` kembali oleh editor).

## 10. Testing Scenario
- **Test 1**: Login sebagai Manager, pastikan submission yang berstatus 'submitted' muncul di daftar.
- **Test 2**: Manager klik "Assign Editor" dan pilih salah satu editor dari dropdown.
- **Test 3**: Manager/Editor klik "Send to Review" (ubah status ke `in_review`).
- **Test 4**: Editor mengubah decision ke "Major Revision", pastikan form revisi muncul di tampilan akun Author.
- **Test 5**: Login sebagai Author, upload revisi, pastikan tabel revisions bertambah dan status berubah menjadi `resubmitted`.
- **Test 6**: Editor membaca file revisi lalu klik "Accept", pastikan status menjadi `accepted`.
