|string> */ public function rules(): array { return [ 'name' => ['required', 'max:100'], 'location_id' => ['required', 'exists:locations,id'], 'status' => ['required', 'in:0,1'], 'description' => ['nullable'], 'enhancer_id' => ['required'], ]; } protected function prepareForValidation() { $this->merge([ 'description' => filled($this->description) ? $this->description : null, 'enhancer_id' => Auth::check() ? Auth::id() : null, ]); } public function messages(): array { return [ 'name.required' => 'Nama sub lokus harus diisi.', 'name.max' => 'Nama sub lokus tidak boleh lebih dari 100 karakter.', 'location_id.required' => 'Lokus harus dipilih.', 'location_id.exists' => 'Lokus yang dipilih tidak valid.', 'status.required' => 'Status harus dipilih.', 'status.in' => 'Status harus bernilai aktif atau tidak aktif.', 'description.nullable' => 'Deskripsi boleh kosong jika tidak diperlukan.', ]; } }