67 lines
3.5 KiB
PHP
67 lines
3.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests\Bumdes;
|
|
|
|
use App\Enums\Bumdes\JabatanBumdes;
|
|
use App\Enums\Pendidikan;
|
|
use Illuminate\Validation\Rule;
|
|
|
|
class StorePengurusBumdesRequest extends BumdesRequest
|
|
{
|
|
public function rules(): array
|
|
{
|
|
return [
|
|
'nama' => ['required', 'string', 'max:255'],
|
|
'jenis_kelamin' => ['required', 'boolean'],
|
|
'tempat_lahir' => ['required', 'string', 'max:255'],
|
|
'tanggal_lahir' => ['required', 'date_format:d-m-Y'],
|
|
'pendidikan_terakhir' => ['required', Rule::enum(Pendidikan::class)],
|
|
'alamat' => ['required', 'string', 'max:500'],
|
|
'provinsi_id' => ['bail', 'required', 'integer', 'exists:master_provinsi,id'],
|
|
'kabupaten_id' => ['bail', 'required', 'integer', 'exists:master_kabupaten_kota,id'],
|
|
'kecamatan_id' => ['bail', 'required', 'integer', 'exists:master_kecamatan,id'],
|
|
'desa_kelurahan_id' => ['bail', 'required', 'integer', 'exists:master_desa_kelurahan,id'],
|
|
'nomor_telepon' => ['nullable', 'digits_between:11,13'],
|
|
'jabatan' => ['required', Rule::enum(JabatanBumdes::class)],
|
|
'jabatan_lainnya' => ['nullable', 'required_if:jabatan,'.JabatanBumdes::LAINNYA->value, 'string', 'max:255'],
|
|
'lama_menjabat_tahun' => ['required', 'integer', 'min:0', 'max:80'],
|
|
...$this->sectionRules('profil'),
|
|
];
|
|
}
|
|
|
|
public function messages(): array
|
|
{
|
|
return [
|
|
...parent::messages(),
|
|
'nama.required' => 'Nama harus diisi.',
|
|
'jenis_kelamin.required' => 'Jenis kelamin harus dipilih.',
|
|
'tempat_lahir.required' => 'Tempat lahir harus diisi.',
|
|
'tanggal_lahir.required' => 'Tanggal lahir harus diisi.',
|
|
'tanggal_lahir.date_format' => 'Tanggal lahir harus menggunakan format tanggal yang valid.',
|
|
'pendidikan_terakhir.required' => 'Pendidikan terakhir harus dipilih.',
|
|
'alamat.required' => 'Alamat harus diisi.',
|
|
'provinsi_id.required' => 'Provinsi wajib dipilih.',
|
|
'kabupaten_id.required' => 'Kabupaten/Kota wajib dipilih.',
|
|
'kecamatan_id.required' => 'Kecamatan wajib dipilih.',
|
|
'provinsi_id.integer' => 'Pilihan Provinsi tidak valid.',
|
|
'kabupaten_id.integer' => 'Pilihan Kabupaten/Kota tidak valid.',
|
|
'kecamatan_id.integer' => 'Pilihan Kecamatan tidak valid.',
|
|
'desa_kelurahan_id.integer' => 'Pilihan Desa/Kelurahan tidak valid.',
|
|
'provinsi_id.exists' => 'Provinsi tidak ditemukan.',
|
|
'kabupaten_id.exists' => 'Kabupaten/Kota tidak ditemukan.',
|
|
'kecamatan_id.exists' => 'Kecamatan tidak ditemukan.',
|
|
'desa_kelurahan_id.required' => 'Desa kelurahan harus dipilih.',
|
|
'desa_kelurahan_id.exists' => 'Desa kelurahan tidak ditemukan.',
|
|
'nomor_telepon.digits_between' => 'Nomor telepon harus berupa angka 11 sampai 13 digit.',
|
|
'jabatan.required' => 'Jabatan/peran harus dipilih.',
|
|
'jabatan_lainnya.required_if' => 'Jabatan lainnya harus diisi.',
|
|
'lama_menjabat_tahun.required' => 'Lama menjabat harus diisi.',
|
|
'lama_menjabat_tahun.integer' => 'Lama menjabat harus berupa angka tahun.',
|
|
'string' => ':attribute harus berupa teks.',
|
|
'max' => ':attribute tidak valid.',
|
|
'min' => ':attribute tidak boleh kurang dari :min.',
|
|
'enum' => 'Pilihan :attribute tidak valid.',
|
|
];
|
|
}
|
|
}
|