using gehGassiApp.Core.Interfaces.Synchronization; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using gehGassi.Dto.Common; using gehGassiApp.Domain.Common; using gehGassiApp.Domain.Walks; namespace gehGassiApp.Core.Interfaces { /// /// Schnittsstellenbeschreibung eines Service der die Verwaltung von Antworten auf öffentlichen Anfragen ermöglicht /// public interface IPublicWalkResponseService : IService, ISyncPushPullService { /// /// Gibt eine Liste von Antworten zu einer öffentlichen Anfragen zurück /// /// Id der öffentlichen Anfrage /// Aktuelle Position /// Wie viele Listungen sollen abgerufen werden? -1 Wenn nicht anwenden. /// Wie viele Listungen sollen ausgelassen werden? -1 Wenn nicht anwenden. /// Akteuller Modus der App /// Gewählte Sprache /// Aktuelles Accesstoken /// CancellationToken /// ListCommunicationResult Task>> GetListAsync(string publicWalkRequestId, LocationDto location, int take, int skip, AppMode appMode, string language, string accessToken, CancellationToken token); /// /// Holen einer Antworten zu öffentlichen Anfragen /// /// Id der öffentlichen Anfrage /// Aktuelles Accesstoken /// CancellationToken /// CommunicationResult Task GetAsync(string publicWalkResponseId, string accessToken, CancellationToken token); /// /// Holen einer Antworten zu öffentlichen Anfragen /// /// Id der öffentlichen Anfrage /// Aktuelles Accesstoken /// CancellationToken /// CommunicationResult Task GetWithNamesAsync(string publicWalkResponseId, string accessToken, CancellationToken token); /// /// Holen einer Antworten zu öffentlichen Anfragen /// /// Id des AppUsers /// Id der öffentlichen Anfrage /// Aktuelles Accesstoken /// CancellationToken /// CommunicationResult Task GetForWalkerAsync(string appUserId, string publicWalkRequestId, string accessToken, CancellationToken token); /// /// Hinzufügen einer Antwort zu einer öffentlichen Anfrage /// /// Antwort zur Öffentliche Anfrage /// Aktuelles Accesstoken /// CancellationToken /// PublicWalkRequest Task> AddAsync(PublicWalkResponse response, string accessToken, CancellationToken token); /// /// Prüft in der lokalen DB ob ein Walker für eine öffentliche Anfrage ein Angebot abgegeben hat /// /// Id des Dogwalkers /// Id der öffentlichen Anfrage /// true wenn es ein Angebot gibt, false sonst Task HasResponseAsync(string appUserId, string publicWalkRequestId); /// /// Aktualisieren einer Antwort zu einer öffentlichen Anfrage /// /// Antwort zur Öffentliche Anfrage /// Soll der Status aktualisiert werden? /// Aktuelles Accesstoken /// CancellationToken /// PublicWalkRequest Task UpdateAsync(PublicWalkResponse response, bool updateStatus, string accessToken, CancellationToken token); /// /// Ablehnen eines Angebotes zu einer öffentlichen Anfrage /// /// Id der Antwort /// Id der öffentlichen Anfrage /// Aktuelles Accesstoken /// CancellationToken /// true wenn erfolgreich, false sonst Task DeclineAsync(string responseId, string publicWalkRequestId, string accessToken, CancellationToken token); /// /// Bearbeiten eines bereits gestellten Angebotes zu einer öffentlichen Anfrage /// /// Id der Antwort /// Id der öffentlichen Anfrage /// Neuer Preis /// Info zum Angebot /// Aktuelles Accesstoken /// CancellationToken /// true wenn erfolgreich, false sonst Task> EditAsync(string responseId, string publicWalkRequestId, decimal price, string info, string accessToken, CancellationToken token); /// /// Bearbeiten eines bereits gestellten Angebotes zu einer öffentlichen Anfrage /// /// Id der Antwort /// Id der öffentlichen Anfrage /// Grund für die Stornierung /// Aktuelles Accesstoken /// CancellationToken /// true wenn erfolgreich, false sonst Task> CancelAsync(string responseId, string publicWalkRequestId, string cancellationReason, string accessToken, CancellationToken token); } }