sharee.bike-App/SharedBusinessLogic/Repository/Response/Stations/Station/StationInfo.cs
2024-04-09 12:53:23 +02:00

62 lines
1.7 KiB
C#

using System.Collections.Generic;
using System.Runtime.Serialization;
using Newtonsoft.Json;
namespace ShareeBike.Repository.Response.Stations.Station
{
/// <summary>
/// Holds info about a single station.
/// </summary>
[DataContract]
public class StationInfo
{
/// <summary>
/// Unique id of the station.
/// </summary>
[DataMember]
public string station { get; private set; }
[DataMember]
public string[] station_group { get; private set; }
[DataMember]
public string description { get; private set; }
/// <summary>
/// Position of the station.
/// </summary>
[DataMember]
public Position gps { get; private set; }
[DataMember]
public OperatorData operator_data { get; private set; }
/// <summary>
/// Holds the count of available bikes at the station.
/// </summary>
[DataMember]
public string bike_count { get; set; }
/// <summary>
/// Holds the count type of station, i.e. which bikes are located at station.
/// </summary>
[DataMember]
public Dictionary<string, BikeGroup> station_type { get; private set; }
/// <summary>
/// Holds the uri of the operator which manages the bikes at station/ the station.
/// </summary>
[DataMember]
public string uri_operator { get; private set; }
public static bool operator ==(StationInfo first, StationInfo second)
=> JsonConvert.SerializeObject(first) == JsonConvert.SerializeObject(second);
public static bool operator !=(StationInfo first, StationInfo second)
=> !(first == second);
public override bool Equals(object obj) => obj is StationInfo target && target == this;
public override int GetHashCode() => JsonConvert.SerializeObject(this).GetHashCode();
}
}