namespace SicboSub.Api.DTO
{
    #region Auth Request/Response DTOs

    /// <summary>
    /// Request đăng nhập bằng token từ URL
    /// </summary>
    public class TokenLoginReq
    {
        /// <summary>
        /// Token từ URL query parameter
        /// </summary>
        public string token { get; set; } = null!;
        
        /// <summary>
        /// Ngôn ngữ (optional)
        /// </summary>
        public string? lang { get; set; }
    }

    /// <summary>
    /// Response sau khi đăng nhập thành công
    /// </summary>
    public class TokenLoginRes
    {
        public decimal id { get; set; }
        public string msisdn { get; set; } = null!;
        public string? username { get; set; }
        public string? fullname { get; set; }
        public string? picture { get; set; }
        public decimal winCoin { get; set; }
        public decimal betCoin { get; set; }
        public int? point { get; set; }
        public int? freeSpin { get; set; }
        public byte? status { get; set; }
        public DateTime? lastLogin { get; set; }
        public bool isRegistered { get; set; }
        public RegInfoDto? regPkg { get; set; }
    }

    public class RegInfoDto
    {
        public decimal RegisterId { get; set; }
        public string? Msisdn { get; set; }
        public string? ProductName { get; set; }
        public DateTime? RegisterTime { get; set; }
        public short? NumberSpin { get; set; }
        public byte Status { get; set; }
        public DateTime? ExpireTime { get; set; }
        public byte? Renew { get; set; }
    }

    /// <summary>
    /// Request lấy thông tin thuê bao từ token
    /// </summary>
    public class GetMsisdnFromTokenReq
    {
        public string token { get; set; } = null!;
    }

    /// <summary>
    /// Response thông tin thuê bao
    /// </summary>
    public class GetMsisdnFromTokenRes
    {
        public string msisdn { get; set; } = null!;
        public bool isValid { get; set; }
    }

    #endregion
}
