<?php

namespace App\Modules\Bills\Interfaces;

use App\Models\BillService;
use App\Models\BillVariation;

interface BillServiceRepositoryInterface
{
    public function allActive(): \Illuminate\Database\Eloquent\Collection;

    public function findByCategory(string $category): \Illuminate\Database\Eloquent\Collection;

    public function findBySlug(string $slug): ?BillService;

    public function findByCode(string $code): ?BillService;

    public function getVariations(string $serviceId): \Illuminate\Database\Eloquent\Collection;

    public function getVariationByCode(string $code): ?BillVariation;

    public function createService(array $data): BillService;

    public function updateService(string $id, array $data): BillService;

    public function createVariation(array $data): BillVariation;

    public function updateVariation(string $id, array $data): BillVariation;
}
