|string> */ public function rules(): array { return [ 'product_id' => 'required|exists:products,id', 'from_warehouse_id' => 'nullable|exists:warehouses,id', 'to_warehouse_id' => 'nullable|exists:warehouses,id', 'packaging_id' => 'nullable|exists:product_packagings,id', 'packages_qty' => 'nullable|numeric|min:0', 'units_qty' => 'nullable|numeric|min:0', 'qty_base' => 'required|numeric', 'move_type' => 'required|string|max:64', 'ref_type' => 'nullable|string|max:64', 'ref_id' => 'nullable|integer', 'moved_at' => 'nullable|date', ]; } /** * Get the error messages for the defined validation rules. * * @return array */ public function messages(): array { return [ 'product_id.required' => 'Le produit est requis.', 'product_id.exists' => 'Le produit sélectionné est invalide.', 'from_warehouse_id.exists' => 'L\'entrepôt de départ est invalide.', 'to_warehouse_id.exists' => 'L\'entrepôt d\'arrivée est invalide.', 'packaging_id.exists' => 'Le conditionnement sélectionné est invalide.', 'qty_base.required' => 'La quantité de base est requise.', 'qty_base.numeric' => 'La quantité de base doit être un nombre.', 'move_type.required' => 'Le type de mouvement est requis.', 'moved_at.date' => 'La date du mouvement n\'est pas valide.', ]; } }