route('materiel')?->id ?? $this->route('materiel'); return [ 'name' => ['required', 'string', 'max:255'], 'type' => ['required', 'string', 'in:serveur,switch,routeur,onduleur,stockage,pare-feu,poste_travail,autre'], 'brand' => ['required', 'string', 'max:255'], 'model' => ['required', 'string', 'max:255'], 'serial_number' => ['required', 'string', 'max:255', 'unique:hardwares,serial_number,' . $hardwareId], 'status' => ['required', 'string', 'in:en_stock,en_service,en_panne,au_rebut'], 'purchase_date' => ['nullable', 'date'], 'commissioning_date' => ['nullable', 'date', 'after_or_equal:purchase_date'], 'warranty_expiration_date' => ['nullable', 'date', 'after_or_equal:purchase_date'], 'location' => ['required', 'string', 'max:255'], 'ip_address' => ['nullable', 'string', 'max:45'], 'order_id' => ['nullable', 'exists:orders,id'], 'notes' => ['nullable', 'string'], ]; } /** * Messages d'erreur personnalisés en français. */ public function messages(): array { return [ 'name.required' => 'Le nom de l\'équipement est requis.', 'type.required' => 'Le type d\'équipement est requis.', 'type.in' => 'Le type d\'équipement sélectionné est invalide.', 'brand.required' => 'La marque est requise.', 'model.required' => 'Le modèle est requis.', 'serial_number.required' => 'Le numéro de série est requis.', 'serial_number.unique' => 'Ce numéro de série existe déjà dans la base.', 'status.required' => 'Le statut est requis.', 'status.in' => 'Le statut sélectionné est invalide.', 'purchase_date.date' => 'La date d\'achat doit être une date valide.', 'commissioning_date.date' => 'La date de mise en service doit être une date valide.', 'commissioning_date.after_or_equal' => 'La date de mise en service doit être postérieure ou égale à la date d\'achat.', 'warranty_expiration_date.date' => 'La date de fin de garantie doit être une date valide.', 'warranty_expiration_date.after_or_equal' => 'La date de fin de garantie doit être postérieure ou égale à la date d\'achat.', 'location.required' => 'L\'emplacement est requis.', 'order_id.exists' => 'La commande sélectionnée est invalide.', ]; } }