package com.goafanti.techproject.service;

import com.goafanti.common.bo.Result;
import com.goafanti.common.model.TaskDetails;
import com.goafanti.common.model.TaskFeature;
import com.goafanti.core.mybatis.page.Pagination;
import com.goafanti.techproject.bo.InputTaskDetailsBo;
import com.goafanti.techproject.bo.InputTaskFeature;
import com.goafanti.techproject.bo.TaskDetailsBo;

/**
 * 项目申报详情(TaskDetails)表服务接口
 *
 * @author makejava
 * @since 2024-12-26 17:11:50
 */
public interface TaskDetailsService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    TaskDetails queryById(Integer id);


    /**
     * 新增数据
     *
     * @param taskDetails 实例对象
     * @return 实例对象
     */
    TaskDetails insert(TaskDetails taskDetails,Integer type);

    /**
     * 修改数据
     *
     * @param taskDetails 实例对象
     * @return 实例对象
     */
    TaskDetails update(TaskDetails taskDetails,Integer type);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    /**
     * 列表数据
     *
     * @param in 参数
     * @return 是否成功
     */
    Object list(TaskDetails in, Integer pageNo, Integer pageSize);

    TaskDetailsBo pushByTid(Integer id);


    Result exportById(Integer id);

    boolean checkTid(TaskDetails taskDetails);

    TaskFeature addFeature(InputTaskFeature in);




    TaskFeature updateFeature(InputTaskFeature in);

    Object logList(Integer id, Integer pageNo, Integer pageSize);

    Object logDetails(Integer id);

    Object deleteTaskFeature(Integer id);

    Object updateDownload(TaskDetails newTd);



    Pagination<TaskDetailsBo> pushDetailsList(InputTaskDetailsBo in);

    Result pushExport(InputTaskDetailsBo in);
}
