package com.xinelu.manage.domain.specialdiseasetriggercondition;

import com.xinelu.common.annotation.Excel;
import com.xinelu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 触发条件关系对象 special_disease_trigger_condition
 *
 * @author xinelu
 * @date 2024-03-18
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "触发条件关系对象", description = "special_disease_trigger_condition")
public class SpecialDiseaseTriggerCondition extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    private Long id;

    /**
     * 专病路径表id
     */
    @ApiModelProperty(value = "专病路径表id")
    @Excel(name = "专病路径表id")
    private Long routeId;

    /**
     * 路径名称
     */
    @ApiModelProperty(value = "路径名称")
    @Excel(name = "路径名称")
    private String routeName;

    /**
     * 触发条件编码
     */
    @ApiModelProperty(value = "触发条件编码")
    @Excel(name = "触发条件编码")
    private String triggerConditionCode;

    /**
     * 触发条件名称，诊断：MAIN_DIAGNOSIS，换药日期：DRESSING_CHANGE_DATE，治疗方式：TREATMENT_METHOD，手术名称：SURGICAL_NAME，药品名称：DRUG_NAME
     */
    @ApiModelProperty(value = "触发条件名称，诊断：MAIN_DIAGNOSIS，换药日期：DRESSING_CHANGE_DATE，治疗方式：TREATMENT_METHOD，手术名称：SURGICAL_NAME，药品名称：DRUG_NAME")
    @Excel(name = "触发条件名称，诊断：MAIN_DIAGNOSIS，换药日期：DRESSING_CHANGE_DATE，治疗方式：TREATMENT_METHOD，手术名称：SURGICAL_NAME，药品名称：DRUG_NAME")
    private String triggerConditionName;

    /**
     * 触发条件运算符，包含：CONTAIN，不包含：NOT_CONTAIN，等于：EQUAL_TO，不等于：NOT_EQUAL_TO
     */
    @ApiModelProperty(value = "触发条件运算符，包含：CONTAIN，不包含：NOT_CONTAIN，等于：EQUAL_TO，不等于：NOT_EQUAL_TO")
    @Excel(name = "触发条件运算符，包含：CONTAIN，不包含：NOT_CONTAIN，等于：EQUAL_TO，不等于：NOT_EQUAL_TO")
    private String triggerConditionOperator;

    /**
     * 触发条件值
     */
    @ApiModelProperty(value = "触发条件值")
    @Excel(name = "触发条件值")
    private String triggerConditionValue;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    @Excel(name = "排序")
    private Integer triggerConditionSort;

	/**
	 * and、or，说明：如果为or，则根据排序同前面条件或运算
	 */
	@ApiModelProperty(value = "and、or，说明：如果为or，则根据排序同前面条件或运算")
	@Excel(name = "and、or，说明：如果为or，则根据排序同前面条件或运算")
	private String triggerLogic;

    /**
     * 备注信息
     */
    @ApiModelProperty(value = "备注信息")
    @Excel(name = "备注信息")
    private String triggerConditionRemark;


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("routeId", getRouteId())
                .append("routeName", getRouteName())
                .append("triggerConditionCode", getTriggerConditionCode())
                .append("triggerConditionName", getTriggerConditionName())
                .append("triggerConditionOperator", getTriggerConditionOperator())
                .append("triggerConditionValue", getTriggerConditionValue())
                .append("triggerConditionSort", getTriggerConditionSort())
                .append("triggerConditionRemark", getTriggerConditionRemark())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
