|string> */ public function rules(): array { return [ 'name' => ['required', 'string', 'max:100'], 'description' => ['nullable', 'string'], 'category_ids' => ['required', 'array'], 'category_ids.*' => Rule::exists(Category::class, 'id')->where('is_active', true), 'prices' => ['required', 'array'], 'prices.purchase' => ['required', 'integer', 'min:0'], 'prices.distributor' => ['required', 'integer', 'min:0'], 'prices.agent' => ['required', 'integer', 'min:0'], 'prices.reseller' => ['required', 'integer', 'min:0'], 'prices.retail' => ['required', 'integer', 'min:0'], 'thumbnail' => ['nullable', 'image', 'max:5120'], 'images' => ['nullable', 'array'], 'images.*' => ['image', 'max:5120'], 'delete_image_ids' => ['nullable', 'array'], 'delete_image_ids.*' => ['integer'], 'stock' => [Rule::requiredIf($this->isMethod('post')), 'integer', 'min:0'], ]; } }