package com.ym.mec.biz.dal.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;

/**
 * 直播房间管理表(ImLiveBroadcastRoom)表实体类
 *
 * @author hgw
 * @since 2022-02-17 20:52:05
 */
@ApiModel(value = "直播房间管理")
public class ImLiveBroadcastRoomDto implements Serializable {
    @ApiModelProperty(value = "主键")
    private Integer id;

    @ApiModelProperty(value = "机构id")
    private Integer tenantId;

    @NotNull(message = "主讲人不能为空!")
    @ApiModelProperty(value = "主讲人id/老师id")
    private Integer speakerId;

    @Size(max = 12, message = "房间标题最多12个字!")
    @NotBlank(message = "房间标题不能为空")
    @ApiModelProperty(value = "房间标题/最多12个字")
    private String roomTitle;

    @NotNull(message = "直播开始时间不能为空!")
    @ApiModelProperty(value = "直播开始时间")
    private Date liveStartTime;

    @Size(max = 200, message = "直播内容最多200个字!")
    @NotBlank(message = "直播内容不能为空")
    @ApiModelProperty(value = "直播内容/最多200个字")
    private String liveRemark;

    @NotBlank(message = "预热模版不能为空")
    @ApiModelProperty(value = "预热模版")
    private String preTemplate;

    @ApiModelProperty(value = "房间配置")
    private RoomConfig roomConfig;

    @NotBlank(message = "直播间类型不能为空")
    @ApiModelProperty(value = "直播间可见类型-全部可见 ALL / 部分可见 PRIVATE")
    private String popularizeType;

    @ApiModelProperty(value = "播出端-  pc网页端 移动端mobile")
    private String os = "pc";

    @ApiModel(value = "房间配置")
    public static class RoomConfig implements Serializable {

        @ApiModelProperty(value = "是否允许点赞 0允许 1不允许")
        private Integer whether_like = 0;

        @ApiModelProperty(value = "是否允许聊天互动  0允许 1不允许")
        private Integer whether_chat = 0;

        @ApiModelProperty(value = "是否允许保存直播回放 0允许 1不允许")
        private Integer whether_video = 1;

        @ApiModelProperty(value = "是否允许连麦 0允许 1不允许")
        private Integer whether_mic = 0;

        @ApiModelProperty(value = "是否展示购物车 0展示 1不展示")
        private Integer whether_view_shop_cart = 0;

        public Integer getWhether_like() {
            return whether_like;
        }

        public void setWhether_like(Integer whether_like) {
            this.whether_like = whether_like;
        }

        public Integer getWhether_chat() {
            return whether_chat;
        }

        public void setWhether_chat(Integer whether_chat) {
            this.whether_chat = whether_chat;
        }

        public Integer getWhether_video() {
            return whether_video;
        }

        public void setWhether_video(Integer whether_video) {
            this.whether_video = whether_video;
        }

        public Integer getWhether_mic() {
            return whether_mic;
        }

        public void setWhether_mic(Integer whether_mic) {
            this.whether_mic = whether_mic;
        }

        public Integer getWhether_view_shop_cart() {
            return whether_view_shop_cart;
        }

        public void setWhether_view_shop_cart(Integer whether_view_shop_cart) {
            this.whether_view_shop_cart = whether_view_shop_cart;
        }
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getTenantId() {
        return tenantId;
    }

    public void setTenantId(Integer tenantId) {
        this.tenantId = tenantId;
    }

    public Integer getSpeakerId() {
        return speakerId;
    }

    public void setSpeakerId(Integer speakerId) {
        this.speakerId = speakerId;
    }

    public String getRoomTitle() {
        return roomTitle;
    }

    public void setRoomTitle(String roomTitle) {
        this.roomTitle = roomTitle;
    }

    public Date getLiveStartTime() {
        return liveStartTime;
    }

    public void setLiveStartTime(Date liveStartTime) {
        this.liveStartTime = liveStartTime;
    }

    public String getLiveRemark() {
        return liveRemark;
    }

    public void setLiveRemark(String liveRemark) {
        this.liveRemark = liveRemark;
    }

    public String getPreTemplate() {
        return preTemplate;
    }

    public void setPreTemplate(String preTemplate) {
        this.preTemplate = preTemplate;
    }

    public RoomConfig getRoomConfig() {
        return roomConfig;
    }

    public void setRoomConfig(RoomConfig roomConfig) {
        this.roomConfig = roomConfig;
    }

    public String getPopularizeType() {
        return popularizeType;
    }

    public void setPopularizeType(String popularizeType) {
        this.popularizeType = popularizeType;
    }

    public String getOs() {
        return os;
    }

    public void setOs(String os) {
        this.os = os;
    }
}

