<?php

namespace Modules\Cart\Repositories\Interfaces;

use Illuminate\Database\Eloquent\Collection;
use Modules\Cart\Models\CartItem;

interface CartRepositoryInterface
{
    public function getCart(string $sessionId): Collection;
    public function addItem(array $data): CartItem;
    public function updateQuantity(int $id, int $quantity): CartItem;
    public function removeItem(int $id): bool;
    public function clearCart(string $sessionId): bool;
    public function getCartTotal(string $sessionId): float;
    public function getCartCount(string $sessionId): int;
    public function syncCart(string $sessionId, array $items): Collection;
}
