using System;
using System.Threading.Tasks;
using gehGassi.Domain.Users;
namespace gehGassi.Core.Interfaces
{
///
/// Schnittstellenbeschreibung für einen Service der die Verwaltung von gespeicherten Authentifizierungs-Ticktes ermöglicht
///
public interface IPersistedTicketService : IService
{
///
/// Speichern eines Tickets.
/// Wenn es noch nicht existiert, wird es angelegt.
/// Wenn es existiert, wird es aktualisiert
///
/// Key des Tickes
/// Benutzername
/// Ticket als Byte-Array
/// Ablaufdatum des Tickets
/// Task
Task SaveAsync(string key, string userId, byte[] ticket, DateTimeOffset? expires);
///
/// Löscht alle abgelaufenen Tickets
///
/// true wenn erfolgreich, false sonst
Task RemoveExpiredAsync();
///
/// Löschen eines Tickets aus dem Store
///
/// Key des Tickets
/// true wenn erfolgreich, false sonst
Task RemoveAsync(string key);
}
}