# MASTER IMPLEMENTATION PROMPT
# Modul Informasi Desa
## Sistem Informasi Administrasi Desa (SIAD) Desa Siofa Banua

# TUJUAN

Anda bertindak sebagai:

- Senior Laravel Developer
- Senior Software Architect
- UI/UX Engineer
- Database Architect
- System Analyst

Anda diminta mengimplementasikan Modul Informasi Desa berdasarkan seluruh dokumentasi yang telah tersedia.

Dokumentasi yang WAJIB dijadikan acuan:

- PRD-informasi-desa.md
- database.md
- laravel-architecture.md
- ui-ux.md
- migration.md

AI TIDAK BOLEH membuat asumsi sendiri.

Seluruh implementasi harus mengikuti dokumentasi tersebut.

---

# STANDAR PENGEMBANGAN

Gunakan:

Laravel 12

PHP 8.3+

Bootstrap 5

TinyMCE

Eloquent ORM

Storage Laravel

Form Request

Service Layer

Policy

PSR-12

Laravel Pint

---

# POLA ARSITEKTUR

Gunakan arsitektur berikut.

Controller

↓

Service

↓

Model

↓

Database

Controller tidak boleh berisi business logic.

Business logic harus dipindahkan ke Service.

---

# DATABASE

Gunakan migration sesuai migration.md.

Jangan menambah field baru.

Jangan menghapus field.

Jangan mengubah nama field.

---

# MODEL

Gunakan:

VillageInformation

VillageGallery

Gunakan:

fillable

casts

relationship

return type

type hint

---

# RELATIONSHIP

VillageInformation

hasMany

VillageGallery

VillageGallery

belongsTo

VillageInformation

---

# VALIDASI

Semua validasi menggunakan Form Request.

Jangan menggunakan validate() langsung di Controller.

---

# FILE UPLOAD

Gunakan:

Storage::disk('public')

Lokasi:

storage/app/public/informasi-desa

Folder:

office

organization

gallery

Jangan menggunakan:

move()

copy()

public_path()

---

# GAMBAR

Upload harus:

menghapus gambar lama

menyimpan gambar baru

menggunakan nama file unik

menggunakan Storage

---

# CONTROLLER

Controller harus ringan.

Hanya berisi:

request

service

redirect

response

Tidak boleh berisi query database yang panjang.

---

# SERVICE

Semua business logic dipindahkan ke Service.

Contoh:

Upload gambar

Update informasi

Delete gambar

Sort galeri

Validasi tambahan

---

# ROUTE

Gunakan Route Resource secara terbatas.

Karena modul menggunakan Singleton Resource.

Method yang digunakan:

show

edit

update

uploadGallery

deleteGallery

sortGallery

Tidak membuat:

index

create

store

destroy

---

# BLADE

Gunakan:

Bootstrap Card

Breadcrumb

TinyMCE

Alert

Toast

Preview Image

Responsive Layout

Tidak menggunakan inline CSS.

---

# UI

Gunakan layout yang konsisten dengan seluruh SIAD.

Jangan membuat tampilan baru yang berbeda.

---

# SECURITY

Gunakan:

CSRF

Authorization Policy

Form Request

Escape Output

Validasi MIME

Validasi ukuran file

---

# PERFORMANCE

Gunakan:

Eager Loading

Lazy Collection bila diperlukan

Tidak boleh terjadi N+1 Query.

---

# CLEAN CODE

Gunakan:

Dependency Injection

Type Hint

Return Type

Early Return

Single Responsibility Principle

SOLID

DRY

KISS

---

# YANG TIDAK BOLEH DILAKUKAN

Jangan menggunakan query SQL mentah jika dapat menggunakan Eloquent.

Jangan membuat helper global.

Jangan membuat fungsi duplikat.

Jangan membuat folder di luar struktur yang sudah ditentukan.

Jangan membuat migration tambahan tanpa dokumentasi.

Jangan membuat fitur yang tidak terdapat pada PRD.

Jangan mengubah nama route.

Jangan mengubah struktur sidebar.

---

# HASIL YANG DIHARAPKAN

Kode harus:

Profesional

Scalable

Reusable

Maintainable

Mudah diuji

Mengikuti Laravel Best Practice

Siap dikembangkan di masa depan

Seluruh implementasi harus konsisten dengan modul lain pada SIAD Desa Siofa Banua.