CreateProductionOrderReclamationRequest.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Http\Requests;
  4. use Illuminate\Foundation\Http\FormRequest;
  5. use Illuminate\Validation\Rule;
  6. class CreateProductionOrderReclamationRequest extends FormRequest
  7. {
  8. public function authorize(): bool
  9. {
  10. return $this->user()?->hasPermission('reclamations.create') === true
  11. && $this->user()?->hasPermission('schedule-orders.view') === true;
  12. }
  13. /** @return array<string, mixed> */
  14. public function rules(): array
  15. {
  16. $productionOrderId = (int) $this->route('productionOrder')?->getKey();
  17. return [
  18. 'item_ids' => ['required', 'array', 'min:1'],
  19. 'item_ids.*' => [
  20. 'required',
  21. 'integer',
  22. 'distinct',
  23. Rule::exists('production_order_items', 'id')->where(
  24. static fn ($query) => $query
  25. ->where('production_order_id', $productionOrderId)
  26. ->whereNull('deleted_at'),
  27. ),
  28. ],
  29. 'nav' => ['nullable', 'string', 'max:100'],
  30. ];
  31. }
  32. }