using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using gehGassiApp.Domain.Vouchers; namespace gehGassiApp.Core.Interfaces { /// /// Schnittstellenbeschreibung für einen Service der die Gutscheine verwalten kann /// public interface IVoucherService { /// /// Validieren eines Gutschein-Codes für einen AppUser /// /// Gutscheincode /// Id des AppUsers /// Aktuelles Accesstoken /// CancellationToken /// CommunicationResult Task> CheckVoucherCodeAsync(string voucherCode, string appUserId, string accessToken, CancellationToken token); /// /// Versucht einen Gutscheincode mit Hilfe eines QR-Codes zu holen /// /// QR-Code in Text /// Aktuelles Accesstoken /// CancellationToken /// CommunicationResult Task> GetVoucherCodeByQrCode(string qrCode, string accessToken, CancellationToken token); /// /// Versucht einen Gutschein zu reservieren /// /// Id des Gutscheins /// Code des Gutscheins /// Id des AppUsers /// Id des Walks /// Betrag - kann kleiner Gutscheinwert sein /// Aktuelles Accesstoken /// CancellationToken /// CommunicationResult Task> ReserveVoucherAsync(string voucherId, string code, string appUserId, string walkId, decimal ammount, string accessToken, CancellationToken token); /// /// Stornieren eines Gutscheins /// /// Id des Gutscheins /// Id des AppUsers /// Id des Walks /// Aktuelles Accesstoken /// CancellationToken /// CommunicationResult Task> CancelVoucherAsync(string voucherId, string appUserId, string walkId, string accessToken, CancellationToken token); } }