. */ declare(strict_types=1); namespace FireflyIII\Repositories\ImportJob; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\ImportJob; use FireflyIII\Models\Tag; use FireflyIII\User; use Illuminate\Support\Collection; use Illuminate\Support\MessageBag; use Symfony\Component\HttpFoundation\File\UploadedFile; /** * Interface ImportJobRepositoryInterface. */ interface ImportJobRepositoryInterface { /** * Add message to job. * * @param ImportJob $job * @param string $error * * @return ImportJob */ public function addErrorMessage(ImportJob $job, string $error): ImportJob; /** * Append transactions to array instead of replacing them. * * @param ImportJob $job * @param array $transactions * * @return ImportJob */ public function appendTransactions(ImportJob $job, array $transactions): ImportJob; /** * @param string $importProvider * * @return ImportJob */ public function create(string $importProvider): ImportJob; /** * @param string $key * * @return ImportJob|null */ public function findByKey(string $key): ?ImportJob; /** * Return all attachments for job. * * @param ImportJob $job * * @return Collection */ public function getAttachments(ImportJob $job): Collection; /** * Return configuration of job. * * @param ImportJob $job * * @return array */ public function getConfiguration(ImportJob $job): array; /** * Return extended status of job. * * @param ImportJob $job * * @return array */ public function getExtendedStatus(ImportJob $job): array; /** * @param ImportJob $job * @param array $configuration * * @return ImportJob */ public function setConfiguration(ImportJob $job, array $configuration): ImportJob; /** * @param ImportJob $job * @param string $stage * * @return ImportJob */ public function setStage(ImportJob $job, string $stage): ImportJob; /** * @param ImportJob $job * @param string $status * * @return ImportJob */ public function setStatus(ImportJob $job, string $status): ImportJob; /** * @param ImportJob $job * @param Tag $tag * * @return ImportJob */ public function setTag(ImportJob $job, Tag $tag): ImportJob; /** * @param ImportJob $job * @param array $transactions * * @return ImportJob */ public function setTransactions(ImportJob $job, array $transactions): ImportJob; /** * @param User $user */ public function setUser(User $user); /** * Store file. * * @param ImportJob $job * @param string $name * @param string $fileName * * @return MessageBag */ public function storeCLIUpload(ImportJob $job, string $name, string $fileName): MessageBag; /** * Handle upload for job. * * @param ImportJob $job * @param string $name * @param UploadedFile $file * * @return MessageBag * @throws FireflyException */ public function storeFileUpload(ImportJob $job, string $name, UploadedFile $file): MessageBag; /** * @param ImportJob $job * @param string $status * * @return ImportJob */ public function updateStatus(ImportJob $job, string $status): ImportJob; }