40 lines
1.0 KiB
PHP
40 lines
1.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Repositories;
|
|
|
|
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
/**
|
|
* Interface for DeceasedDocument repository operations.
|
|
*/
|
|
interface DeceasedDocumentRepositoryInterface extends BaseRepositoryInterface
|
|
{
|
|
/**
|
|
* Get paginated deceased documents with optional filters
|
|
*/
|
|
public function paginate(int $perPage = 15, array $filters = []): LengthAwarePaginator;
|
|
|
|
/**
|
|
* Get documents by deceased ID
|
|
*/
|
|
public function getByDeceasedId(int $deceasedId): \Illuminate\Database\Eloquent\Collection;
|
|
|
|
/**
|
|
* Get documents by document type
|
|
*/
|
|
public function getByDocType(string $docType): \Illuminate\Database\Eloquent\Collection;
|
|
|
|
/**
|
|
* Get documents by file ID
|
|
*/
|
|
public function getByFileId(int $fileId): \Illuminate\Database\Eloquent\Collection;
|
|
|
|
/**
|
|
* Search documents by various criteria
|
|
*/
|
|
public function search(array $criteria): \Illuminate\Database\Eloquent\Collection;
|
|
}
|