diff --git a/app/Endpoint/Api/Http/Resources/ProductSku/ProductSkuShoppingCartResource.php b/app/Endpoint/Api/Http/Resources/ProductSku/ProductSkuShoppingCartResource.php deleted file mode 100644 index 626b89ca..00000000 --- a/app/Endpoint/Api/Http/Resources/ProductSku/ProductSkuShoppingCartResource.php +++ /dev/null @@ -1,28 +0,0 @@ - $this->id, - 'name' => $this->name, - 'cover' => (string) $this->cover, - 'sell_price' => $this->sell_price, - 'vip_price' => (string) $this->vip_price, - 'specs' => array_values((array) $this->specs), - 'stock' => (int) $this->saleable_stock, - 'is_online' => $this->isOnline(), - ]; - } -} diff --git a/app/Endpoint/Api/Http/Resources/ShoppingCartItemResource.php b/app/Endpoint/Api/Http/Resources/ShoppingCartItemResource.php index 17961846..3d39c90f 100644 --- a/app/Endpoint/Api/Http/Resources/ShoppingCartItemResource.php +++ b/app/Endpoint/Api/Http/Resources/ShoppingCartItemResource.php @@ -2,7 +2,6 @@ namespace App\Endpoint\Api\Http\Resources; -use App\Endpoint\Api\Http\Resources\ProductSku\ProductSkuShoppingCartResource; use Illuminate\Http\Resources\Json\JsonResource; class ShoppingCartItemResource extends JsonResource @@ -17,7 +16,27 @@ class ShoppingCartItemResource extends JsonResource { return [ 'id' => $this->id, - 'sku' => ProductSkuShoppingCartResource::make($this->whenLoaded('sku')), + 'sku' => $this->when($this->relationLoaded('sku') && $this->sku, function () { + return [ + 'id' => $this->sku->id, + 'name' => $this->sku->name, + 'cover' => (string) $this->sku->cover, + 'sell_price' => $this->sku->sell_price, + 'vip_price' => (string) $this->sku->vip_price, + 'specs' => array_values((array) $this->sku->specs), + 'stock' => (int) $this->sku->saleable_stock, + 'is_online' => $this->sku->isOnline(), + ]; + }, [ + 'id' => $this->id, + 'name' => $this->name, + 'cover' => (string) $this->cover, + 'sell_price' => $this->sell_price, + 'vip_price' => (string) $this->vip_price, + 'specs' => array_values((array) $this->specs), + 'stock' => 0, + 'is_online' => false, + ]), 'quantity' => $this->quantity, ]; } diff --git a/app/Models/ShoppingCartItem.php b/app/Models/ShoppingCartItem.php index d775ac92..5534fbcb 100644 --- a/app/Models/ShoppingCartItem.php +++ b/app/Models/ShoppingCartItem.php @@ -33,15 +33,6 @@ class ShoppingCartItem extends Model */ public function sku() { - return $this->belongsTo(ProductSku::class)->withDefault(function ($sku, $item) { - $sku->id = $item->sku_id; - $sku->name = $item->name; - $sku->cover = $item->cover; - $sku->sell_price = $item->sell_price; - $sku->vip_price = $item->vip_price; - $sku->specs = $item->specs; - $sku->stock = 0; - $sku->release_at = null; - }); + return $this->belongsTo(ProductSku::class); } }