isMethod('post'); return [ 'image' => ['sometimes', 'nullable', 'image', 'max:4096'], 'caption' => ['nullable', 'string', 'max:1000'], 'calories' => ['nullable', 'integer', 'min:0'], 'proteins' => ['nullable', 'numeric', 'min:0'], 'carbs' => ['nullable', 'numeric', 'min:0'], 'fats' => ['nullable', 'numeric', 'min:0'], 'title' => [$isCreating ? 'required' : 'sometimes', 'string', 'max:255'], 'eaten_at' => [$isCreating ? 'required' : 'sometimes', 'date'], 'visibility' => ['sometimes', Rule::enum(MealPostVisibility::class)], ]; } public function authorize(): bool { return true; } public function messages(): array { return [ 'image.max' => "L'image ne doit pas dépasser 4 Mo.", 'image_url.required_without' => 'Ajoute une image au repas.', 'visibility' => 'Choisis une visibilité valide.', ]; } }