NotificationRequest.php 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace App\Http\Requests;
  3. use App\Enums\NotificationRecipientEnum;
  4. use Illuminate\Foundation\Http\FormRequest;
  5. use Illuminate\Validation\Rule;
  6. class NotificationRequest extends FormRequest
  7. {
  8. public function rules(): array
  9. {
  10. $rules = [
  11. 'type' => 'sometimes|string|max:50',
  12. 'source' => 'sometimes|nullable|string|max:100',
  13. 'source_id' => 'sometimes|nullable|integer',
  14. 'title' => 'sometimes|string|max:255',
  15. 'message' => 'sometimes|string',
  16. 'recipient' => ['sometimes', Rule::enum(NotificationRecipientEnum::class)],
  17. 'recipient_position' => 'sometimes|nullable|string|max:100',
  18. 'recipient_sector' => 'sometimes|nullable|string|max:100',
  19. ];
  20. if ($this->isMethod('post')) {
  21. $rules['type'] = 'required|string|max:50';
  22. $rules['title'] = 'required|string|max:255';
  23. $rules['message'] = 'required|string';
  24. $rules['recipient'] = ['required', Rule::enum(NotificationRecipientEnum::class)];
  25. }
  26. return $rules;
  27. }
  28. }