feat: refactor cart and purchase handling to support polymorphic buyable types and improve code readability

This commit is contained in:
2026-07-16 09:55:38 -03:00
parent c05206cc51
commit 6fc6ed1fac
14 changed files with 196 additions and 79 deletions

View File

@@ -3,13 +3,14 @@
namespace App\Domains\Purchase\Resources;
use App\Domains\Cart\Models\CartItem;
use App\Domains\Purchase\Models\Purchase;
use App\Domains\Purchase\Models\PurchaseItem;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Collection;
/**
* @mixin \App\Domains\Purchase\Models\Purchase
* @mixin Purchase
*/
class PurchaseResource extends JsonResource
{
@@ -87,7 +88,7 @@ class PurchaseResource extends JsonResource
return (float) $item->precio_unitario * $item->cantidad;
}
return (float) ($item->variant?->product?->precio ?? 0) * $item->cantidad;
return (float) ($item->buyable?->getPrice() ?? 0) * $item->cantidad;
}
protected function resolveItemTotal(PurchaseItem|CartItem $item): float