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

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;

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

/**
 * 话术模板对象 wx_script_template
 *
 * @author flossom
 * @date 2023-12-18
 */
public class WxScriptTemplate extends BaseEntity
{
    private static final long serialVersionUID = 1L;

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


    /** 话术名称 */
    @Excel(name = "话术名称")
    private String scriptName;

    /** 话术标题 */
    @Excel(name = "话术标题")
    private String titile;

    /** 话术内容 */
    @Excel(name = "话术内容")
    private String content;

    /** 标签名字 */
    @Excel(name = "标签名字")
    private String tagNames;

    /** 标签ID */
    @Excel(name = "标签ID")
    private String tagIds;

    /** 话术等级：1一级 2 二级 */
    @Excel(name = "话术等级：1一级 2 二级")
    private Long level;

    /** 1小程序标签  2企微标签 */
    @Excel(name = "1小程序标签  2企微标签")
    private Integer tagType;

    /** 跳转类型：0无跳转、1跳转内部链接、3跳转外部链接、4跳转小程序、5导向视频号、6导向视频号直播间 */
    @Excel(name = "跳转类型：0无跳转、1跳转内部链接、3跳转外部链接、4跳转小程序、5导向视频号、6导向视频号直播间")
    private Integer type;

    /** 跳转链接（跳转外部链接、跳转内部链接） */
    @Excel(name = "跳转链接", readConverterExp = "跳=转外部链接、跳转内部链接")
    private String link;

    /** 跳转链接参数（跳转内部链接） */
    @Excel(name = "跳转链接参数", readConverterExp = "跳=转内部链接")
    private String linkParams;

    /** 外链小程序appid（跳转小程序） */
    @Excel(name = "外链小程序appid", readConverterExp = "跳=转小程序")
    private String redirectAppid;

    /** 外链小程序url（跳转小程序） */
    @Excel(name = "外链小程序url", readConverterExp = "跳=转小程序")
    private String redirectUrl;

    /** 视频号（导向视频号、导向视频号直播间） */
    @Excel(name = "视频号", readConverterExp = "导=向视频号、导向视频号直播间")
    private String videoNo;

    /** 视频号feedId（导向视频号） */
    @Excel(name = "视频号feedId", readConverterExp = "导=向视频号")
    private String feedId;

    /** 父级 */
    @Excel(name = "父级")
    private Long parentId;

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

    /** 子话术 */
    private List<SysTag> children = new ArrayList<SysTag>();


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


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

    public Long getId()
    {
        return id;
    }
    public void setTitile(String titile)
    {
        this.titile = titile;
    }

    public String getTitile()
    {
        return titile;
    }
    public void setContent(String content)
    {
        this.content = content;
    }

    public String getContent()
    {
        return content;
    }
    public void setLevel(Long level)
    {
        this.level = level;
    }

    public Long getLevel()
    {
        return level;
    }
    public void setTagType(Integer tagType)
    {
        this.tagType = tagType;
    }

    public Integer getTagType()
    {
        return tagType;
    }
    public void setType(Integer type)
    {
        this.type = type;
    }

    public Integer getType()
    {
        return type;
    }
    public void setLink(String link)
    {
        this.link = link;
    }

    public String getLink()
    {
        return link;
    }
    public void setLinkParams(String linkParams)
    {
        this.linkParams = linkParams;
    }

    public String getLinkParams()
    {
        return linkParams;
    }
    public void setRedirectAppid(String redirectAppid)
    {
        this.redirectAppid = redirectAppid;
    }

    public String getRedirectAppid()
    {
        return redirectAppid;
    }
    public void setRedirectUrl(String redirectUrl)
    {
        this.redirectUrl = redirectUrl;
    }

    public String getRedirectUrl()
    {
        return redirectUrl;
    }

    public void setParentId(Long parentId)
    {
        this.parentId = parentId;
    }

    public Long getParentId()
    {
        return parentId;
    }
    public void setStatus(Long status)
    {
        this.status = status;
    }

    public Long getStatus()
    {
        return status;
    }

    public List<SysTag> getChildren() {
        return children;
    }

    public void setChildren(List<SysTag> children) {
        this.children = children;
    }

    public String getScriptName() {
        return scriptName;
    }

    public void setScriptName(String scriptName) {
        this.scriptName = scriptName;
    }

    public String getVideoNo() {
        return videoNo;
    }

    public void setVideoNo(String videoNo) {
        this.videoNo = videoNo;
    }

    public String getFeedId() {
        return feedId;
    }

    public void setFeedId(String feedId) {
        this.feedId = feedId;
    }

    public String getTagNames() {
        return tagNames;
    }

    public void setTagNames(String tagNames) {
        this.tagNames = tagNames;
    }

    public String getTagIds() {
        return tagIds;
    }

    public void setTagIds(String tagIds) {
        this.tagIds = tagIds;
    }

    public List<Long> getTagIdArray() {
        return tagIdArray;
    }

    public void setTagIdArray(List<Long> tagIdArray) {
        this.tagIdArray = tagIdArray;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("titile", getTitile())
            .append("content", getContent())
            .append("level", getLevel())
            .append("tagType", getTagType())
            .append("type", getType())
            .append("link", getLink())
            .append("linkParams", getLinkParams())
            .append("redirectAppid", getRedirectAppid())
            .append("redirectUrl", getRedirectUrl())
            .append("parentId", getParentId())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
