package cn.iocoder.yudao.module.bpm.service.stamp.stampseal;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.bpm.controller.admin.stamp.stampseal.vo.OaStampSealPageReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.stamp.stampseal.vo.OaStampSealSaveReqVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.stamp.stampseal.OaStampSealDO;

import javax.validation.Valid;
import java.util.List;

/**
 * 用印印章信息 Service 接口
 *
 * @author dp
 */
public interface OaStampSealService {

    /**
     * 创建用印印章信息
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createOaStampSeal(@Valid OaStampSealSaveReqVO createReqVO);

    /**
     * 更新用印印章信息
     *
     * @param updateReqVO 更新信息
     */
    void updateOaStampSeal(@Valid OaStampSealSaveReqVO updateReqVO);

    /**
     * 删除用印印章信息
     *
     * @param id 编号
     */
    void deleteOaStampSeal(Long id);

    void openOaStampSeal(Long id);

    void closeOaStampSeal(Long id);

    /**
     * 获得用印印章信息
     *
     * @param id 编号
     * @return 用印印章信息
     */
    OaStampSealDO getOaStampSeal(Long id);

    /**
     * 获得用印印章信息分页
     *
     * @param pageReqVO 分页查询
     * @return 用印印章信息分页
     */
    PageResult<OaStampSealDO> getOaStampSealPage(OaStampSealPageReqVO pageReqVO);

    List<OaStampSealDO> getOaStampSealList();

}