package cn.iocoder.yudao.module.smartfactory.service.staffcertificateinformation;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.smartfactory.controller.admin.staffcertificateinformation.vo.StaffCertificateInformationPageReqVO;
import cn.iocoder.yudao.module.smartfactory.controller.admin.staffcertificateinformation.vo.StaffCertificateInformationSaveReqVO;
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.staffcertificateinformation.StaffCertificateInformationDO;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.validation.Valid;

/**
 * 叉车员工证件信息 Service 接口
 *
 * @author 艾楷
 */
public interface StaffCertificateInformationService extends IService<StaffCertificateInformationDO> {

    /**
     * 创建叉车员工证件信息
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createStaffCertificateInformation(@Valid StaffCertificateInformationSaveReqVO createReqVO);

    /**
     * 更新叉车员工证件信息
     *
     * @param updateReqVO 更新信息
     */
    void updateStaffCertificateInformation(@Valid StaffCertificateInformationSaveReqVO updateReqVO);

    /**
     * 删除叉车员工证件信息
     *
     * @param id 编号
     */
    void deleteStaffCertificateInformation(Long id);

    /**
     * 获得叉车员工证件信息
     *
     * @param id 编号
     * @return 叉车员工证件信息
     */
    StaffCertificateInformationDO getStaffCertificateInformation(Long id);

    /**
     * 获得叉车员工证件信息分页
     *
     * @param pageReqVO 分页查询
     * @return 叉车员工证件信息分页
     */
    PageResult<StaffCertificateInformationDO> getStaffCertificateInformationPage(StaffCertificateInformationPageReqVO pageReqVO);

    /**
     * 通过员工ID获得叉车员工证件信息
     *
     * @param staffId
     * @return
     */
    StaffCertificateInformationDO getByStaffId(Long staffId);
}
