using gehGassiApp.Domain.Common;
namespace gehGassiApp.Core.Interfaces
{
///
/// Schnittstellenbeschreibung für einen Service der die Validierung von Subscriptions also Abos zur Verfügung stellt.
///
public interface ISubscriptionValidationService
{
///
/// Prüft ob der aktuelle Benutzer eine gültige Buchung für einen Code hat.
///
/// Code
/// true wenn gültig, false else
bool HasValidSubscription(string code);
///
/// Prüft ob der aktuelle Benutzer eine gültige Buchung für einen Code hat.
///
/// Code
/// AppMode
/// true wenn gültig, false else
bool HasValidSubscription(string code, AppMode appMode);
///
/// Prüft ob der aktuelle Benutzer eine gültige Buchung für einen Code hat.
/// Der Code muss mit dem Prefix starten.
///
/// Code prefix
/// true wenn gültig, false else
bool HasAnyValidSubscription(string codePrefix);
///
/// Prüft ob der aktuelle Benutzer eine gültige Buchung für einen AppMode hat.
///
/// App mode
/// true wenn gültig, false else
bool HasAnyValidSubscription(AppMode appMode);
///
/// Prüft ob der aktuelle Benutzer eine gültige Buchung für einen Code hat.
///
/// Code prefix
/// App mode
/// true wenn gültig, false else
bool HasAnyValidSubscription(string codePrefix, AppMode appMode);
}
}