<?php

namespace App\Modules\Pilkades\Repositories\Contracts;

use App\Modules\Pilkades\Models\Desa;
use Illuminate\Contracts\Pagination\LengthAwarePaginator;

interface DesaRepositoryInterface
{
    public function paginate(int $perPage = 15): LengthAwarePaginator;

    public function findOrFail(string $id): Desa;

    public function create(array $data): Desa;

    public function update(Desa $desa, array $data): Desa;

    public function delete(Desa $desa): bool;

    public function findBySlug(string $kabupatenSlug, string $kecamatanSlug, string $desaSlug): ?Desa;
}
