. */ declare(strict_types=1); namespace FireflyIII\Repositories\Budget; use Carbon\Carbon; use FireflyIII\Models\Budget; use FireflyIII\Models\BudgetLimit; use FireflyIII\Models\TransactionCurrency; use FireflyIII\User; use Illuminate\Support\Collection; /** * Interface BudgetLimitRepositoryInterface */ interface BudgetLimitRepositoryInterface { /** * Destroy a budget limit. * * @param BudgetLimit $budgetLimit */ public function destroyBudgetLimit(BudgetLimit $budgetLimit): void; /** * TODO this method is not multi-currency aware. * * @param Carbon $start * @param Carbon $end * * @return Collection */ public function getAllBudgetLimits(Carbon $start = null, Carbon $end = null): Collection; /** * @param TransactionCurrency $currency * @param Carbon $start * @param Carbon $end * * @return Collection */ public function getAllBudgetLimitsByCurrency(TransactionCurrency $currency, Carbon $start = null, Carbon $end = null): Collection; /** * @param Budget $budget * @param Carbon $start * @param Carbon $end * * @return Collection */ public function getBudgetLimits(Budget $budget, Carbon $start = null, Carbon $end = null): Collection; /** * @param User $user */ public function setUser(User $user): void; }