package cn.com.ctop.alarm.modules.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;

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

/**
 * 规则组
 *
 * @author jeecg-boot
 * @version V1.0
 * @date 2020-11-15
 */
@Data
@TableName("ctop_rule_group")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "ctop_rule_group对象", description = "规则组")
public class RuleGroup {

    /**
     * id
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private Long id;
    private Long templateId;
    /**
     * 规则id列表
     */
    @Excel(name = "规则id列表", width = 15)
    @ApiModelProperty(value = "规则id列表")
    private String ruleIds;
    private String groupName;
    /**
     * 规则类型 group为组合规则 base 为单条规则
     */
    @Excel(name = "规则类型 group为组合规则 base 为单条规则", width = 15)
    @ApiModelProperty(value = "规则类型 group为组合规则 base 为单条规则")
    private String ruleType;
    /**
     * 规则关系 当rule_type 为group时必填 and同时命中  or 命中一条
     */
    @Excel(name = "规则关系 当rule_type 为group时必填 and同时命中  or 命中一条", width = 15)
    @ApiModelProperty(value = "规则关系 当rule_type 为group时必填 and同时命中  or 命中一条")
    private String ruleRelationship;
    /**
     * 操作内容:SEND-发送，PAUSE-关停并发送，BUDGET-修改预算，BID-出价，TIME-投放时间
     */
    private String operate;

    /**
     * 是否有后续操作，0无，1有
     */
    private Integer operation;

    /**
     * 操作类型：up-提高,down-降低,to-调整至
     */
    private String operationType;
    /**
     * 操作内容：price-金额，percent-百分数
     */
    private String operationValue;
    /**
     * 预警发送方式： SMS：短信，WeChat：企业微信，EMAIL：电子邮件,TEL：电话
     */
    private String sendType;

    /**
     * 规则解释
     */
    private String remark;


    private Integer isRequired;//  是否必填  true 是 false 否
    private Integer isCopy;//  是否可复制  true 是 false 否

    /**
     * createTime
     */
    @ApiModelProperty(value = "createTime")
    private Date createTime;
    /**
     * updateTime
     */
    @ApiModelProperty(value = "updateTime")
    private Date updateTime;

    @TableField(exist = false)
    private List<RuleBase> ruleBaseList;

}
