namespace Zncy.CloudCar.WeChat.Service.Models
{
    /// <summary>
    /// 微信小程序用户信息结构
    /// </summary>
    public class WeChatUserInfo

    {
#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“openId”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string openId { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“openId”必须包含非 null 值。请考虑将 属性 声明为可以为 null。

#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“nickName”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string nickName { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“nickName”必须包含非 null 值。请考虑将 属性 声明为可以为 null。

        public int gender { get; set; }

#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“city”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string city { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“city”必须包含非 null 值。请考虑将 属性 声明为可以为 null。

#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“province”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string province { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“province”必须包含非 null 值。请考虑将 属性 声明为可以为 null。

#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“country”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string country { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“country”必须包含非 null 值。请考虑将 属性 声明为可以为 null。

#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“avatarUrl”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string avatarUrl { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“avatarUrl”必须包含非 null 值。请考虑将 属性 声明为可以为 null。

#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“unionId”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string unionId { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“unionId”必须包含非 null 值。请考虑将 属性 声明为可以为 null。

#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“watermark”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public Watermark watermark { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“watermark”必须包含非 null 值。请考虑将 属性 声明为可以为 null。


    }


    [Serializable]
    public class DecodeEntityBase
    {
#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“watermark”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public Watermark watermark { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“watermark”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
    }

    /// <summary>
    /// 解码后的用户信息
    /// </summary>
    [Serializable]
    public class DecodedUserInfo : DecodeEntityBase
    {
#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“openId”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string openId { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“openId”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“nickName”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string nickName { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“nickName”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public int gender { get; set; }
#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“city”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string city { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“city”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“province”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string province { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“province”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“country”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string country { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“country”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“avatarUrl”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string avatarUrl { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“avatarUrl”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
#pragma warning disable CS8618 // 在退出构造函数时,不可为 null 的 属性“unionId”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
        public string unionId { get; set; }
#pragma warning restore CS8618 // 在退出构造函数时,不可为 null 的 属性“unionId”必须包含非 null 值。请考虑将 属性 声明为可以为 null。
    }

}