96 lines
5.0 KiB
C#
96 lines
5.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using gehGassiApp.Domain.Common;
|
|
using gehGassiApp.Domain.Subscriptions;
|
|
using Platform = gehGassiApp.Domain.Common.Platform;
|
|
|
|
namespace gehGassiApp.Core.Interfaces
|
|
{
|
|
/// <summary>
|
|
/// Schnittstellenbeschreibung für einen Service der die Abonnements verwalten kann
|
|
/// </summary>
|
|
public interface ISubscriptionService
|
|
{
|
|
/// <summary>
|
|
/// Gibt eine Liste von verfügbaren Abos zurück
|
|
/// </summary>
|
|
/// <param name="appMode">AppMode - Hundebesitzer oder Walker</param>
|
|
/// <param name="language">Sprache</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>CommunicationResult</returns>
|
|
Task<CommunicationResult<List<Subscription>>> GetSubscriptionsAsync(AppMode appMode, string language, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Gibt eine Liste von gebuchten Abos zurück
|
|
/// </summary>
|
|
/// <param name="language">Sprache</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>CommunicationResult</returns>
|
|
Task<CommunicationResult<List<AppUserSubscription>>> GetMySubscriptionsAsync(string language, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Gibt eine Liste von gebuchten aktiven Abos zurück
|
|
/// </summary>
|
|
/// <param name="language">Sprache</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>CommunicationResult</returns>
|
|
Task<CommunicationResult<List<AppUserSubscription>>> GetMyActiveSubscriptionsAsync(string language, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Erstellen einer Abo-Buchung
|
|
/// </summary>
|
|
/// <param name="appUserId">AppUserId</param>
|
|
/// <param name="subscriptionId">Id des Abos</param>
|
|
/// <param name="language">Sprache</param>
|
|
/// <param name="inAppBillingPurchase">InAppBillingPurchase serialisiert als JSON</param>
|
|
/// <param name="expirationDateToSet">Optional: Ablaufdatum das gesetzt werden soll</param>
|
|
/// <param name="platform">Plattform auf welcher das Abo erstellt wird</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>CommunicationResult</returns>
|
|
Task<CommunicationResult<AppUserSubscription>> CreateSubscriptionAsync(string appUserId, string subscriptionId, string language, string inAppBillingPurchase, DateTime? expirationDateToSet, Platform platform, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Wechseln eines Abos in der Gruppe für eine Abo-Buchung
|
|
/// </summary>
|
|
/// <param name="bookingId">Id der Abo-Buchung</param>
|
|
/// <param name="appUserId">AppUserId</param>
|
|
/// <param name="subscriptionId">Id des Abos auf das gechselt werden soll</param>
|
|
/// <param name="language">Sprache</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>CommunicationResult</returns>
|
|
Task<CommunicationResult<AppUserSubscription>> SwitchSubscriptionAsync(long bookingId, string appUserId, string subscriptionId, string language, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Stornieren einer Abo-Buchung
|
|
/// </summary>
|
|
/// <param name="bookingId">Abo-Buchungs ID</param>
|
|
/// <param name="appUserId">AppUserId</param>
|
|
/// <param name="language">Sprache</param>
|
|
/// <param name="platform">Plattform auf der das Abo erstellt wurde</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>CommunicationResult</returns>
|
|
Task<CommunicationResult<AppUserSubscription>> CancelSubscriptionAsync(long bookingId, string appUserId, string language, Platform platform, string accessToken, CancellationToken token);
|
|
|
|
/// <summary>
|
|
/// Verlängern einer Abo-Buchung
|
|
/// </summary>
|
|
/// <param name="bookingId">Abo-Buchungs ID</param>
|
|
/// <param name="appUserId">AppUserId</param>
|
|
/// <param name="language">Sprache</param>
|
|
/// <param name="platform">Plattform auf der das Abo erstellt wurde</param>
|
|
/// <param name="accessToken">Aktuelles Accesstoken</param>
|
|
/// <param name="token">CancellationToken</param>
|
|
/// <returns>CommunicationResult</returns>
|
|
Task<CommunicationResult<AppUserSubscription>> RenewSubscriptionAsync(long bookingId, string appUserId, string language, Platform platform, string accessToken, CancellationToken token);
|
|
}
|
|
}
|