user() !== null; } /** * 获取更新商品验证规则。 * * @return array|string> */ public function rules(): array { $shopItem = $this->route('shopItem'); return [ 'name' => ['required', 'string', 'max:100'], 'slug' => ['required', 'string', 'max:100', Rule::unique('shop_items', 'slug')->ignore($shopItem?->id)], 'icon' => ['required', 'string', 'max:20'], 'description' => ['nullable', 'string', 'max:500'], 'price' => ['required', 'integer', 'min:0'], 'type' => ['required', Rule::in($this->allowedTypes())], 'duration_days' => ['nullable', 'integer', 'min:0'], 'duration_minutes' => ['nullable', 'integer', 'min:0'], 'intimacy_bonus' => ['nullable', 'integer', 'min:0'], 'charm_bonus' => ['nullable', 'integer', 'min:0'], 'sort_order' => ['required', 'integer', 'min:0'], 'is_active' => ['boolean'], ]; } /** * 获取允许后台配置的商品类型。 * * @return array */ protected function allowedTypes(): array { return [ 'instant', 'duration', 'one_time', 'ring', 'auto_fishing', ShopItem::TYPE_SIGN_REPAIR, 'msg_bubble', 'msg_name_color', 'msg_text_color', 'avatar_frame', ]; } }