package com.zksy.dispatch.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zksy.dispatch.domain.DisPlanLibrary;
import com.zksy.dispatch.domain.DisPlanMatchRecord;
import com.zksy.dispatch.dto.PlanMatchDTO;
import com.zksy.dispatch.dto.PlanMatchResultVO;

import java.util.List;

public interface DisPlanLibraryService extends IService<DisPlanLibrary> {

    /**
     * 查询数字预案库全部预案
     */
    List<DisPlanLibrary> listAll();

    /**
     * 按事件条件加权匹配预案（类型40/级别25/区域20/单位15）
     *
     * @param dto      匹配条件
     * @param operUser 操作人
     * @return 按匹配度降序的结果，并记录匹配历史
     */
    List<PlanMatchResultVO> match(PlanMatchDTO dto, String operUser);

    /**
     * 按专题匹配预案
     *
     * @param topic    专题名称
     * @param operUser 操作人
     * @return 该专题下的预案列表（匹配度90），并记录匹配历史
     */
    List<PlanMatchResultVO> matchByTopic(String topic, String operUser);

    /**
     * 查询最近匹配/应用记录
     *
     * @param limit 记录条数
     */
    List<DisPlanMatchRecord> getHistory(int limit);
}
