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.List;

@Table("storage_group")
public class StorageGroup extends GenericEntity {

    @PK(value = PKStrategy.AUTO)
    private Long id; //
    @Column("storage_id")
    private Long storageId; // 存储集群id
    @Column("group_uuid")
    private String groupUuid; // 唯一标识
    @Column("key_path")
    private String keyPath; // smis传参
    @Column("type")
    private String type; // 类型：VG 卷组、HG 主机组、PG 端口组、SG 快照组、KG SAN拷贝组、CG 克隆组
    @IgnoreAll
    private Long memberCount;
    @Column("storage_name")
    @IgnoreAll
    private String storageName;
    @IgnoreAll
    private List<Volume> volumes;
    @IgnoreAll
    private List<StorageHost> storageHosts;
    @IgnoreAll
    private List<StorageFCPort> storageFCPorts;

    public Long getId() {
        return id;
    }

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

    public Long getStorageId() {
        return storageId;
    }

    public void setStorageId(Long storageId) {
        this.storageId = storageId;
    }

    public String getGroupUuid() {
        return groupUuid;
    }

    public void setGroupUuid(String groupUuid) {
        this.groupUuid = groupUuid;
    }

    public String getKeyPath() {
        return keyPath;
    }

    public void setKeyPath(String keyPath) {
        this.keyPath = keyPath;
    }

    public String getType() {
        return type;
    }

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

    public List<Volume> getVolumes() {
        return volumes;
    }

    public void setVolumes(List<Volume> volumes) {
        this.volumes = volumes;
    }

    public List<StorageHost> getStorageHosts() {
        return storageHosts;
    }

    public void setStorageHosts(List<StorageHost> storageHosts) {
        this.storageHosts = storageHosts;
    }

    public List<StorageFCPort> getStorageFCPorts() {
        return storageFCPorts;
    }

    public void setStorageFCPorts(List<StorageFCPort> storageFCPorts) {
        this.storageFCPorts = storageFCPorts;
    }

    public Long getMemberCount() {
        return memberCount;
    }

    public void setMemberCount(Long memberCount) {
        this.memberCount = memberCount;
    }

    public String getStorageName() {
        return storageName;
    }

    public void setStorageName(String storageName) {
        this.storageName = storageName;
    }
}
