. */ declare(strict_types=1); namespace FireflyIII\Repositories\Category; use Carbon\Carbon; use FireflyIII\User; use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Support\Collection; /** * Interface OperationsRepositoryInterface */ interface OperationsRepositoryInterface { /** * This method returns a list of all the withdrawal transaction journals (as arrays) set in that period * which have the specified category set to them. It's grouped per currency, with as few details in the array * as possible. Amounts are always negative. */ public function listExpenses(Carbon $start, Carbon $end, ?Collection $accounts = null, ?Collection $categories = null): array; /** * This method returns a list of all the deposit transaction journals (as arrays) set in that period * which have the specified category set to them. It's grouped per currency, with as few details in the array * as possible. Amounts are always positive. */ public function listIncome(Carbon $start, Carbon $end, ?Collection $accounts = null, ?Collection $categories = null): array; /** * This method returns a list of all the transfer transaction journals (as arrays) set in that period * which have the specified category set to them, transferred INTO the listed accounts. * It excludes any transfers between the listed accounts. * It's grouped per currency, with as few details in the array as possible. Amounts are always negative. */ public function listTransferredIn(Carbon $start, Carbon $end, Collection $accounts, ?Collection $categories = null): array; /** * This method returns a list of all the transfer transaction journals (as arrays) set in that period * which have the specified category set to them, transferred FROM the listed accounts. * It excludes any transfers between the listed accounts. * It's grouped per currency, with as few details in the array as possible. Amounts are always negative. */ public function listTransferredOut(Carbon $start, Carbon $end, Collection $accounts, ?Collection $categories = null): array; public function setUser(null|Authenticatable|User $user): void; /** * Sum of withdrawal journals in period for a set of categories, grouped per currency. Amounts are always negative. */ public function sumExpenses(Carbon $start, Carbon $end, ?Collection $accounts = null, ?Collection $categories = null): array; /** * Sum of income journals in period for a set of categories, grouped per currency. Amounts are always positive. */ public function sumIncome(Carbon $start, Carbon $end, ?Collection $accounts = null, ?Collection $categories = null): array; /** * Sum of transfers in period for a set of categories, grouped per currency. Amounts are always positive. */ public function sumTransfers(Carbon $start, Carbon $end, ?Collection $accounts = null, ?Collection $categories = null): array; }