| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <?php
- namespace App\Http\Requests;
- use App\Http\Requests\Concerns\ValidatesProposalPricing;
- use Illuminate\Contracts\Validation\Validator as ValidatorContract;
- use Illuminate\Foundation\Http\FormRequest;
- class ClassPackageRequest extends FormRequest
- {
- use ValidatesProposalPricing;
- public function rules(): array
- {
- $required = $this->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']);
- }
- }
|