package com.flossom.common.core.domain.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.flossom.common.core.annotation.Excel;
import com.flossom.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 模式列对象 wx_mode
 *
 * @author flossom
 * @date 2024-01-17
 */
public class WxMode extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 仪器类型：1、非iot仪器 2、iot仪器 */
    @Excel(name = "仪器类型：1、非iot仪器 2、iot仪器")
    private Integer instrumentType;

    /** 仪器型号 */
    @Excel(name = "仪器型号")
    private String instrumentModel;

    /** 模式名称 */
    @Excel(name = "模式名称")
    private String modeName;

    /** 模式描述 */
    @Excel(name = "模式描述")
    private String modeDesc;

    /** 模式封面图片 */
    @Excel(name = "模式封面图片")
    private String modeBanner;

    /** 模式视频 */
    @Excel(name = "模式视频")
    private String modeVideo;

    /** 模式类型(每个仪器有不一样的模式类型) */
    @Excel(name = "模式类型(每个仪器有不一样的模式类型)")
    private String modeType;

    /** 模式分类(每个仪器有不一样的模式分类) */
    @Excel(name = "模式分类(每个仪器有不一样的模式分类)")
    private Long modeClass;

    /** 是否自定义模式: 0 不是 1是 */
    private Integer isCustomMode;

    /** 是否属于舱体模式：0、不是 1、是 */
    @Excel(name = "是否属于舱体模式：0、不是 1、是")
    private Integer isCabinMode;

    /** 模式时长 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "模式时长", width = 30, dateFormat = "yyyy-MM-dd")
    private Integer modeTime;

    /** 准备视频 */
    @Excel(name = "准备视频")
    private String preparationVideo;

    /** 启动图片GIF */
    @Excel(name = "启动图片GIF")
    private String beganVideo;

    /** 暂停图片GIF */
    @Excel(name = "暂停图片GIF")
    private String pauseVideo;

    /** 状态（0正常 1停用） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private Long status;

    // 展示标签
    private String lockWechatTag;

    private String lockCompanyTag;

    // 弹出弹窗实体类
    private List<WxModeOpenSource> openSourceData;
    // 服务实体类
    private List<WxModeServiceInfo> serviceData;
    // 组合实体类
    private List<WxModeCombineInfo> combineData;

    private List<Long> lockWechatTagArray = new ArrayList<Long>();

    private List<Long> lockCompanyTagArray = new ArrayList<Long>();

    private Integer isNew;


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

    public Long getId()
    {
        return id;
    }
    public void setInstrumentType(Integer instrumentType)
    {
        this.instrumentType = instrumentType;
    }

    public Integer getInstrumentType()
    {
        return instrumentType;
    }
    public void setInstrumentModel(String instrumentModel)
    {
        this.instrumentModel = instrumentModel;
    }

    public String getInstrumentModel()
    {
        return instrumentModel;
    }
    public void setModeName(String modeName)
    {
        this.modeName = modeName;
    }

    public String getModeName()
    {
        return modeName;
    }
    public void setModeDesc(String modeDesc)
    {
        this.modeDesc = modeDesc;
    }

    public String getModeDesc()
    {
        return modeDesc;
    }
    public void setModeBanner(String modeBanner)
    {
        this.modeBanner = modeBanner;
    }

    public String getModeBanner()
    {
        return modeBanner;
    }
    public void setModeVideo(String modeVideo)
    {
        this.modeVideo = modeVideo;
    }

    public String getModeVideo()
    {
        return modeVideo;
    }
    public void setModeType(String modeType)
    {
        this.modeType = modeType;
    }

    public String getModeType()
    {
        return modeType;
    }
    public void setModeClass(Long modeClass)
    {
        this.modeClass = modeClass;
    }

    public Long getModeClass()
    {
        return modeClass;
    }
    public void setIsCabinMode(Integer isCabinMode)
    {
        this.isCabinMode = isCabinMode;
    }

    public Integer getIsCabinMode()
    {
        return isCabinMode;
    }
    public void setModeTime(Integer modeTime)
    {
        this.modeTime = modeTime;
    }

    public Integer getModeTime()
    {
        return modeTime;
    }
    public void setPreparationVideo(String preparationVideo)
    {
        this.preparationVideo = preparationVideo;
    }

    public String getPreparationVideo()
    {
        return preparationVideo;
    }
    public void setBeganVideo(String beganVideo)
    {
        this.beganVideo = beganVideo;
    }

    public String getBeganVideo()
    {
        return beganVideo;
    }
    public void setPauseVideo(String pauseVideo)
    {
        this.pauseVideo = pauseVideo;
    }

    public String getPauseVideo()
    {
        return pauseVideo;
    }
    public void setStatus(Long status)
    {
        this.status = status;
    }

    public Long getStatus()
    {
        return status;
    }

    public String getLockWechatTag() {
        return lockWechatTag;
    }

    public void setLockWechatTag(String lockWechatTag) {
        this.lockWechatTag = lockWechatTag;
    }

    public String getLockCompanyTag() {
        return lockCompanyTag;
    }

    public void setLockCompanyTag(String lockCompanyTag) {
        this.lockCompanyTag = lockCompanyTag;
    }

    public List<Long> getLockWechatTagArray() {
        return lockWechatTagArray;
    }

    public void setLockWechatTagArray(List<Long> lockWechatTagArray) {
        this.lockWechatTagArray = lockWechatTagArray;
    }

    public List<Long> getLockCompanyTagArray() {
        return lockCompanyTagArray;
    }

    public void setLockCompanyTagArray(List<Long> lockCompanyTagArray) {
        this.lockCompanyTagArray = lockCompanyTagArray;
    }

    public List<WxModeOpenSource> getOpenSourceData() {
        return openSourceData;
    }

    public void setOpenSourceData(List<WxModeOpenSource> openSourceData) {
        this.openSourceData = openSourceData;
    }

    public List<WxModeServiceInfo> getServiceData() {
        return serviceData;
    }

    public void setServiceData(List<WxModeServiceInfo> serviceData) {
        this.serviceData = serviceData;
    }

    public List<WxModeCombineInfo> getCombineData() {
        return combineData;
    }

    public void setCombineData(List<WxModeCombineInfo> combineData) {
        this.combineData = combineData;
    }

    public Integer getIsNew() {
        return isNew;
    }

    public void setIsNew(Integer isNew) {
        this.isNew = isNew;
    }

    public Integer getIsCustomMode() {
        return isCustomMode;
    }

    public void setIsCustomMode(Integer isCustomMode) {
        this.isCustomMode = isCustomMode;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("instrumentType", getInstrumentType())
            .append("instrumentModel", getInstrumentModel())
            .append("modeName", getModeName())
            .append("modeDesc", getModeDesc())
            .append("modeBanner", getModeBanner())
            .append("modeVideo", getModeVideo())
            .append("modeType", getModeType())
            .append("modeClass", getModeClass())
            .append("isCabinMode", getIsCabinMode())
            .append("modeTime", getModeTime())
            .append("preparationVideo", getPreparationVideo())
            .append("beganVideo", getBeganVideo())
            .append("pauseVideo", getPauseVideo())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
