package com.bocloud.ims.entity.resource.azure.slb;

import com.bocloud.entity.annotations.Column;
import com.bocloud.entity.annotations.IgnoreAll;
import com.bocloud.entity.annotations.PK;
import com.bocloud.entity.annotations.Table;
import com.bocloud.entity.bean.GenericEntity;
import com.bocloud.entity.meta.PKStrategy;

import java.util.List;

@Table("slb")
public class Slb extends GenericEntity {

    @PK(value = PKStrategy.AUTO)
    private Long id; // ID
    @Column("uuid")
    private String uuid;
    @Column("sku")
    private String sku;
    @Column("region_id")
    private String regionId;
    @Column("resource_group_Id")
    private Long resourceGroupId;
    @Column("vendor_id")
    private Long vendorId;
    @Column("tenant_id")
    private Long tenantId;
    @Column("project_id")
    private Long projectId;// 项目ID
    @Column("user_id")
    private Long userId;
    @Column("locked")
    private Boolean locked;
    @IgnoreAll
    private String resourceGroupUuid;
    @IgnoreAll
    private List<Long> publicIPAddressIds;
    @IgnoreAll
    private List<InboundNatPool> inboundNatPools;// 入站网络池 页面不可见，但接口必须传递
    @IgnoreAll
    private String resourceGroupName;
    @IgnoreAll
    private String regionName;
    @IgnoreAll
    private String tenantName;
    @IgnoreAll
    private String projectName;

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getTenantName() {
        return tenantName;
    }

    public void setTenantName(String tenantName) {
        this.tenantName = tenantName;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public List<InboundNatPool> getInboundNatPools() {
        return inboundNatPools;
    }

    public void setInboundNatPools(List<InboundNatPool> inboundNatPools) {
        this.inboundNatPools = inboundNatPools;
    }

    public List<Long> getPublicIPAddressIds() {
        return publicIPAddressIds;
    }

    public void setPublicIPAddressIds(List<Long> publicIPAddressIds) {
        this.publicIPAddressIds = publicIPAddressIds;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public String getSku() {
        return sku;
    }

    public void setSku(String sku) {
        this.sku = sku;
    }

    public String getRegionId() {
        return regionId;
    }

    public void setRegionId(String regionId) {
        this.regionId = regionId;
    }

    public Long getVendorId() {
        return vendorId;
    }

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

    public Slb() {
        super();
    }

    public Slb(Long creatorId, Long ownerId, Long menderId) {
        super(creatorId, ownerId, menderId);
    }

    public void preSave(Long creatorId, Long menderId, Long vendorId) {
        this.setCreatorId(creatorId);
        this.setMenderId(menderId);
        this.setVendorId(vendorId);
    }

    public Long getResourceGroupId() {
        return resourceGroupId;
    }

    public void setResourceGroupId(Long resourceGroupId) {
        this.resourceGroupId = resourceGroupId;
    }

    public String getResourceGroupUuid() {
        return resourceGroupUuid;
    }

    public void setResourceGroupUuid(String resourceGroupUuid) {
        this.resourceGroupUuid = resourceGroupUuid;
    }

    public Long getTenantId() {
        return tenantId;
    }

    public void setTenantId(Long tenantId) {
        this.tenantId = tenantId;
    }

    public Long getProjectId() {
        return projectId;
    }

    public void setProjectId(Long projectId) {
        this.projectId = projectId;
    }

    public String getResourceGroupName() {
        return resourceGroupName;
    }

    public void setResourceGroupName(String resourceGroupName) {
        this.resourceGroupName = resourceGroupName;
    }

    public String getRegionName() {
        return regionName;
    }

    public void setRegionName(String regionName) {
        this.regionName = regionName;
    }

    public Boolean getLocked() {
        return locked;
    }

    public void setLocked(Boolean locked) {
        this.locked = locked;
    }
}
