package jnpf.cultivate.v2.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import jnpf.model.cultivate.po.FtbCultivateIdentifyItemsPool;
import jnpf.model.cultivate.v2.common.req.V2BatchByPrimaryIdReq;
import jnpf.model.cultivate.v2.item_pool.req.IdentifyItemsPoolReq;
import jnpf.model.cultivate.v2.item_pool.req.SaveCultivateIdentifyItemsPoolReq;
import jnpf.model.cultivate.v2.item_pool.vo.FtbCultivateIdentifyItemsPoolVo;
import jnpf.model.cultivate.v2.item_pool.vo.V2IdentifyItemVo;

import java.util.List;

/**
 * 鉴定项池服务接口
 *
 * @author lingma
 * @since 2026-02-24
 */
public interface FtbCultivateIdentifyItemsPoolService extends IService<FtbCultivateIdentifyItemsPool> {

    /**
     * 根据ID获取鉴定项池信息
     *
     * @param id 鉴定项池ID
     * @return 鉴定项池信息VO对象
     */
    FtbCultivateIdentifyItemsPoolVo getInfo(String id);

    /**
     * 新增鉴定项池数据
     *
     * @param req 保存鉴定项池请求对象
     */
    void addData(SaveCultivateIdentifyItemsPoolReq req);

    /**
     * 更新鉴定项池数据
     *
     * @param id  鉴定项池ID
     * @param req 保存鉴定项池请求对象
     */
    void updateData(String id, SaveCultivateIdentifyItemsPoolReq req);

    /**
     * 删除鉴定项池数据
     *
     * @param id 鉴定项池ID
     */
    void deleteData(String id);

    /**
     * 分页查询鉴定项池列表
     *
     * @param req 查询条件请求对象
     * @return 鉴定项池分页结果
     */
    Page<FtbCultivateIdentifyItemsPoolVo> webPageList(IdentifyItemsPoolReq req);

    /**
     * 查询所有鉴定项池数据
     *
     * @return 鉴定项池实体列表
     */
    List<FtbCultivateIdentifyItemsPool> listAll();

    void batchDel(V2BatchByPrimaryIdReq req);

    void batchAddData(List<V2IdentifyItemVo> normal);
}