package com.persagy.labsl.services.planar

import com.persagy.labsl.models.entities.pbs.PlanarGraph
import com.persagy.labsl.models.entities.pbs.PlanarGraphPub
import com.persagy.service.models.requests.SUpdateRequest
import com.persagy.service.models.responses.SBaseResponse
import com.persagy.service.models.responses.SCreateResponse

/**
 * 平面图逻辑处理接口
 * @author : lijie
 * Update By 2022/6/1 12:26
 */
interface PlanarGraphLogicService {
    /**
     * 创建未发布平面图
     * @author : lijie
     * Update By 2022/6/1 12:30
     */
    fun createLogic(planarGraph: PlanarGraph): SCreateResponse<PlanarGraph>
    /**
     * 保存未发布平面图
     * @author : lijie
     * Update By 2022/6/1 12:33
     */
    fun saveLogic(graph: PlanarGraph): SCreateResponse<PlanarGraph>
    /**
     * 发布未发布平面图
     * @author : lijie
     * Update By 2022/6/1 12:33
     */
    fun pubDrawingsLogic(graph: PlanarGraphPub): SCreateResponse<PlanarGraphPub>

    /**
     * 图移至/移出回收站
     * @author : lijie
     * Update By 2022/6/1 12:34
     */
    fun recycleLogic(idList: ArrayList<PlanarGraph>): SBaseResponse

    /**
     * 已发布图形移至回收站
     * @author : lijie
     * Update By 2022/6/1 12:36
     */
    fun recyclePubLogic(idList: ArrayList<PlanarGraph>): SBaseResponse
    /**
     * 未发布图形更新
     * @author : lijie
     * Update By 2022/6/1 12:38
     */
    fun draftsUpdateLogic(request: SUpdateRequest<PlanarGraph>): SBaseResponse
    /**
     * 已发布图形更新
     * @author : lijie
     * Update By 2022/6/1 12:39
     */
    fun pubUpdateLogic(request: SUpdateRequest<PlanarGraphPub>): SBaseResponse

    /**
     * 恢复图形
     * @author : lijie
     * Update By 2022/6/1 12:40
     */
    fun recoveryLogic(graph: PlanarGraph): SBaseResponse
    /**
     * 删除图形
     * @author : lijie
     * Update By 2022/6/1 12:41
     */
    fun deleteByKeysListLogic(idList: ArrayList<PlanarGraph>): SBaseResponse
}
