using System.Text.Json.Serialization;

namespace economy.Models.Lotto
{
    /*
    public class Response
    {
        // 요청 결과
        [JsonPropertyName("returnValue")]
        public string ReturnValue { get; set; }

        // 총 판매금액
        [JsonPropertyName("totSellamnt")]
        public long TotalSellAmount { get; set; }

        // 추첨일
        [JsonPropertyName("drwNoDate")]
        public DateOnly DrawDate { get; set; }

        // 1게임당 당첨금액
        [JsonPropertyName("firstWinamnt")]
        public long FirstWinAmount { get; set; }

        // 1등 당첨인원
        [JsonPropertyName("firstPrzwnerCo")]
        public int FirstPrizeWinnerCount { get; set; }

        // 1등 총 당첨금액
        [JsonPropertyName("firstAccumamnt")]
        public long FirstAccumulatedAmount { get; set; }

        // 회차
        [JsonPropertyName("drwNo")]
        public int DrawNumber { get; set; }

        // 번호 1
        [JsonPropertyName("drwtNo1")]
        public int DrawnNumber1 { get; set; }

        // 번호 2
        [JsonPropertyName("drwtNo2")]
        public int DrawnNumber2 { get; set; }

        // 번호 3
        [JsonPropertyName("drwtNo3")]
        public int DrawnNumber3 { get; set; }

        // 번호 4
        [JsonPropertyName("drwtNo4")]
        public int DrawnNumber4 { get; set; }

        // 번호 5
        [JsonPropertyName("drwtNo5")]
        public int DrawnNumber5 { get; set; }

        // 번호 6
        [JsonPropertyName("drwtNo6")]
        public int DrawnNumber6 { get; set; }

        // 보너스 번호
        [JsonPropertyName("bnusNo")]
        public int BonusNumber { get; set; }
    }
    */

    public sealed class Response
    {
        [JsonPropertyName("resultCode")]
        public string? ResultCode { get; set; }

        [JsonPropertyName("resultMessage")]
        public string? ResultMessage { get; set; }

        [JsonPropertyName("data")]
        public LottoData? Data { get; set; }
    }

    public sealed class LottoData
    {
        [JsonPropertyName("list")]
        public List<LottoRound>? List { get; set; }
    }

    public sealed class LottoRound
    {
        [JsonPropertyName("winType0")] 
        public int WinType0 { get; set; } // 1등 이월 여부

        [JsonPropertyName("winType1")] 
        public int WinType1 { get; set; } // 자동 선택 당첨자 수

        [JsonPropertyName("winType2")] 
        public int WinType2 { get; set; } // 수동 선택 당첨자 수

        [JsonPropertyName("winType3")]
        public int WinType3 { get; set; } // 반자동 선택 당첨자 수

        [JsonPropertyName("gmSqNo")] 
        public int GmSqNo { get; set; } // 게임 일련번호

        [JsonPropertyName("ltEpsd")] 
        public int LtEpsd { get; set; } // 로또 회차 번호

        [JsonPropertyName("tm1WnNo")] 
        public int Tm1WnNo { get; set; } // 당첨번호 1

        [JsonPropertyName("tm2WnNo")] 
        public int Tm2WnNo { get; set; } // 당첨번호 2

        [JsonPropertyName("tm3WnNo")] 
        public int Tm3WnNo { get; set; } // 당첨번호 3

        [JsonPropertyName("tm4WnNo")] 
        public int Tm4WnNo { get; set; } // 당첨번호 4

        [JsonPropertyName("tm5WnNo")] 
        public int Tm5WnNo { get; set; } // 당첨번호 5

        [JsonPropertyName("tm6WnNo")] 
        public int Tm6WnNo { get; set; } // 당첨번호 6

        [JsonPropertyName("bnsWnNo")] 
        public int BnsWnNo { get; set; } // 당첨번호 보너스

        [JsonPropertyName("ltRflYmd")] 
        public string? LtRflYmd { get; set; } // 추첨일자

        [JsonPropertyName("rnk1WnNope")] 
        public int Rnk1WnNope { get; set; } // 1등 당첨자 수

        [JsonPropertyName("rnk1WnAmt")] 
        public long Rnk1WnAmt { get; set; } // 1등 1인당 당첨금

        [JsonPropertyName("rnk1SumWnAmt")] 
        public long Rnk1SumWnAmt { get; set; } // 1등 전체 지급액

        [JsonPropertyName("rnk2WnNope")] 
        public int Rnk2WnNope { get; set; } // 2등 당첨자 수

        [JsonPropertyName("rnk2WnAmt")] 
        public long Rnk2WnAmt { get; set; } // 2등 1인당 당첨금

        [JsonPropertyName("rnk2SumWnAmt")] 
        public long Rnk2SumWnAmt { get; set; } // 2등 전체 지급액

        [JsonPropertyName("rnk3WnNope")] 
        public int Rnk3WnNope { get; set; } // 3등 당첨자 수

        [JsonPropertyName("rnk3WnAmt")] 
        public long Rnk3WnAmt { get; set; } // 3등 1인당 당첨금

        [JsonPropertyName("rnk3SumWnAmt")] 
        public long Rnk3SumWnAmt { get; set; } // 3등 전체 지급액

        [JsonPropertyName("rnk4WnNope")] 
        public int Rnk4WnNope { get; set; } // 4등 당첨자 수

        [JsonPropertyName("rnk4WnAmt")] 
        public long Rnk4WnAmt { get; set; } // 4등 1인당 당첨금

        [JsonPropertyName("rnk4SumWnAmt")] 
        public long Rnk4SumWnAmt { get; set; } // 4등 전체 지급액

        [JsonPropertyName("rnk5WnNope")] 
        public int Rnk5WnNope { get; set; } // 5등 당첨자 수

        [JsonPropertyName("rnk5WnAmt")] 
        public long Rnk5WnAmt { get; set; } // 5등 1인당 당첨금

        [JsonPropertyName("rnk5SumWnAmt")] 
        public long Rnk5SumWnAmt { get; set; } // 5등 전체 지급액

        [JsonPropertyName("sumWnNope")] 
        public int SumWnNope { get; set; } // 전체 당첨자 수 합계

        [JsonPropertyName("rlvtEpsdSumNtslAmt")] 
        public long RlvtEpsdSumNtslAmt { get; set; } // 해당 회사 실제 판매금액

        [JsonPropertyName("wholEpsdSumNtslAmt")] 
        public long WholEpsdSumNtslAmt { get; set; } // 누적 또는 전체 판매금액

        [JsonPropertyName("excelRnk")] 
        public string? ExcelRnk { get; set; }
    }
}