package com.yutou.biliapi.bean.user;

import com.alibaba.fastjson2.annotation.JSONField;
import com.yutou.common.okhttp.BaseBean;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

@EqualsAndHashCode(callSuper = true)
@Data
public class UserFollowingsBean extends BaseBean {

    @JSONField(name = "list")
    private List<Follow> list;
    @JSONField(name = "total")
    private int total;

    @Data
    public static class Follow{
        @JSONField(name = "mid")
        private String mid;

        @JSONField(name = "attribute")
        private int attribute;

        @JSONField(name = "mtime")
        private long mtime;

        @JSONField(name = "tag")
        private Object tag; // 可能为 null

        @JSONField(name = "special")
        private int special;

        @JSONField(name = "contract_info")
        private Object contractInfo; // 可能为一个空对象 {}

        @JSONField(name = "uname")
        private String uname;

        @JSONField(name = "face")
        private String face;

        @JSONField(name = "sign")
        private String sign;

        @JSONField(name = "face_nft")
        private int faceNft;

        @JSONField(name = "official_verify")
        private OfficialVerify officialVerify;

        @JSONField(name = "vip")
        private Vip vip;

        @JSONField(name = "name_render")
        private Object nameRender; // 可能为一个空对象 {}

        @JSONField(name = "nft_icon")
        private String nftIcon;

        @JSONField(name = "rec_reason")
        private String recReason;

        @JSONField(name = "track_id")
        private String trackId;

        @JSONField(name = "follow_time")
        private String followTime;
    }



    @Data
    public static class OfficialVerify {
        @JSONField(name = "type")
        private int type;

        @JSONField(name = "desc")
        private String desc;
    }

    @Data
    public static class Vip {
        @JSONField(name = "vipType")
        private int vipType;

        @JSONField(name = "vipDueDate")
        private long vipDueDate;

        @JSONField(name = "dueRemark")
        private String dueRemark;

        @JSONField(name = "accessStatus")
        private int accessStatus;

        @JSONField(name = "vipStatus")
        private int vipStatus;

        @JSONField(name = "vipStatusWarn")
        private String vipStatusWarn;

        @JSONField(name = "themeType")
        private int themeType;

        @JSONField(name = "label")
        private Label label;

        @JSONField(name = "avatar_subscript")
        private int avatarSubscript;

        @JSONField(name = "nickname_color")
        private String nicknameColor;

        @JSONField(name = "avatar_subscript_url")
        private String avatarSubscriptUrl;
    }

    @Data
    public static class Label {
        @JSONField(name = "path")
        private String path;

        @JSONField(name = "text")
        private String text;

        @JSONField(name = "label_theme")
        private String labelTheme;

        @JSONField(name = "text_color")
        private String textColor;

        @JSONField(name = "bg_style")
        private int bgStyle;

        @JSONField(name = "bg_color")
        private String bgColor;

        @JSONField(name = "border_color")
        private String borderColor;
    }
}
