|string> */ public function rules(): array { return [ 'name' => 'required|string|max:191|unique:price_lists,name', 'valid_from' => 'nullable|date', 'valid_to' => 'nullable|date|after_or_equal:valid_from', 'is_default' => 'nullable|boolean', ]; } public function messages(): array { return [ 'name.required' => 'Le nom de la liste de prix est obligatoire.', 'name.unique' => 'Une liste de prix avec ce nom existe déjà.', 'valid_from.date' => 'La date de début doit être une date valide.', 'valid_to.date' => 'La date de fin doit être une date valide.', 'valid_to.after_or_equal' => 'La date de fin doit être postérieure ou égale à la date de début.', 'is_default.boolean' => 'Le statut par défaut doit être vrai ou faux.', ]; } }