using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using gehGassi.Dto.Common; using gehGassiApp.Core.Interfaces.Synchronization; using gehGassiApp.Domain.Common; using gehGassiApp.Domain.Walks; namespace gehGassiApp.Core.Interfaces { /// /// Schnittsstellenbeschreibung eines Service der die Verwaltung von öffentlichen Anfragen ermöglicht /// public interface IPublicWalkRequestService : IService, ISyncPushPullService { /// /// Zählt die Anzahl der öffentlichen Anfragen für den aktuellen Benutzer /// /// Aktuelles Accesstoken /// CancellationToken /// Anzahl öffentliche Anfragen Task> CountPublicWalkRequestsAsync(string accessToken, CancellationToken token); /// /// Gibt eine Liste von öffentlichen Anfragen zurück /// /// Id die ignoriert werden soll (DogOwnerId) /// Optional: Id des Hundebesitzers /// Optional: Id des Hundeausführers /// Status der Ausschreibung oder NULL für alle /// Liste von Sortierangaben /// 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>> GetAsync(string ignoreId, string dogOwnerId, string dogWalkerId, PublicWalkRequestStatus? status, List sortOrders, LocationDto location, int take, int skip, AppMode appMode, string language, string accessToken, CancellationToken token); /// /// Gibt eine Liste von öffentlichen Anfragen zurück erweitert /// /// Id die ignoriert werden soll (DogOwnerId) /// Optional: Id des Hundebesitzers /// Optional: Id des Hundeausführers /// Status der Ausschreibung oder NULL für alle /// Maximaler Radius /// Gesuchter Typ oder NULL für alle /// Mindestpreis /// Liste von Sortierangaben /// 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>> GetExAsync(string ignoreId, string dogOwnerId, string dogWalkerId, PublicWalkRequestStatus? status, double maxRadius, PublicWalkRequestType? type, decimal minPrice, List sortOrders, LocationDto location, int take, int skip, AppMode appMode, string language, string accessToken, CancellationToken token); /// /// Gibt eine Liste von öffentlichen Anfragen zurück mit einem Antwort-Status für einen DogWalker /// /// Id die ignoriert werden soll (DogOwnerId) /// Optional: Id des Hundebesitzers /// Optional: Id des Hundeausführers /// Status der Ausschreibung oder null für alle /// es muss ein Angebot vom Dogwalker vorhanden sein /// Liste von Sortierangaben /// Aktuelle Position /// Sollten blockierte unnd/oder gesperrte Benutzer in die Liste eingefügt werden? /// 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 /// Id des Dogwalkers der die Anfrage absetzt /// Ziel Response-Status oder Null für alle /// ListCommunicationResult Task>> GetWithResponseStatusAsync(string ignoreId, string dogOwnerId, string dogWalkerId, PublicWalkRequestStatus? status, string targetDogWalkerId, PublicWalkResponseStatus? responseStatus, bool mustHaveResponse, List sortOrders, LocationDto location, bool includeBlockedAndLocked, int take, int skip, AppMode appMode, string language, string accessToken, CancellationToken token); /// /// Gibt eine Liste von öffentlichen Anfragen zurück mit einem Antwort-Status für einen DogWalker mit erweiterten Suchparametern /// /// Id die ignoriert werden soll (DogOwnerId) /// Optional: Id des Hundebesitzers /// Optional: Id des Hundeausführers /// Status der Ausschreibung oder null für alle /// Es muss ein Angebot vom DogWalker vorhanden sein /// Suchtext in Hundename, Besitzername oder Stadt /// Liste von Sortierangaben /// Aktuelle Position /// Sollten blockierte unnd/oder gesperrte Benutzer in die Liste eingefügt werden? /// 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 /// Id des Dogwalkers der die Anfrage absetzt /// Ziel Response-Status oder Null für alle /// Maximaler Radius /// Gesuchter Typ oder null für alle /// Mindestpreis /// ListCommunicationResult Task>> GetWithResponseStatusExAsync(string ignoreId, string dogOwnerId, string dogWalkerId, PublicWalkRequestStatus? status, string targetDogWalkerId, PublicWalkResponseStatus? responseStatus, double maxRadius, PublicWalkRequestType? type, decimal minPrice, bool mustHaveResponse, string searchText, List sortOrders, LocationDto location, bool includeBlockedAndLocked, int take, int skip, AppMode appMode, string language, string accessToken, CancellationToken token); /// /// Gibt eine Anzahl von öffentlichen Anfragen zurück, absteigend nach Datum sortiert /// /// Wie viele sollen genommen werden? /// Liste von öffntlichen Anfragen Task> GetLatestAsync(int take); /// /// Gibt eine Anzahl von öffentlichen Anfragen zurück, absteigend nach Datum sortiert /// /// Id des App-Users /// Gewünschte Sprache /// Wie viele sollen genommen werden? /// Aktuelles Accesstoken /// CancellationToken /// Liste von öffntlichen Anfragen Task> GetLatestWithNamesAsync(string appUserId, string language, int take, string accessToken, CancellationToken token); /// /// Gibt eine öffentliche Anfrage zurück /// /// Id der Anfrage /// Gewünschte Sprache /// Aktuelles Accesstoken /// CancellationToken /// Öffentliche Anfrage oder null, wenn nicht gefunden Task GetWithNamesAsync(string id, string language, string accessToken, CancellationToken token); /// /// Hinzufügen einer öffentlichen Anfrage /// /// Öffentliche Anfrage /// Aktuelles Accesstoken /// CancellationToken /// PublicWalkRequest Task AddAsync(PublicWalkRequest request, string accessToken, CancellationToken token); /// /// Stornieren einer öffentlichen Anfrage /// /// Id der Öffentliche Anfrage /// Aktuelles Accesstoken /// CancellationToken /// PublicWalkRequest Task CancelAsync(string publicWalkRequestId, string accessToken, CancellationToken token); /// /// Akzeptieren eines Angebotes zu einer öffnentlichen Anfrage /// /// Id der öffentlichen Anfrage /// Id des akzeptierten Angebotes /// Id des Hundebesitzers /// Zahlungsart für den Walk /// Aktuelles Accesstoken /// CancellationToken /// Erstellter Walk wenn erfolgreich, false sonst Task AcceptResponseAsync(string publicWalkRequestId, string publicWalkResponseId, string appUserId, WalkPaymentType? paymentType, string accessToken, CancellationToken token); } }