isMethod('POST') ? 'required' : 'sometimes'; return [ 'name' => "$required|string|max:255", 'quantity_classes' => "$required|integer|min:1", 'class_duration_minutes' => "$required|integer|min:1|max:1440", // 'weekday' => 'nullable|integer|min:0|max:6|required_with:start_time', // 'start_time' => 'nullable|date_format:H:i|required_with:weekday', // 'second_weekday' => 'nullable|integer|min:0|max:6|different:weekday|required_with:second_start_time', // 'second_start_time' => 'nullable|date_format:H:i|required_with:second_weekday', 'group_ids' => 'nullable|array', 'group_ids.*' => 'integer|exists:groups,id', 'unit_visibilities' => 'nullable|array', 'unit_visibilities.*.unit_id' => 'required_with:unit_visibilities|integer|exists:units,id', 'unit_visibilities.*.visible' => 'required_with:unit_visibilities|boolean', ...$this->proposalPricingRules('pavao'), ...$this->proposalPricingRules('irrecusavel', withCondition: true), ]; } public function withValidator(ValidatorContract $validator): void { $this->validateProposalPricingSections($validator, ['pavao', 'irrecusavel']); } }