package com.yutou.biliapi.bean.live;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;

import java.math.BigInteger;
import java.util.List;

@Data
public class LiveRoomInfo {
    @JSONField(name = "uid")
    private String uid;

    @JSONField(name = "room_id")
    private String roomId;

    @JSONField(name = "short_id")
    private int shortId;

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

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

    @JSONField(name = "is_portrait")
    private boolean isPortrait;

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

    @JSONField(name = "live_status")
    private int liveStatus;

    @JSONField(name = "area_id")
    private int areaId;

    @JSONField(name = "parent_area_id")
    private int parentAreaId;

    @JSONField(name = "parent_area_name")
    private String parentAreaName;

    @JSONField(name = "old_area_id")
    private int oldAreaId;

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

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

    @JSONField(name = "user_cover")
    private String userCover;

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

    @JSONField(name = "is_strict_room")
    private boolean isStrictRoom;

    @JSONField(name = "live_time")
    private String liveTime;

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

    @JSONField(name = "is_anchor")
    private int isAnchor;

    @JSONField(name = "room_silent_type")
    private String roomSilentType;

    @JSONField(name = "room_silent_level")
    private int roomSilentLevel;

    @JSONField(name = "room_silent_second")
    private int roomSilentSecond;

    @JSONField(name = "area_name")
    private String areaName;

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

    @JSONField(name = "area_pendants")
    private String areaPendants;

    @JSONField(name = "hot_words")
    private List<String> hotWords;

    @JSONField(name = "hot_words_status")
    private int hotWordsStatus;

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

    @JSONField(name = "new_pendants")
    private NewPendants newPendants;

    @JSONField(name = "up_session")
    private String upSession;

    @JSONField(name = "pk_status")
    private int pkStatus;

    @JSONField(name = "pk_id")
    private int pkId;

    @JSONField(name = "battle_id")
    private int battleId;

    @JSONField(name = "allow_change_area_time")
    private int allowChangeAreaTime;

    @JSONField(name = "allow_upload_cover_time")
    private int allowUploadCoverTime;

    @JSONField(name = "studio_info")
    private StudioInfo studioInfo;

    @Data
    public static class NewPendants {
        @JSONField(name = "frame")
        private Frame frame;

        @JSONField(name = "badge")
        private Badge badge;

        @JSONField(name = "mobile_frame")
        private MobileFrame mobileFrame;
        @JSONField(name = "mobile_badge")
        private MobileBadge mobileBadge;
    }

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

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

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

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

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

        @JSONField(name = "area_old")
        private int areaOld;

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

        @JSONField(name = "bg_pic")
        private String bgPic;

        @JSONField(name = "use_old_area")
        private boolean useOldArea;
    }

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

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

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

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

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

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

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

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

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

        @JSONField(name = "area_old")
        private int areaOld;

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

        @JSONField(name = "bg_pic")
        private String bgPic;

        @JSONField(name = "use_old_area")
        private boolean useOldArea;
    }

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

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

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

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

    @Data
    public static class StudioInfo {
        @JSONField(name = "status")
        private int status;

        @JSONField(name = "master_list")
        private List<String> masterList;
    }

}
