package com.bocloud.nms.model.campus;

import java.util.Objects;

/**
 * @description: 二层网络域
 * @author: Li Yaohui
 * @since: 2021/2/25 3:13 下午
 */
public class DomainModel {

    private Long domainId; // id
    private String name; // 名称
    private Long vrfId; // 私网ID
    private Long vlanId; // VLAN ID
    private Long vxlanId; // VXLAN ID
    private String subIp; // 子网IP
    private String subMask; // 子网掩码
    private String gatewayIp; // 子网网关
    private String vsiMac; // VSI接口MAC地址
    private Boolean arpProxy; // 使用启用ARP代理

    public void setDomainId(Long domainId) {
        this.domainId = domainId;
    }

    public Long getDomainId() {
        return domainId;
    }

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

    public String getName() {
        return name;
    }

    public void setVrfId(Long vrfId) {
        this.vrfId = vrfId;
    }

    public Long getVrfId() {
        return vrfId;
    }

    public void setVlanId(Long vlanId) {
        this.vlanId = vlanId;
    }

    public Long getVlanId() {
        return vlanId;
    }

    public void setVxlanId(Long vxlanId) {
        this.vxlanId = vxlanId;
    }

    public Long getVxlanId() {
        return vxlanId;
    }

    public void setSubIp(String subIp) {
        this.subIp = subIp;
    }

    public String getSubIp() {
        return subIp;
    }

    public void setSubMask(String subMask) {
        this.subMask = subMask;
    }

    public String getSubMask() {
        return subMask;
    }

    public void setGatewayIp(String gatewayIp) {
        this.gatewayIp = gatewayIp;
    }

    public String getGatewayIp() {
        return gatewayIp;
    }

    public void setVsiMac(String vsiMac) {
        this.vsiMac = vsiMac;
    }

    public String getVsiMac() {
        return vsiMac;
    }

    public void setArpProxy(Boolean arpProxy) {
        this.arpProxy = arpProxy;
    }

    public Boolean getArpProxy() {
        return arpProxy;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        DomainModel that = (DomainModel) o;
        return Objects.equals(domainId, that.domainId) && Objects.equals(name, that.name) && Objects.equals(vrfId, that.vrfId) && Objects.equals(vlanId, that.vlanId) && Objects.equals(vxlanId, that.vxlanId) && Objects.equals(subIp, that.subIp) && Objects.equals(subMask, that.subMask) && Objects.equals(gatewayIp, that.gatewayIp) && Objects.equals(vsiMac, that.vsiMac) && Objects.equals(arpProxy, that.arpProxy);
    }

    @Override
    public int hashCode() {
        return Objects.hash(domainId, name, vrfId, vlanId, vxlanId, subIp, subMask, gatewayIp, vsiMac, arpProxy);
    }
}
