'sometimes|required|string|max:255', 'siret' => 'nullable|string|max:20', 'forme_juridique' => 'nullable|string|max:100', 'code_ape' => 'nullable|string|max:20', 'adresse' => 'nullable|string', 'contact_principal' => 'sometimes|required|string|max:255', 'telephone' => 'nullable|string|max:50', 'email' => 'nullable|email|max:191', 'site_web' => 'nullable|url|max:191', 'numero_contrat' => 'nullable|string|max:100', 'montant_contrat' => 'nullable|numeric|min:0', 'date_debut_contrat' => 'nullable|date', 'date_fin_contrat' => 'nullable|date|after_or_equal:date_debut_contrat', 'type_prestation' => 'nullable|string|max:255', 'conditions_paiement' => 'nullable|string', 'statut' => ['nullable', Rule::in(['actif', 'inactif', 'en_evaluation'])], 'note_qualite' => 'nullable|numeric|min:0|max:5', 'certifications_labels' => 'nullable|array', 'certifications_labels.*' => 'string|max:255', ]; } public function messages(): array { return [ 'nom_entreprise.required' => 'Le nom de l\'entreprise est obligatoire.', 'contact_principal.required' => 'Le contact principal est obligatoire.', 'email.email' => 'L\'adresse email doit être valide.', 'site_web.url' => 'Le site web doit être une URL valide.', 'montant_contrat.numeric' => 'Le montant du contrat doit être numérique.', 'montant_contrat.min' => 'Le montant du contrat doit être supérieur ou égal à 0.', 'date_fin_contrat.after_or_equal' => 'La date de fin doit être postérieure ou égale à la date de début.', 'statut.in' => 'Le statut sélectionné est invalide.', 'note_qualite.numeric' => 'La note de qualité doit être numérique.', 'note_qualite.min' => 'La note de qualité doit être au minimum de 0.', 'note_qualite.max' => 'La note de qualité doit être au maximum de 5.', 'certifications_labels.array' => 'Les certifications doivent être envoyées sous forme de liste.', 'certifications_labels.*.string' => 'Chaque certification doit être une chaîne de caractères.', ]; } }