. */ declare(strict_types=1); namespace FireflyIII\Repositories\ObjectGroup; use FireflyIII\Models\ObjectGroup; use FireflyIII\User; use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Support\Collection; /** * Interface ObjectGroupRepositoryInterface */ interface ObjectGroupRepositoryInterface { /** * Delete all. */ public function deleteAll(): void; /** * Delete empty ones. */ public function deleteEmpty(): void; /** * @param ObjectGroup $objectGroup */ public function destroy(ObjectGroup $objectGroup): void; /** * @return Collection */ public function get(): Collection; /** * @param ObjectGroup $objectGroup * * @return Collection */ public function getBills(ObjectGroup $objectGroup): Collection; /** * @param ObjectGroup $objectGroup * * @return Collection */ public function getPiggyBanks(ObjectGroup $objectGroup): Collection; /** * Delete all. */ public function resetOrder(): void; /** * @param string $query * @param int $limit * * @return Collection */ public function search(string $query, int $limit): Collection; /** * @param ObjectGroup $objectGroup * @param int $newOrder * * @return ObjectGroup */ public function setOrder(ObjectGroup $objectGroup, int $newOrder): ObjectGroup; /** * @param User|Authenticatable|null $user */ public function setUser(User|Authenticatable|null $user): void; /** * @param ObjectGroup $objectGroup * @param array $data * * @return ObjectGroup */ public function update(ObjectGroup $objectGroup, array $data): ObjectGroup; }