using System;
using TINK.Repository;
using TINK.Repository.Response;
using TINK.Repository.Response.Stations;
namespace TINK.Model.Services.CopriApi
{
public interface ICopriCache : ICopriServer
{
/// Gets a value indicating whether stations are expired or not.
bool IsStationsExpired { get; }
/// Adds a stations all response to cache.
/// Stations to add.
void AddToCache(StationsAvailableResponse stations);
/// Gets a value indicating whether stations are expired or not.
bool IsBikesAvailableExpired { get; }
/// Adds a bikes response to cache.
/// Bikes to add.
/// Uri of the operator host to get bikes from or null if bikes have to be gotten form primary host.
/// Id of station which is used for filtering bikes. Null if no filtering should be applied.
/// Id of bike to get.
void AddToCache(BikesAvailableResponse bikes, Uri operatorUri = null, string stationId = null, string bikeId = null);
/// Gets a value indicating whether stations are expired or not.
bool IsBikesOccupiedExpired { get; }
/// Adds a bikes response to cache.
/// Bikes to add.
void AddToCache(BikesReservedOccupiedResponse bikes);
}
}