package cn.sagacloud.server.algorithm.backstage.sync

import cn.sagacloud.server.algorithm.backstage.model.datacenter.DCFloor
import cn.sagacloud.server.algorithm.models.modelFile.FloorModel

interface SyncObject {

    fun init(modelId: String, obj: FloorModel, dcFloors : ArrayList<DCFloor>, bimIdPrefix: String) : SyncObject

    /**
     * 根据模型id, 准备模型数据
     */
    fun prepareModelData() : SyncObject

    /**
     * 获取数据中心数据(楼层下的某类数据)
     */
    fun prepareDataCenterData() : SyncObject

    /**
     * 将数据分为三类,
     *      1. 在模型中有, 数据中心没有
     *      2. 在模型中没有, 数据中心里有
     *      3. 模型和数据中心数据, 通过 BIMID = "PjID_FolderId_FloorName:SourceId"关联
     */
    fun matchClassify() : SyncObject

    /**
     * 创建分类中第1类
     */
    fun syncCreate() : SyncObject

    /**
     * 删除分类中第2类
     */
    fun syncDelete() : SyncObject

    /**
     * 更新分类中的第3类
     */
    fun syncUpdate() : SyncObject

    /**
     * 生成BIMID的map
     */
    fun buildBIMIDMap() : SyncObject
}