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 gehGassi.Dto.DogWalkers;
using gehGassiApp.Domain.Lookup;
namespace gehGassiApp.Core.Interfaces
{
///
/// Schnittstellenbeschreibung für einen Service der die Verwaltung von DogWalkern ermöglicht
///
public interface IDogWalkerService
{
///
/// Gibt Detailinfos zu einem DogWalker zurück
///
/// Id des Dogwalkers
/// Aktuelles Accesstoken
/// CancellationToken
/// CommunicationResult
Task> GetDogWalkerAsync(string dogWalkerId, string accessToken, CancellationToken token);
///
/// Gibt Dogwalker vom Server zurück
///
/// Query-Objekt für Dogwalker
/// Aktuelle Position
/// Aktuelles Accesstoken
/// CancellationToken
/// ListCommunicationResult
Task>> GetDogWalkersAsync(DogWalkerQueryDto query, LocationDto location, string accessToken, CancellationToken token);
///
/// Gibt Dogwalker als Lookup vom Server zurück
///
/// Query-Objekt für Dogwalker
/// Aktuelle Position
/// Aktuelles Accesstoken
/// CancellationToken
/// ListCommunicationResult
Task>> GetDogWalkersLookupAsync(DogWalkerQueryDto query, LocationDto location, string accessToken, CancellationToken token);
}
}