package com.njcn.rdms.module.project.service.status;

import com.njcn.rdms.framework.common.pojo.PageResult;
import com.njcn.rdms.module.project.controller.admin.status.vo.model.ObjectStatusModelPageReqVO;
import com.njcn.rdms.module.project.controller.admin.status.vo.model.ObjectStatusModelRespVO;
import com.njcn.rdms.module.project.controller.admin.status.vo.model.ObjectStatusModelSaveReqVO;
import com.njcn.rdms.module.project.dal.dataobject.status.ObjectStatusModelDO;

import java.util.List;

/**
 * 对象状态模型 Service 接口。
 */
public interface ObjectStatusModelService {

    /**
     * 新增状态模型。
     *
     * @param createReqVO 新增请求
     * @return 新记录编号
     */
    Long createModel(ObjectStatusModelSaveReqVO createReqVO);

    /**
     * 修改状态模型。
     *
     * @param updateReqVO 修改请求
     */
    void updateModel(ObjectStatusModelSaveReqVO updateReqVO);

    /**
     * 获得状态模型。
     * @param id
     * @return
     */
    ObjectStatusModelRespVO getModel(Long id);

    /**
     * 删除状态模型。
     *
     * @param id 状态模型编号
     */
    void deleteModel(Long id);

    /**
     * 批量删除状态模型。
     * @param ids
     */
    void deleteModelList(List<Long> ids);

    /**
     * 分页查询状态模型。
     *
     * @param pageReqVO 分页请求
     * @return 分页结果
     */
    PageResult<ObjectStatusModelDO> getModelPage(ObjectStatusModelPageReqVO pageReqVO);
}
