package com.ruoyi.integration.domain;

import java.util.Date;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 外部系统对象 dc_external_system
 * 
 * @author ruoyi
 * @date 2025-12-17
 */
public class ExternalSystem extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 系统ID */
    private Long systemId;

    /** 系统名称 */
    @Excel(name = "系统名称")
    @NotBlank(message = "系统名称不能为空")
    @Size(max = 100, message = "系统名称长度不能超过100个字符")
    private String systemName;

    /** 系统编码 */
    @Excel(name = "系统编码")
    @NotBlank(message = "系统编码不能为空")
    @Size(max = 100, message = "系统编码长度不能超过100个字符")
    private String systemCode;

    /** 系统类型 */
    @Excel(name = "系统类型")
    @NotBlank(message = "系统类型不能为空")
    @Size(max = 50, message = "系统类型长度不能超过50个字符")
    private String systemType;

    /** 系统URL */
    @Excel(name = "系统URL")
    @Size(max = 500, message = "系统URL长度不能超过500个字符")
    private String systemUrl;

    /** API版本 */
    @Excel(name = "API版本")
    @Size(max = 50, message = "API版本长度不能超过50个字符")
    private String apiVersion;

    /** 认证类型 */
    @Excel(name = "认证类型")
    @Size(max = 50, message = "认证类型长度不能超过50个字符")
    private String authType;

    /** 认证配置 */
    @Size(max = 2000, message = "认证配置长度不能超过2000个字符")
    private String authConfig;

    /** 连接配置 */
    @Size(max = 2000, message = "连接配置长度不能超过2000个字符")
    private String connectionConfig;

    /** 系统状态 */
    @Excel(name = "系统状态")
    @NotBlank(message = "系统状态不能为空")
    @Size(max = 50, message = "系统状态长度不能超过50个字符")
    private String systemStatus;

    /** 健康检查URL */
    @Excel(name = "健康检查URL")
    @Size(max = 500, message = "健康检查URL长度不能超过500个字符")
    private String healthCheckUrl;

    /** 最后健康检查时间 */
    @Excel(name = "最后健康检查时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date lastHealthCheck;

    public void setSystemId(Long systemId) 
    {
        this.systemId = systemId;
    }

    public Long getSystemId() 
    {
        return systemId;
    }
    public void setSystemName(String systemName) 
    {
        this.systemName = systemName;
    }

    public String getSystemName() 
    {
        return systemName;
    }
    public void setSystemCode(String systemCode) 
    {
        this.systemCode = systemCode;
    }

    public String getSystemCode() 
    {
        return systemCode;
    }
    public void setSystemType(String systemType) 
    {
        this.systemType = systemType;
    }

    public String getSystemType() 
    {
        return systemType;
    }
    public void setSystemUrl(String systemUrl) 
    {
        this.systemUrl = systemUrl;
    }

    public String getSystemUrl() 
    {
        return systemUrl;
    }
    public void setApiVersion(String apiVersion) 
    {
        this.apiVersion = apiVersion;
    }

    public String getApiVersion() 
    {
        return apiVersion;
    }
    public void setAuthType(String authType) 
    {
        this.authType = authType;
    }

    public String getAuthType() 
    {
        return authType;
    }
    public void setAuthConfig(String authConfig) 
    {
        this.authConfig = authConfig;
    }

    public String getAuthConfig() 
    {
        return authConfig;
    }
    public void setConnectionConfig(String connectionConfig) 
    {
        this.connectionConfig = connectionConfig;
    }

    public String getConnectionConfig() 
    {
        return connectionConfig;
    }
    public void setSystemStatus(String systemStatus) 
    {
        this.systemStatus = systemStatus;
    }

    public String getSystemStatus() 
    {
        return systemStatus;
    }
    public void setHealthCheckUrl(String healthCheckUrl) 
    {
        this.healthCheckUrl = healthCheckUrl;
    }

    public String getHealthCheckUrl() 
    {
        return healthCheckUrl;
    }
    public void setLastHealthCheck(Date lastHealthCheck) 
    {
        this.lastHealthCheck = lastHealthCheck;
    }

    public Date getLastHealthCheck() 
    {
        return lastHealthCheck;
    }

    @Override
    public String toString() {
        return "ExternalSystem{" +
                "systemId=" + systemId +
                ", systemName='" + systemName + '\'' +
                ", systemCode='" + systemCode + '\'' +
                ", systemType='" + systemType + '\'' +
                ", systemUrl='" + systemUrl + '\'' +
                ", apiVersion='" + apiVersion + '\'' +
                ", authType='" + authType + '\'' +
                ", authConfig='" + authConfig + '\'' +
                ", connectionConfig='" + connectionConfig + '\'' +
                ", systemStatus='" + systemStatus + '\'' +
                ", healthCheckUrl='" + healthCheckUrl + '\'' +
                ", lastHealthCheck=" + lastHealthCheck +
                '}';
    }
}