package com.aegis.cases.service;

import com.aegis.cases.domain.Case;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Date;
import java.util.List;

/**
 * 案例 Service
 */
public interface ICaseService extends IService<Case> {

    /**
     * 条件查询案例列表
     *
     * @param title 标题（模糊搜索）
     * @param eventType 事件类型
     * @param eventLevel 事件级别
     * @param tags 标签（逗号分隔）
     * @param isTypical 是否典型案例
     * @param beginTime 起始时间
     * @param endTime 截止时间
     * @return 案例列表
     */
    List<Case> listByCondition(String title, String eventType, String eventLevel, String tags, Boolean isTypical, Date beginTime, Date endTime);

    /**
     * 标记为典型案例
     *
     * @param id 案例ID
     * @return 是否成功
     */
    boolean markTypical(Long id);

    /**
     * 取消典型案例标记
     *
     * @param id 案例ID
     * @return 是否成功
     */
    boolean unmarkTypical(Long id);

    /**
     * 查询典型案例列表
     *
     * @return 典型案例列表
     */
    List<Case> listTypicalCases();

    /**
     * 增加查看次数
     *
     * @param id 案例ID
     */
    void incrementViewCount(Long id);
}

