Skip to content

Chore/ev5 1 s2 s3 s4 approval flows and steps - #71

Merged
hanchan-dev merged 4 commits into
devfrom
chore/ev5-1-s2-s3-s4-approval-flows-and-steps
Sep 4, 2026
Merged

Chore/ev5 1 s2 s3 s4 approval flows and steps#71
hanchan-dev merged 4 commits into
devfrom
chore/ev5-1-s2-s3-s4-approval-flows-and-steps

Conversation

@hanchan-dev

Copy link
Copy Markdown
Member

Summary

Implementasi rangkaian fitur EV5-1-S2, EV5-1-S3, dan EV5-1-S4 untuk mendukung konfigurasi approval flow pada sistem.

Perubahan mencakup pembuatan Approval Flows, Flow Steps, serta Seeder dan backfill Letter Types yang saling terhubung sesuai dependency dan TDD.

Selain itu, implementasi mengikuti pattern arsitektur Controller → Service → Repository → Model agar query dan business logic tidak dilakukan langsung di Controller.

Jira Ticket

Ticket: EV5-1-S2, EV5-1-S3, EV5-1-S4

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Documentation update
  • Configuration change

Changes Made

  • Menambahkan fitur Approval Flows (approval_flows) beserta migration, model, repository, service, controller, request validation, dan endpoint GET/POST /approval-flows.
  • Menambahkan fitur Flow Steps (flow_steps) untuk mengatur tahapan approval pada setiap flow, termasuk endpoint PUT /approval-flows/{id}/steps.
  • Menambahkan validasi Flow Steps, termasuk validasi approver_position, step_order unik, minimal satu is_final=true, serta penolakan posisi rw dan kadus.
  • Menerapkan pattern Controller → Service → Repository → Model, dengan operasi database dan transaction ditangani oleh Repository.
  • Menambahkan ApprovalFlowSeeder untuk membuat 4 kategori dan default approval flow beserta steps-nya.
  • Menambahkan migration alter letter_types untuk category_id dan flow_id, termasuk proses backfill dari data existing.
  • Melakukan patch pada model LetterType tanpa menghilangkan field existing, serta menambahkan relasi category() dan flow().
  • Menambahkan dan memperbaiki unit/feature test untuk Repository, Service, Flow Steps, Seeder, dan migration backfill.

How to Test

  1. Checkout branch PR dan pastikan dependency sudah ter-install:

    composer install
  2. Jalankan migration:

    php artisan migrate:fresh
  3. Jalankan seeder Approval Flow:

    php artisan db:seed
  4. Jalankan seluruh test:

    php artisan test
  5. Pastikan test terkait Approval Flow, Flow Steps, Seeder, dan Letter Types berhasil.

  6. Verifikasi data hasil seeding menggunakan Tinker:

    php artisan tinker
    App\Models\LetterCategory::count();
    App\Models\ApprovalFlow::count();
    App\Models\FlowStep::count();
    App\Models\FlowStep::pluck('approver_position')->unique();
  7. Pastikan hasil data:

    • LetterCategory memiliki 4 kategori.
    • ApprovalFlow memiliki flow untuk kategori yang sesuai.
    • FlowStep hanya dibuat pada flow yang membutuhkan approval bertingkat.
    • approver_position tidak mengandung rw atau kadus.
  8. Verifikasi endpoint:

    GET /approval-flows
    POST /approval-flows
    PUT /approval-flows/{id}/steps
    

    Pastikan authentication, authorization, validation, response, dan status code sesuai dengan API Specification v5.

Screenshots (if applicable)

Not applicable - perubahan ini tidak mencakup UI.

Checklist

  • Kode sudah di-test secara lokal
  • Tidak ada console.log / dd() / dump() yang tertinggal
  • Tidak ada conflict dengan branch target
  • Nama branch mengikuti konvensi
  • PR ditujukan ke branch dev (bukan langsung ke main)

@hanchan-dev
hanchan-dev merged commit f6dbdb5 into dev Sep 4, 2026
3 checks passed
@hanchan-dev
hanchan-dev deleted the chore/ev5-1-s2-s3-s4-approval-flows-and-steps branch September 4, 2026 09:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant