package com.bocloud.nms.model.hillstone;

import java.util.List;
import java.util.Objects;

// 策略路由
public class PolicyRouteModel extends HillStoneGenericModel {
    private Long vendorId; // 所属平台
    private Long virtualRouteId; // 所属虚拟路由器id
    private String virtualRoute; // 所属虚拟路由器
    private String name; // 名称
    private Long bindVirtualRouteId; // 绑定到虚拟路由器id
    private String bindVirtualRoute; // 绑定到虚拟路由器
    private Long bindInterfaceId; // 绑定到接口id
    private String bindInterface; // 绑定到接口
    private Long bindZoneId; // 绑定到安全域id
    private String bindZone; // 绑定到安全域
    // 不知道啥含义，暂时先不入库
    private String iconCls; // ??????
    // 不知道啥含义，暂时先不入库
    private Boolean checked; // ??????
    private List<PolicyRouteRuleModel> rules; // 规则

    public Long getVendorId() {
        return vendorId;
    }

    public void setVendorId(Long vendorId) {
        this.vendorId = vendorId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getVirtualRouteId() {
        return virtualRouteId;
    }

    public void setVirtualRouteId(Long virtualRouteId) {
        this.virtualRouteId = virtualRouteId;
    }

    public String getVirtualRoute() {
        return virtualRoute;
    }

    public void setVirtualRoute(String virtualRoute) {
        this.virtualRoute = virtualRoute;
    }

    public Long getBindVirtualRouteId() {
        return bindVirtualRouteId;
    }

    public void setBindVirtualRouteId(Long bindVirtualRouteId) {
        this.bindVirtualRouteId = bindVirtualRouteId;
    }

    public String getBindVirtualRoute() {
        return bindVirtualRoute;
    }

    public void setBindVirtualRoute(String bindVirtualRoute) {
        this.bindVirtualRoute = bindVirtualRoute;
    }

    public Long getBindInterfaceId() {
        return bindInterfaceId;
    }

    public void setBindInterfaceId(Long bindInterfaceId) {
        this.bindInterfaceId = bindInterfaceId;
    }

    public String getBindInterface() {
        return bindInterface;
    }

    public void setBindInterface(String bindInterface) {
        this.bindInterface = bindInterface;
    }

    public Long getBindZoneId() {
        return bindZoneId;
    }

    public void setBindZoneId(Long bindZoneId) {
        this.bindZoneId = bindZoneId;
    }

    public String getBindZone() {
        return bindZone;
    }

    public void setBindZone(String bindZone) {
        this.bindZone = bindZone;
    }

    public String getIconCls() {
        return iconCls;
    }

    public void setIconCls(String iconCls) {
        this.iconCls = iconCls;
    }

    public Boolean getChecked() {
        return checked;
    }

    public void setChecked(Boolean checked) {
        this.checked = checked;
    }

    public List<PolicyRouteRuleModel> getRules() {
        return rules;
    }

    public void setRules(List<PolicyRouteRuleModel> rules) {
        this.rules = rules;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        PolicyRouteModel that = (PolicyRouteModel) o;
        return Objects.equals(virtualRouteId, that.virtualRouteId) &&
            Objects.equals(name, that.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(virtualRouteId, name);
    }
}
