package com.persagy.labsl.service

import com.baomidou.mybatisplus.extension.service.IService
import com.persagy.labsl.domain.GraphEntity
import com.persagy.labsl.domain.GraphPubEntity
import com.persagy.labsl.models.entities.tpt.Graph
import com.persagy.service.models.requests.SCreateRequest
import com.persagy.service.models.requests.SUpdateRequest
import com.persagy.service.models.responses.SBaseResponse
import com.persagy.service.models.responses.SCreateResponse
import java.util.ArrayList

/**
 *
 */
interface GraphService : IService<GraphEntity?> {
    /**
     * 保存草稿
     * @author : lijie
     * Update By 2022/6/7 14:28
     */
    fun saveLogic(graph: GraphEntity): SCreateResponse<GraphEntity>
    /**
     * 创建草稿
     * @author : lijie
     * Update By 2022/6/7 14:29
     */
    fun draftsCreateLogic(request: SCreateRequest<GraphEntity>): SCreateResponse<GraphEntity>
    /**
     * 发布草稿
     * @author : lijie
     * Update By 2022/6/7 14:47
     */
    fun pubDrawingsLogic(graphPub: GraphPubEntity): SCreateResponse<GraphPubEntity>
    /**
     * 图、移至或移出回收站
     * @author : lijie
     * Update By 2022/6/7 15:39
     */
    fun recycleLogic(idList: ArrayList<GraphEntity>): SBaseResponse
    /**
     * 已发布图形移至回收站
     * @author : lijie
     * Update By 2022/6/7 15:48
     */
    fun recyclePubLogic(idList: ArrayList<GraphEntity>): SBaseResponse
    /**
     * 更新草稿
     * @author : lijie
     * Update By 2022/6/7 16:26
     */
    fun draftsUpdateLogic(request: SUpdateRequest<GraphEntity>): SBaseResponse
    /**
     * 更新已发布图形
     * @author : lijie
     * Update By 2022/6/7 17:56
     */
    fun pubUpdateLogic(request: SUpdateRequest<GraphPubEntity>): SBaseResponse
    /**
     * 恢复图形
     * @author : lijie
     * Update By 2022/6/7 18:06
     */
    fun recoveryLogic(graphs: GraphEntity): SBaseResponse
}