<?php

namespace Modules\Admin\Repositories\Interfaces;

use Illuminate\Database\Eloquent\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
use Modules\Payment\Models\Order;

interface OrderRepositoryInterface
{
    public function all(): Collection;
    public function find(int $id): ?Order;
    public function update(int $id, array $data): Order;
    public function delete(int $id): bool;
    public function paginate(int $perPage = 10, array $filters = []): LengthAwarePaginator;
    public function count(): int;
    public function countByStatus(string $status): int;
    public function totalRevenue(): float;
    public function getStatusCounts(): array;
    public function recentOrders(int $limit = 5): Collection;
}
