. */ declare(strict_types=1); namespace FireflyIII\Repositories\Budget; use Carbon\Carbon; use FireflyIII\Models\AvailableBudget; use FireflyIII\Models\TransactionCurrency; use FireflyIII\User; use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Support\Collection; /** * Interface AvailableBudgetRepositoryInterface */ interface AvailableBudgetRepositoryInterface { public function cleanup(): void; /** * Delete all available budgets. */ public function destroyAll(): void; public function destroyAvailableBudget(AvailableBudget $availableBudget): void; /** * Find existing AB. */ public function find(TransactionCurrency $currency, Carbon $start, Carbon $end): ?AvailableBudget; public function findById(int $id): ?AvailableBudget; /** * Return a list of all available budgets (in all currencies) (for the selected period). */ public function get(?Carbon $start = null, ?Carbon $end = null): Collection; /** * @deprecated */ public function getAvailableBudget(TransactionCurrency $currency, Carbon $start, Carbon $end): string; public function getAvailableBudgetWithCurrency(Carbon $start, Carbon $end): array; /** * Returns all available budget objects. */ public function getAvailableBudgetsByCurrency(TransactionCurrency $currency): Collection; /** * Returns all available budget objects. */ public function getAvailableBudgetsByDate(?Carbon $start, ?Carbon $end): Collection; public function getAvailableBudgetsByExactDate(Carbon $start, Carbon $end): Collection; /** * Get by transaction currency and date. Should always result in one entry or NULL. */ public function getByCurrencyDate(Carbon $start, Carbon $end, TransactionCurrency $currency): ?AvailableBudget; /** * @deprecated */ public function setAvailableBudget(TransactionCurrency $currency, Carbon $start, Carbon $end, string $amount): AvailableBudget; public function setUser(null|Authenticatable|User $user): void; public function store(array $data): ?AvailableBudget; public function update(AvailableBudget $availableBudget, array $data): AvailableBudget; public function updateAvailableBudget(AvailableBudget $availableBudget, array $data): AvailableBudget; }