package com.persagy.adm.server.backstage.domain;

import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.persagy.adm.server.algorithm.entity.AdmModelFile;
import com.persagy.dmp.digital.entity.ObjectDigital;
import com.persagy.dmp.digital.entity.ObjectRelation;
import lombok.Data;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 用于模型解析之间传递数据的DTO类
 * @author : lijie
 * Update By 2022/1/21 13:59
 */
@Data
public class AdmAnalysisModel {
    /**需要解析的模型文件列表*/
    private List<AdmModelFile> admModelFiles;

    /**需要解析的模型文件涉及的楼层对象*/
    private Map<String, ObjectDigital> floorMap;

    /**解析到的模型文件json*/
    private JSONObject currentAdmModelObj;

    /**当前正在解析的模型文件*/
    private AdmModelFile currentModelFile;

    /**当前正在解析的模型文件对应的楼层*/
    private ObjectDigital currentFloor;
    /**需新增的对象数据*/
    private List<ObjectNode> needAddObjects;
    /**需更新的对象数据*/
    private List<ObjectNode> needUpdateObjects;
    /**需删除的对象Id集合*/
    private Set<String> needDeleteObjectIds;
    /**需删除关系的对象Id集合*/
    private Set<String> needDeleteRelationObjIds;
    /**需删除关系的图类型集合*/
    private Set<String> needDeleteRelationGraphCodes;
    /**需删除关系的边类型集合*/
    private Set<String> needDeleteRelationRelCodes;
    /**需增加的关系集合*/
    private List<ObjectRelation> needAddRelations;


}
