using System.Text.Json.Serialization;

namespace economy.Models.FIFA
{
    public class Response
    {
        [JsonPropertyName("ContinuationToken")]
        public object ContinuationToken { get; set; }

        [JsonPropertyName("ContinuationHash")]
        public object ContinuationHash { get; set; }

        [JsonPropertyName("Results")]
        public List<Team> Results { get; set; }
    }

    public class TeamName
    {
        [JsonPropertyName("Locale")]
        public string Locale { get; set; }

        [JsonPropertyName("Description")]
        public string Description { get; set; }
    }

    public class Team
    {
        public int Num { get; set; } = 1;

        [JsonPropertyName("IdTeam")]
        public string IdTeam { get; set; }

        [JsonPropertyName("TeamName")]
        public List<TeamName> TeamName { get; set; }

        [JsonPropertyName("Gender")]
        public int Gender { get; set; }

        [JsonPropertyName("IdConfederation")]
        public string IdConfederation { get; set; }

        [JsonPropertyName("RankingMovement")]
        public int? RankingMovement { get; set; }

        [JsonPropertyName("RankingMovementString")]
        public string RankingMovementString { get; set; }

        [JsonPropertyName("ConfederationName")]
        public string ConfederationName { get; set; }

        [JsonPropertyName("IdCountry")]
        public string IdCountry { get; set; }

        [JsonPropertyName("Rank")]
        public int? Rank { get; set; }

        [JsonPropertyName("IdSchedule")]
        public string IdSchedule { get; set; }

        [JsonPropertyName("PrevRank")]
        public int? PrevRank { get; set; }

        [JsonPropertyName("EOYRank")]
        public int EOYRank { get; set; }

        [JsonPropertyName("TotalPoints")]
        public int TotalPoints { get; set; }

        [JsonPropertyName("DecimalTotalPoints")]
        public double DecimalTotalPoints { get; set; }

        [JsonPropertyName("PrevPoints")]
        public int PrevPoints { get; set; }

        [JsonPropertyName("StatusRanked")]
        public int StatusRanked { get; set; }

        [JsonPropertyName("DecimalPrevPoints")]
        public double DecimalPrevPoints { get; set; }

        [JsonPropertyName("EOYPoints")]
        public int EOYPoints { get; set; }

        [JsonPropertyName("DecimalEOYPoints")]
        public double DecimalEOYPoints { get; set; }

        [JsonPropertyName("Matches")]
        public int Matches { get; set; }

        [JsonPropertyName("PubDate")]
        public DateTime PubDate { get; set; }

        [JsonPropertyName("PrePubDate")]
        public DateTime? PrePubDate { get; set; }

        [JsonPropertyName("EOYPubDate")]
        public DateTime? EOYPubDate { get; set; }

        [JsonPropertyName("NextPubDate")]
        public DateTime? NextPubDate { get; set; }

        [JsonPropertyName("Properties")]
        public Dictionary<string, object> Properties { get; set; }

        [JsonPropertyName("IsUpdateable")]
        public object IsUpdateable { get; set; }

        public string FlagSrc { get; set; } // 국기 경로
    }
}