using moe.yo3explorer.skyscraper8.DVBI.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace skyscraper8.DvbI
{
	public class DvbIService
	{
		public string ProviderName { get; internal set; }
		public string LogoURL { get; internal set; }
		public ushort OriginalNetworkId { get; internal set; }
		public ushort ServiceId { get; internal set; }
		public ushort TransportStreamId { get; internal set; }
		public DVBSDeliveryParametersTypeFEC FEC { get; internal set; }
		public string Frequency { get; internal set; }
		public DVBSDeliveryParametersTypeModcodMode Modcod { get; internal set; }
		public DVBSDeliveryParametersTypeModulationSystem ModulationSystem { get; internal set; }
		public DVBSDeliveryParametersTypeModulationType ModulationType { get; internal set; }
		public double OrbitalPosition { get; internal set; }
		public DVBSDeliveryParametersTypePolarization Polarization { get; internal set; }
		public DVBSDeliveryParametersTypeRollOff RollOff { get; internal set; }
		public string SymbolRate { get; internal set; }
		public string SatIpQueryParameters { get; internal set; }
		public string ServiceName { get; internal set; }
		public string ServiceType { get; internal set; }
		public string Id { get; internal set; }
		public int Version { get; internal set; }
		public string? RelatedItem { get; internal set; }
		public string Country { get; internal set; }
		public int Ranking { get; internal set; }
		public string Region { get; internal set; }
		public string ServiceDescription { get; internal set; }

		public string BannerURL { get; internal set; }
		public string LinkedApplication { get; set; }

		public override bool Equals(object? obj)
		{
			return obj is DvbIService service &&
				   Id == service.Id;
		}

		public override int GetHashCode()
		{
			return HashCode.Combine(Id);
		}
	}
}
