<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Support\Facades\Gate; use App\Models\ProviderOauth; /** * Editing Suppliers */ class ProductAddEdit extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return Gate::allows('wholesaler'); } /** * Get the validation rules that apply to the request. * * @return array<string, mixed> */ public function rules() { return [ 'translate.name_short' => 'required|string|min:2|max:100', 'translate.name_detail' => 'required|string|min:2|max:100', 'translate.description' => 'required|string|min:2|max:65535', 'active' => 'sometimes|accepted', 'model' => 'sometimes|string', // @todo Check that it is a valid model type 'model_id' => 'sometimes|int', // @todo Check that it is a valid model type 'accounting' => [ 'nullable', 'array', function (string $attribute,mixed $value,\Closure $fail) { if (! is_array($value)) $fail("Invalid format for {$attribute}"); foreach ($value as $k=>$v) { if (! ProviderOauth::where('id',$k)->exists()) $fail("Provider doesnt exist [$k]"); // @todo Validate that the value is in the accounting system } }, ], 'pricing' => 'required|array', // @todo Validate the elements in the pricing ]; } }