package jnpf.cultivate.v2.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jnpf.model.cultivate.v2.identify.req.V2IdentifyTableImportSaveReq;
import jnpf.model.cultivate.v2.identify.req.V2IdentifyTableListReq;
import jnpf.model.cultivate.v2.identify.req.V2IdentifyTableSaveReq;
import jnpf.model.cultivate.v2.identify.vo.V2CateIdentifyTableVo;
import jnpf.model.cultivate.v2.identify.vo.V2IdentifyTableInfoVo;
import jnpf.model.cultivate.v2.identify.vo.V2IdentifyTableListVo;

import java.util.List;


public interface V2CultivateIdentifyTableService {

    /**
     * 鉴定表/列表
     *
     * @param req 查询条件参数对象，包含分页信息和筛选条件
     * @return 分页结果对象，包含鉴定表列表数据和分页信息
     */
    Page<V2IdentifyTableListVo> getPageList(V2IdentifyTableListReq req);

    /**
     * 鉴定表/详情
     *
     * @param tableId 鉴定表唯一标识ID
     * @return 鉴定表详细信息对象
     */
    V2IdentifyTableInfoVo getInfo(String tableId);

    /**
     * 鉴定表/新增
     *
     * @param req 鉴定表保存请求参数对象，包含新增所需的所有字段信息
     */
    void saveData(V2IdentifyTableSaveReq req);

    /**
     * 鉴定表/修改
     *
     * @param tableId 鉴定表唯一标识ID
     * @param req     鉴定表更新请求参数对象，包含需要修改的字段信息
     */
    void updateData(String tableId, V2IdentifyTableSaveReq req);

    /**
     * 鉴定表/删除
     *
     * @param tableId 鉴定表唯一标识ID
     */
    void deleteData(String tableId);

    void importData(V2IdentifyTableImportSaveReq v2IdentifyTableSaveReq);

    long queryByTableName(String tableName);

    List<V2CateIdentifyTableVo> getTableForCate();
}

