|string> */ public function rules(): array { return [ 'user_id' => 'required|exists:users,id', 'target_value' => 'required|integer|min:1', 'description' => 'nullable|string|max:1000', 'is_active' => 'boolean' ]; } /** * Get custom messages for validator errors. */ public function messages(): array { return [ 'user_id.required' => 'Mekanik harus dipilih', 'user_id.exists' => 'Mekanik yang dipilih tidak valid', 'target_value.required' => 'Target nilai harus diisi', 'target_value.integer' => 'Target nilai harus berupa angka', 'target_value.min' => 'Target nilai minimal 1', 'description.max' => 'Deskripsi maksimal 1000 karakter', ]; } /** * Prepare the data for validation. */ protected function prepareForValidation(): void { $this->merge([ 'is_active' => $this->boolean('is_active', true) ]); } }