. */ declare(strict_types=1); namespace FireflyIII\Repositories\UserGroup; use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Models\UserGroup; use FireflyIII\User; use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Support\Collection; /** * Interface UserGroupRepositoryInterface * * @method setUserGroup(UserGroup $group) * @method getUserGroup() * @method getUser() * @method checkUserGroupAccess(UserRoleEnum $role) * @method setUser(null|Authenticatable|User $user) * @method setUserGroupById(int $userGroupId) */ interface UserGroupRepositoryInterface { public function destroy(UserGroup $userGroup): void; public function get(): Collection; public function getAll(): Collection; public function getById(int $id): ?UserGroup; public function getMembershipsFromGroupId(int $groupId): Collection; public function store(array $data): UserGroup; public function update(UserGroup $userGroup, array $data): UserGroup; public function updateMembership(UserGroup $userGroup, array $data): UserGroup; public function useUserGroup(UserGroup $userGroup): void; }