using System;
using System.Collections.Generic;
using TINK.Model.Bikes.BikeInfoNS.DriveNS;
using TINK.Model.State;
namespace TINK.Model.Bikes.BikeInfoNS.BC
{
///
/// Allows to access bike info.
///
public interface IBikeInfo
{
///
/// Holds the bike object.
///
BikeNS.Bike Bike { get; }
///
/// Holds the drive.
///
Drive Drive { get; }
/// Gets or sets the information where the data origins from.
DataSource DataSource { get; }
/// True if bike is a demo bike.
bool IsDemo { get; }
/// Returns the group (TINK, Konrad, ...).
IEnumerable Group { get; }
///
/// Station a which bike is located, null otherwise.
///
string StationId { get; }
///
/// Uri of the operator or null, in case of single operator setup.
///
Uri OperatorUri { get; }
/// Holds description about the tarif.
RentalDescription TariffDescription { get; }
///
/// Holds the rent state of the bike.
///
IStateInfo State { get; }
}
///
/// Origin of the data.
///
public enum DataSource
{
///
/// Data source copri.
///
Copri,
///
/// Data source cache.
///
Cache
}
}