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 lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * vApp实体类
 * 
 * @author wangyu
 * @version 1.0
 * @since 2017年12月1日
 *
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Table("vapp")
public class VApp extends GenericEntity {

	// ID
	@PK(value = PKStrategy.AUTO)
	private Long id;
	// 配置
	@Column("config")
	private String config;
	// 所属类型
	@Column("target_category")
	private String targetCategory;
	// 所属value
	@Column("target_val")
	private String targetVal;
	// 所属id(宿主机或集群)
	@Column("target_id")
	private Long targetId;
	// 资源池id
	@Column("pool_id")
	private Long poolId;
	// 父vapp id
	@Column("parent_id")
	private Long parentId;
	// 父vapp value
	@Column("parent_val")
	private String parentVal;
	// vapp value
	@Column("vapp_val")
	private String vappVal;
	// 资源池value
	@Column("pool_val")
	private String poolVal;
	// 概要
	@Column("summary")
	private String summary;
	// vapp配置
	@Column("vapp_config")
	private String vappConfig;
	// 云主机id
	@Column("vm_instance_ids")
	private String vmInstanceIds;
	// 标记
	@Column("tags")
	private String tags;
	@Column("vendor_id")
	private Long vendorId;// 云平台ID
	@Column("vdc_id")
	private Long vdcId;// 数据中心id
	// 资源池列表
	private List<VmResourcePool> pools;
	@IgnoreAll
	private String targetName;// 所属名称
	@IgnoreAll
	private String vdcName;// 数据中心名称
	@IgnoreAll
	private String children;// 子vapp
	@IgnoreAll
	private String hostName;// 宿主机名称

}
