package com.sf.service.gateway.domain.vo;

import com.sf.common.annotation.Excel;
import com.sf.service.gateway.domain.GatewayRoute;
import com.sf.service.gateway.enums.GatewayRouteType;
import com.sf.service.gateway.enums.RequestProtocol;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;

/**
 * 路由列表展示
 * 
 * @author 邹坤
 * @date 2024-04-22
 */
@Data
public class GatewayRouteListVO {
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 路由名称 */
    private String routeName;

    /** 请求协议，目前只支持HTTP */
    private String requestProtocol;

    /** 路由类型（WEIGHT_ROUTE=权重路由，HEADER_ROUTE=请求头路由） */
    private String routeType;

    /** 路由配置信息，json格式*/
    @Excel(name = "路由配置信息，json格式")
    @NotNull(message = "路由配置信息不能为空")
    @Size(min = 1,message = "路由配置信息最少存在一条")
    @Valid
    private List<GatewayRoute.RouteContent> routeContent;

    /** 路由状态探活（0停用 1启用） */
    private String routeStatusActiveMonitoring;

    /** 路由探活路径 */
    private String routeActiveMonitoringPath;

    /** 路由探活超时时间，单位ms */
    private Long routeActiveMonitoringTimeout;

    @ApiModelProperty("创建者")
    private String created;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("路由活跃状态（0=探活未开启，1=状态获取中，2=正常，3=异常）")
    private String routeActiveStatus;

}
