package com.njcn.csharmonic.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csharmonic.param.CsHarmonicPlanParam;
import com.njcn.csharmonic.pojo.po.CsHarmonicPlan;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author xy
 * @since 2026-04-15
 */
public interface ICsHarmonicPlanService extends IService<CsHarmonicPlan> {

    /**
     * 新增稳态指标方案(包含监测点关联)
     *
     * @param param 稳态指标方案参数
     */
    void save(CsHarmonicPlanParam param);

    /**
     * 修改稳态指标方案(包含监测点关联)
     *
     * @param param 稳态指标方案参数
     */
    void update(CsHarmonicPlanParam.UpdateCsHarmonicPlanParam param);

    /**
     * 删除稳态指标方案(同时删除监测点关联)
     *
     * @param ids 方案ID集合
     */
    void deleteWithLines(List<String> ids);

    /**
     * 分页查询稳态指标方案
     *
     * @param param 查询参数
     * @return 分页结果
     */
    Page<CsHarmonicPlan> getPage(CsHarmonicPlanParam.QueryParam param);

    /**
     * 查询所有稳态指标方案(按sort降序)
     *
     * @return 稳态指标方案列表
     */
    List<CsHarmonicPlan> listAllOrderBySort();

    /**
     * 根据方案ID查询详情(包含监测点列表)
     *
     * @param id 方案ID
     * @return 方案详情
     */
    CsHarmonicPlan getByIdWithLines(String id);

    List<CsHarmonicPlan> getByName(String name);
}
