package cn.iocoder.yudao.module.relations.service.conversion;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.relations.api.conversion.dto.RelationsConversionCreateReqDTO;
import cn.iocoder.yudao.module.relations.controller.admin.conversion.vo.RelationsConversionPageReqVO;
import cn.iocoder.yudao.module.relations.controller.admin.conversion.vo.RelationsConversionRespVO;
import cn.iocoder.yudao.module.relations.controller.admin.conversion.vo.RelationsConversionSaveReqVO;
import cn.iocoder.yudao.module.relations.dal.dataobject.conversion.RelationsConversionDO;

import javax.validation.Valid;

/**
 * 转正信息 Service 接口
 *
 * @author zhaopq
 */
public interface RelationsConversionService {

    /**
     * 创建转正信息
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createConversion(@Valid RelationsConversionSaveReqVO createReqVO);

    /**
     * 审批完成添加转正信息
     *
     * @param conversionCreateReqDTO 创建信息
     * @return 编号
     */
    Long createConversionInfoAfterAudit(RelationsConversionCreateReqDTO conversionCreateReqDTO);

    /**
     * 更新转正信息
     *
     * @param updateReqVO 更新信息
     */
    void updateConversion(@Valid RelationsConversionSaveReqVO updateReqVO);

    /**
     * 删除转正信息
     *
     * @param id 编号
     */
    void deleteConversion(Long id);

    /**
     * 获得转正信息
     *
     * @param id 编号
     * @return 转正信息
     */
    RelationsConversionDO getConversion(Long id);

    /**
     * 通过ID获得转正信息
     *
     * @param id
     * @return
     */
    RelationsConversionRespVO getById(Long id);

    /**
     * 获得转正信息分页
     *
     * @param pageReqVO 分页查询
     * @return 转正信息分页
     */
    PageResult<RelationsConversionDO> getConversionPage(RelationsConversionPageReqVO pageReqVO);

}