StoreItemRequest.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace App\Http\Requests;
  3. use App\Enums\StoreItemStatusEnum;
  4. use Illuminate\Foundation\Http\FormRequest;
  5. use Illuminate\Validation\Rule;
  6. class StoreItemRequest extends FormRequest
  7. {
  8. public function rules(): array
  9. {
  10. $rules = [
  11. 'name' => 'sometimes|string|max:255',
  12. 'description' => 'sometimes|nullable|string',
  13. 'category_id' => 'sometimes|nullable|integer|exists:categories,id',
  14. 'price' => 'sometimes|nullable|numeric|min:0',
  15. 'associate_price' => 'sometimes|nullable|numeric|min:0',
  16. 'supplier_price' => 'sometimes|nullable|numeric|min:0',
  17. 'status' => ['sometimes', Rule::enum(StoreItemStatusEnum::class)],
  18. 'variations' => 'sometimes|array',
  19. 'variations.*.variation_type' => 'required_with:variations|string|in:tamanho,cor,modelo',
  20. 'variations.*.variation_label' => 'required_with:variations|string|max:100',
  21. 'variations.*.variation_value' => 'nullable|numeric|min:0',
  22. 'variations.*.stock' => 'nullable|integer|min:0',
  23. ];
  24. if ($this->isMethod('post')) {
  25. $rules['name'] = 'required|string|max:255';
  26. }
  27. return $rules;
  28. }
  29. }