package com.ruoyi.web.modules.industryservice.service;

import java.util.List;
import com.ruoyi.web.modules.industryservice.domain.BizYakDiseaseWarning;
import com.ruoyi.web.modules.industryservice.domain.vo.YakAssetSyncResultVo;

/**
 * 牦牛疾病预警业务接口。
 * <p>
 * 职责：列表/详情查询、牧场数据权限校验、触发第三方健康源同步。<br>
 * 同步与规则分析细节见 {@link YakDiseaseWarningSyncService}、{@link YakDiseaseWarningAnalyzer}。
 * </p>
 */
public interface IBizYakDiseaseWarningService
{
    /**
     * 条件分页列表（分页由 Controller {@code startPage} 开启）。
     * <p>会将 {@code startDate}/{@code endDate} 转为 {@code alertTimeBegin}/{@code alertTimeEnd}。</p>
     *
     * @param query 筛选条件，允许 null（视为空条件）
     * @return 非 null 列表
     */
    List<BizYakDiseaseWarning> selectBizYakDiseaseWarningList(BizYakDiseaseWarning query);

    /**
     * 按主键查详情。
     *
     * @param id 预警主键
     * @param allowedPastureIds 可见牧场 ID；{@code null} 或空表示不按牧场限制（管理端默认）
     * @return 存在的预警；不存在或越权抛业务异常
     */
    BizYakDiseaseWarning selectBizYakDiseaseWarningById(Long id, List<Long> allowedPastureIds);

    /**
     * 拉取第三方健康源并分析生成预警。
     *
     * @return 同步结果：新增/更新/失败条数及失败原因摘要
     */
    YakAssetSyncResultVo syncFromThirdParty();
}
