. */ declare(strict_types=1); namespace FireflyIII\Repositories\Recurring; use Carbon\Carbon; use FireflyIII\Models\Recurrence; use FireflyIII\Models\RecurrenceRepetition; use FireflyIII\User; use Illuminate\Support\Collection; /** * Interface RecurringRepositoryInterface * * @package FireflyIII\Repositories\Recurring */ interface RecurringRepositoryInterface { /** * Returns all of the user's recurring transactions. * * @return Collection */ public function getActive(): Collection; /** * Get the notes. * * @param Recurrence $recurrence * * @return string */ public function getNoteText(Recurrence $recurrence): string; /** * Calculate the next X iterations starting on the date given in $date. * Returns an array of Carbon objects. * * @param RecurrenceRepetition $repetition * @param Carbon $date * @param int $count * * @return array */ public function getOccurrences(RecurrenceRepetition $repetition, Carbon $date, int $count = 5): array; /** * Parse the repetition in a string that is user readable. * * @param RecurrenceRepetition $repetition * * @return string */ public function repetitionDescription(RecurrenceRepetition $repetition): string; /** * Set user for in repository. * * @param User $user */ public function setUser(User $user): void; }