ProviderBlockedDayRequest.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace App\Http\Requests;
  3. use App\Enums\BlockedPeriodEnum;
  4. use Illuminate\Foundation\Http\FormRequest;
  5. use Illuminate\Validation\Rule;
  6. class ProviderBlockedDayRequest extends FormRequest
  7. {
  8. public function authorize(): bool
  9. {
  10. return true;
  11. }
  12. public function rules(): array
  13. {
  14. $rules = [
  15. 'provider_id' => ['sometimes', 'exists:providers,id'],
  16. 'date' => ['sometimes', 'date', 'after_or_equal:today'],
  17. 'period' => ['sometimes', Rule::in([BlockedPeriodEnum::MORNING->value, BlockedPeriodEnum::AFTERNOON->value, BlockedPeriodEnum::ALL->value])],
  18. 'reason' => ['nullable', 'string'],
  19. 'init_hour' => ['nullable', 'date_format:H:i'],
  20. 'end_hour' => ['nullable', 'date_format:H:i'],
  21. ];
  22. if($this->isMethod('POST')) {
  23. $rules['provider_id' ] = ['required','exists:providers,id'];
  24. $rules['date'] = ['required', 'date', 'after_or_equal:today'];
  25. $rules['period'] = ['required', Rule::in([BlockedPeriodEnum::MORNING->value, BlockedPeriodEnum::AFTERNOON->value, BlockedPeriodEnum::ALL->value])];
  26. $rules['init_hour'] = ['required', 'date_format:H:i'];
  27. $rules['end_hour'] = ['required', 'date_format:H:i'];
  28. }
  29. return $rules;
  30. }
  31. }