package com.bocloud.ims.entity.resource;

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.Date;
import java.util.List;

/**
 * @Company: 博云 www.bocloud.com
 * @ClassName: AzureResourceGroup
 * @Description:
 * @author: zhenpingLi/李振平
 * @date: 2019/8/6 14:16
 */
@Table("resource_group")

public class ResourceGroup extends GenericEntity {

	@PK(value = PKStrategy.AUTO)
	private Long id; // ID
	@Column("resource_group_uuid")
	private String resourceGroupUuid;// 资源组id
	@Column("region_id")
	private String regionId;// 资源组的位置。创建资源组后无法更改。它必须是受支持的Azure位置之一
	@Column("managed_by")
	private String managedBy;// 管理此资源组的资源的ID
	@Column("type")
	private String type;// 资源组的类型
	@Column("tags")
	private String tags;// 附加到资源组的标记
	@Column("provisioning_state")
	private String provisioningState;// 供应状态
	@Column("vendor_id")
	private Long vendorId;
	@IgnoreAll
	private String vendorName;
	@IgnoreAll
	private List<Resource> resources;

	@Column("tenant_id")
	private Long tenantId;
	@Column("project_id")
	private Long projectId;
	@Column("user_id")
	private Long userId;
	@Column("display_name")
	private String displayName;
	@Column("create_time")
	@com.fasterxml.jackson.databind.annotation.JsonSerialize(using = com.bocloud.common.utils.DateSerializer.class)
	@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.bocloud.common.utils.DateDeserializer.class)
	@org.springframework.format.annotation.DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date createTime;// 创建时间
	@Column("locked")
	private Boolean locked;

	@IgnoreAll
	private String departmentName;
	@IgnoreAll
	private String tenantName;
	@IgnoreAll
	private String projectName;
	@IgnoreAll
	private String regionName;

	public Long getUserId() {
		return userId;
	}

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

	public Boolean getLocked() {
		return locked;
	}

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

	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 String getRegionName() {
		return regionName;
	}

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

	public String getVendorName() {
		return vendorName;
	}

	public void setVendorName(String vendorName) {
		this.vendorName = vendorName;
	}

	public Long getVendorId() {
		return vendorId;
	}

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

	public Long getId() {
		return id;
	}

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

	public String getResourceGroupUuid() {
		return resourceGroupUuid;
	}

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

	public String getRegionId() {
		return regionId;
	}

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

	public String getManagedBy() {
		return managedBy;
	}

	public void setManagedBy(String managedBy) {
		this.managedBy = managedBy;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getTags() {
		return tags;
	}

	public void setTags(String tags) {
		this.tags = tags;
	}

	public String getProvisioningState() {
		return provisioningState;
	}

	public void setProvisioningState(String provisioningState) {
		this.provisioningState = provisioningState;
	}

	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 getDisplayName() {
		return displayName;
	}

	public void setDisplayName(String displayName) {
		this.displayName = displayName;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public List<Resource> getResources() {
		return resources;
	}

	public void setResources(List<Resource> resources) {
		this.resources = resources;
	}

	public String getDepartmentName() {
		return departmentName;
	}

	public void setDepartmentName(String departmentName) {
		this.departmentName = departmentName;
	}
}
