<?php

namespace App\Modules\DefinedService\OfficesBriefing\Domain;

use App\Modules\Shared\Domain\Storage\Criteria\StorageCriteria;

interface BriefingOfficeRepository
{
    public function insert(BriefingOffice $briefingOffice): IdBriefingOffice;

    public function update(BriefingOffice $briefingOffice);

    public function updateSoftDelete(IdBriefingOffice $id, int $status, \DateTimeInterface|string $dateUpdate): void;

    public function find(StorageCriteria $action): BriefingOffice;

    /** @return BriefingOffice[] */
    public function search(StorageCriteria $action): array;
}
