package com.yida.data.form.apply.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yida.data.common.core.entity.applyForm.CoreApplyForm;
import com.yida.data.customForm.dto.apply.ApplyFormSelectPageDTO;
import com.yida.data.customForm.vo.apply.ApplyFormInfoVO;
import com.yida.data.customForm.vo.apply.ApplyFormSelectPageVO;

/**
 * 申请类型表单 Service
 *
 * @author ZYJ
 * @date 2023/11/14
 */
public interface CoreApplyFormService extends IService<CoreApplyForm> {

    /**
     * 查询申请表单列表数据
     *
     * @param dto 申请表单后台列表请求类
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.yida.data.customForm.vo.apply.ApplyFormSelectPageVO>
     * @author ZYJ
     * @date 2023/11/14 16:07
     */
    IPage<ApplyFormSelectPageVO> listApplyFormPage(ApplyFormSelectPageDTO dto);

    /**
     * 查询申请表单详情
     *
     * @param id 表单id
     * @return com.yida.data.customForm.vo.apply.ApplyFormInfoVO
     * @author ZYJ
     * @date 2023/11/14 17:34
     */
    ApplyFormInfoVO getApplyFormInfo(Long id);

    /**
     * 删除申请表单
     *
     * @param id 表单id
     * @author ZYJ
     * @date 2023/11/14 20:21
     */
    void deleteApplyForm(Long id);

    /**
     * 保存申请表单
     *
     * @param applyForm 申请表单信息
     * @author ZYJ
     * @date 2023/11/15 11:28
     */
    Long saveApplyForm(CoreApplyForm applyForm);

    /**
     * 修改申请表单状态
     *
     * @param formId       表单id
     * @param enableStatus 状态. 0为停用，1为启用
     * @author ZYJ
     * @date 2023/11/15 16:09
     */
    void updateEnableStatus(Long formId, Integer enableStatus);
}
