'integer', 'type' => 'integer', 'minimal_items_price' => 'float', 'apply_tax' => 'boolean', 'apply_shipping' => 'boolean', 'auto_add' => 'boolean', 'show_banner' => 'boolean', ]; /** * 关联的营销规则。 */ public function cart_rule(): BelongsTo { return $this->belongsTo(CartRule::class, 'cart_rule_id'); } /** * Banner 图片的公开访问地址。 */ public function bannerImageUrl(): ?string { if (empty($this->banner_image)) { return null; } return Storage::url($this->banner_image); } /** * 赠品 SKU 列表。 * * @return string[] */ public function skuList(): array { if (empty($this->sku)) { return []; } return array_values(array_filter(array_map('trim', explode(',', $this->sku)))); } /** * 是否是「一组合计送 N 个」。 */ public function isOneOf(): bool { return (int) $this->type === Gift::TYPE_ONE; } /** * 是否是「每个 SKU 各送 N 个」。 */ public function isAllOf(): bool { return (int) $this->type === Gift::TYPE_ALL; } }