package jnpf.cultivate.v2.service;

import com.baomidou.mybatisplus.extension.service.IService;
import jnpf.model.cultivate.po.FtbCultivateIdentifyCategories;
import jnpf.model.cultivate.v2.identify.req.QueryIdentifyCategoryListReq;
import jnpf.model.cultivate.v2.identify.req.V2SaveItemCategoryReq;
import jnpf.model.cultivate.v2.identify.vo.V2IdentifyCategoryTreeVo;

import javax.validation.Valid;
import java.util.List;

/**
 * 鉴定项分类服务接口
 *
 * @author lingma
 * @since 2026-02-24
 */
public interface FtbCultivateIdentifyCategoriesService extends IService<FtbCultivateIdentifyCategories> {


    /**
     * 获取鉴定项分类树结构
     *
     * @param req 查询条件请求对象
     * @return 鉴定项分类树结构列表
     */
    List<V2IdentifyCategoryTreeVo> getCategoryTree(QueryIdentifyCategoryListReq req);

    /**
     * 新增鉴定项分类数据
     *
     * @param req 保存鉴定项分类请求对象
     * @return 保存后的鉴定项分类实体
     */
    FtbCultivateIdentifyCategories insertData(@Valid V2SaveItemCategoryReq req);

    /**
     * 更新鉴定项分类数据
     *
     * @param id  鉴定项分类ID
     * @param req 保存鉴定项分类请求对象
     * @return 更新后的鉴定项分类实体
     */
    FtbCultivateIdentifyCategories updateData(String id, @Valid V2SaveItemCategoryReq req);

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


    List<String> getAllNameList();

    List<FtbCultivateIdentifyCategories> getAllList();
}