using System.Runtime.Serialization; namespace TINK.Repository.Response { /// <summary> /// Holds info about a single bike. /// </summary> [DataContract] public class BikeInfoBase { /// <summary> /// Id of the bike. /// </summary> [DataMember] public string bike { get; private set; } /// <summary> /// Id of the station. /// </summary> [DataMember] public string station { get; private set; } /// <summary> /// Holds the localized (german) description of the bike. /// </summary> [DataMember] public string description { get; private set; } /// <summary> Holds the group of the bike.</summary> /// <remarks> /// Copri returns values "TINK", "Konrad". /// </remarks> [DataMember] public string[] bike_group { get; private set; } /// <summary> /// Rental state. /// </summary> [DataMember] public string state { get; private set; } /// <summary> /// Holds the uri where to reserve/ rent the bike. /// </summary> [DataMember] public string uri_operator { get; private set; } /// <summary> Holds whether bike is equipped with computer or if bike is a lock bike.</summary> /// <remarks> /// <table> /// <tr><th>Value </th><th>Type of bike </th><th>Member to extract info.</th></tr> /// <tr><td>LOCK </td><td>Bike with manual lock. </td><td>TextToTypeHelper.GetIsNonBikeComputerBike</td></tr> /// <tr><td> </td><td>Bike with a bord computer. </td><td></td></tr> /// <tr><td>? </td><td>Bike with a bluetooth lock.</td><td></td></tr> /// </table> /// </remarks> [DataMember] public string system { get; private set; } #if !NOTARIFFDESCRIPTION /// <summary> Holds the tariff information for a bike. </summary> [DataMember] public TariffDescription tariff_description { get; private set; } #endif /// <summary> /// Textual description of response. /// </summary> /// <returns>Object as text.</returns> public new string ToString() { return $"Bike {bike}{(station != null ? $", at station {station}" : string.Empty)}{(!string.IsNullOrEmpty(description) ? $", {description}" : string.Empty)}{(!string.IsNullOrEmpty(state) ? $", status={state}" : string.Empty)}."; } } }