package cn.iocoder.yudao.module.asset.service.inspection;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.asset.controller.admin.inspection.vo.InspectionTemplatePageReqVO;
import cn.iocoder.yudao.module.asset.controller.admin.inspection.vo.InspectionTemplateSaveReqVO;
import cn.iocoder.yudao.module.asset.controller.admin.inspection.vo.InspectionTemplateRespVO;
import cn.iocoder.yudao.module.asset.dal.dataobject.inspection.InspectionTemplateDO;

import jakarta.validation.Valid;

/**
 * 验车模板 Service 接口
 *
 * @author 芋道源码
 */
public interface InspectionTemplateService {

    /**
     * 创建验车模板
     */
    Long createTemplate(@Valid InspectionTemplateSaveReqVO createReqVO);

    /**
     * 更新验车模板
     */
    void updateTemplate(@Valid InspectionTemplateSaveReqVO updateReqVO);

    /**
     * 删除验车模板
     */
    void deleteTemplate(Long id);

    /**
     * 获取验车模板详情（含检查项）
     */
    InspectionTemplateRespVO getTemplate(Long id);

    /**
     * 获取验车模板分页
     */
    PageResult<InspectionTemplateDO> getTemplatePage(InspectionTemplatePageReqVO pageReqVO);

    /**
     * 匹配验车模板
     * 优先精确匹配 bizType + vehicleType，其次匹配 bizType + vehicleType IS NULL 的默认模板
     */
    InspectionTemplateDO matchTemplate(Integer bizType, String vehicleType);

}
