public function rules(): array 	{ 		return MediaStorage::mergeValidationRules([ 			'title_en' => ['required', 'string', 'max:50', new OpenAIModeration], 			'body_en' => ['required', 'string', 'max:2000', new OpenAIModeration], 			'url' => ['nullable', 'active_url', 'max:1000'], 			'countries' => ['array'], 			'countries.*' => ['required', 'string', 'uppercase', 'distinct', 'size:2'], 			'segments' => ['array'], 			'segments.*' => ['required', 'string', 'distinct', new Enum(OneSignalSegment::class)], 			'radius' => ['nullable', 'required_with_all:location_lat,location_lng', 'integer', 'min:1'], 			'location_lat' => ['nullable', 'required_with:location_lng', 'numeric', 'min:-90', 'max:90'], 			'location_lng' => ['nullable', 'required_with:location_lat', 'numeric', 'min:-180', 'max:180'], 			'scheduled_at' => ['nullable', 'date', 'after:' . formatTimestamp()], 			'delivery_time_of_day' => ['nullable', 'date_format:H:i'], 			'file' => ['file', 'max:' . setting('max_upload_size') / 1024, new SafeWebp], 		]); 	}