package com.ruoyi.security.domain;

import java.util.Date;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 风险事件跟踪对象 dc_risk_event_tracking
 * 
 * @author ruoyi
 * @date 2025-12-22
 */
public class RiskEventTracking extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 跟踪ID */
    private Long trackingId;

    /** 风险事件ID */
    @Excel(name = "风险事件ID")
    private Long eventId;

    /** 跟踪状态 */
    @Excel(name = "跟踪状态")
    private String trackingStatus;

    /** 采取的行动 */
    @Excel(name = "采取的行动")
    private String actionTaken;

    /** 行动结果 */
    @Excel(name = "行动结果")
    private String actionResult;

    /** 行动时间 */
    @Excel(name = "行动时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date actionTime;

    /** 行动人 */
    @Excel(name = "行动人")
    private String actionBy;

    /** 下一步行动 */
    @Excel(name = "下一步行动")
    private String nextAction;

    /** 下一步行动时间 */
    @Excel(name = "下一步行动时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date nextActionTime;

    // 跟踪状态常量
    public static final String TRACKING_STATUS_PENDING = "PENDING";
    public static final String TRACKING_STATUS_IN_PROGRESS = "IN_PROGRESS";
    public static final String TRACKING_STATUS_COMPLETED = "COMPLETED";
    public static final String TRACKING_STATUS_CANCELLED = "CANCELLED";

    public void setTrackingId(Long trackingId) 
    {
        this.trackingId = trackingId;
    }

    public Long getTrackingId() 
    {
        return trackingId;
    }

    public void setEventId(Long eventId) 
    {
        this.eventId = eventId;
    }

    public Long getEventId() 
    {
        return eventId;
    }

    public void setTrackingStatus(String trackingStatus) 
    {
        this.trackingStatus = trackingStatus;
    }

    public String getTrackingStatus() 
    {
        return trackingStatus;
    }

    public void setActionTaken(String actionTaken) 
    {
        this.actionTaken = actionTaken;
    }

    public String getActionTaken() 
    {
        return actionTaken;
    }

    public void setActionResult(String actionResult) 
    {
        this.actionResult = actionResult;
    }

    public String getActionResult() 
    {
        return actionResult;
    }

    public void setActionTime(Date actionTime) 
    {
        this.actionTime = actionTime;
    }

    public Date getActionTime() 
    {
        return actionTime;
    }

    public void setActionBy(String actionBy) 
    {
        this.actionBy = actionBy;
    }

    public String getActionBy() 
    {
        return actionBy;
    }

    public void setNextAction(String nextAction) 
    {
        this.nextAction = nextAction;
    }

    public String getNextAction() 
    {
        return nextAction;
    }

    public void setNextActionTime(Date nextActionTime) 
    {
        this.nextActionTime = nextActionTime;
    }

    public Date getNextActionTime() 
    {
        return nextActionTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("trackingId", getTrackingId())
            .append("eventId", getEventId())
            .append("trackingStatus", getTrackingStatus())
            .append("actionTaken", getActionTaken())
            .append("actionResult", getActionResult())
            .append("actionTime", getActionTime())
            .append("actionBy", getActionBy())
            .append("nextAction", getNextAction())
            .append("nextActionTime", getNextActionTime())
            .append("createTime", getCreateTime())
            .toString();
    }
}