. */ declare(strict_types=1); namespace FireflyIII\Repositories\Budget; use Carbon\Carbon; use FireflyIII\Models\Budget; use FireflyIII\Models\TransactionCurrency; use FireflyIII\User; use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Support\Collection; /** * Interface OperationsRepositoryInterface */ interface OperationsRepositoryInterface { /** * A method that returns the amount of money budgeted per day for this budget, * on average. * * @param Budget $budget * * @return string */ public function budgetedPerDay(Budget $budget): string; /** * @param Collection $budgets * @param Collection $accounts * @param Carbon $start * @param Carbon $end * * @return array * @deprecated */ public function getBudgetPeriodReport(Collection $budgets, Collection $accounts, Carbon $start, Carbon $end): array; /** * This method returns a list of all the withdrawal transaction journals (as arrays) set in that period * which have the specified budget set to them. It's grouped per currency, with as few details in the array * as possible. Amounts are always negative. * * @param Carbon $start * @param Carbon $end * @param Collection|null $accounts * @param Collection|null $budgets * * @return array */ public function listExpenses(Carbon $start, Carbon $end, ?Collection $accounts = null, ?Collection $budgets = null): array; /** * @param User|Authenticatable|null $user */ public function setUser(User | Authenticatable | null $user): void; /** * @param Carbon $start * @param Carbon $end * @param Collection|null $accounts * @param Collection|null $budgets * @param TransactionCurrency|null $currency * @return array * */ public function sumExpenses( Carbon $start, Carbon $end, ?Collection $accounts = null, ?Collection $budgets = null, ?TransactionCurrency $currency = null ): array; }