<?php
namespace Modules\Product\Repositories\Interfaces;
use Illuminate\Database\Eloquent\Collection;
use Modules\Product\Models\Product;

interface ProductRepositoryInterface
{
    public function all(): Collection;
    public function find(int $id): ?Product;
    public function findBySlug(string $slug): ?Product;
    public function create(array $data): Product;
    public function update(int $id, array $data): Product;
    public function delete(int $id): bool;
    public function getActive(): Collection;
    public function getByCategory(int $categoryId): Collection;
    public function getTrending(int $limit = 10): Collection;
    public function getSaveTheFood(): Collection;
    public function getWeeklySpecials(): Collection;
    public function search(string $query): Collection;
}
