using System.Collections.Generic;
using System.Text.Json.Serialization;

namespace Myshipping.Core;

/// <summary>
/// 微信用户参数
/// </summary>
public class UserInfoModel
{
    [JsonPropertyName("nickname")]
    public string Name { get; set; }

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

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

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

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

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

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

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

    /// <summary>
    /// 用户特权信息,json 数组,如微信沃卡用户为(chinaunicom)
    /// </summary>
    [JsonPropertyName("privilege")]
    public List<string> Privilege { get; set; }

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

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

public static class UserInfoModelExtensions
{
    /// <summary>
    /// 获取的用户是否包含错误
    /// </summary>
    /// <param name="userInfoModel"></param>
    /// <returns></returns>
    public static bool HasError(this UserInfoModel userInfoModel)
    {
        return userInfoModel == null ||
               string.IsNullOrEmpty(userInfoModel.Name) ||
               !string.IsNullOrEmpty(userInfoModel.ErrorMessage);
    }
}