package com.xinelu.manage.domain.taskpartitiondict;

import com.fasterxml.jackson.annotation.JsonFormat;
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;

import java.time.LocalTime;

/**
 * 任务细分字典对象 task_partition_dict
 *
 * @author xinelu
 * @date 2024-03-11
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "任务细分字典对象", description = "task_partition_dict")
public class TaskPartitionDict extends BaseEntity {
    private static final long serialVersionUID = 1L;

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

    /**
     * 任务类型表id
     */
    @ApiModelProperty(value = "任务类型表id")
    @Excel(name = "任务类型表id")
    private Long taskTypeId;

    /**
     * 任务类型名称
     */
    @ApiModelProperty(value = "任务类型名称")
    @Excel(name = "任务类型名称")
    private String taskTypeName;

    /**
     * 任务细分名称
     */
    @ApiModelProperty(value = "任务细分名称")
    @Excel(name = "任务细分名称")
    private String taskPartitionName;

    /**
     * 任务细分编码
     */
    @ApiModelProperty(value = "任务细分编码，健康档案：HEALTH_ARCHIVE，用药指导：MEDICATION_GUIDE, 运动指导：SPORT_GUIDE，饮食建议：DIET_GUIDE，居家护理：NURSING_GUIDE")
    @Excel(name = "任务细分编码")
    private String taskPartitionCode;

    /**
     * 二级分类描述
     */
    @ApiModelProperty(value = "二级分类描述")
    @Excel(name = "二级分类描述")
    private String secondClassifyDescribe;

    /**
     * 执行时间，格式：HH:mm
     */
    @ApiModelProperty(value = "执行时间，格式：HH:mm")
    @JsonFormat(pattern = "HH:mm")
    @Excel(name = "执行时间，格式：HH:mm", width = 30, dateFormat = "yyyy-MM-dd")
    private LocalTime executionTime;

    /**
     * 任务细分排序
     */
    @ApiModelProperty(value = "任务细分排序")
    @Excel(name = "任务细分排序")
    private Integer taskPartitionSort;

    /**
     * 任务细分备注
     */
    @ApiModelProperty(value = "任务细分备注")
    @Excel(name = "任务细分备注")
    private String taskPartitionRemark;

    /**
     * 任务细分模板内容
     */
    @ApiModelProperty(value = "任务细分模板内容")
    @Excel(name = "任务细分模板内容")
    private String taskPartitionContent;

    /**
     * 模板类型
     */
    @ApiModelProperty(value = "模板类型")
    @Excel(name = "模板类型")
    private String templateType;

	/**
	 * 节点类型
	 * PHONE_OUTBOUND：电话外呼(默认自动。人工或自动)； QUESTIONNAIRE_SCALE：问卷量表（消息推送或人工随访）；
	 * PROPAGANDA_ARTICLE：宣教文章； TEXT_REMIND：文字提醒（微信、短信、公众号）
	 */
	@ApiModelProperty(value = "节点类型，PHONE_OUTBOUND：电话外呼(默认自动。人工或自动)；QUESTIONNAIRE_SCALE：问卷量表（消息推送或人工随访）；PROPAGANDA_ARTICLE：宣教文章；TEXT_REMIND：文字提醒（微信、短信、公众号）")
	private String taskNodeType;

    /**
     * 应用范围;PRIVATE：专用；PUBLIC：公共
     */
    private String applyRange;

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("taskTypeId", getTaskTypeId())
                .append("taskTypeName", getTaskTypeName())
                .append("taskPartitionName", getTaskPartitionName())
                .append("taskPartitionCode", getTaskPartitionCode())
                .append("secondClassifyDescribe", getSecondClassifyDescribe())
                .append("executionTime", getExecutionTime())
                .append("taskPartitionSort", getTaskPartitionSort())
                .append("taskPartitionRemark", getTaskPartitionRemark())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
