package com.fs.project.service;

import java.util.List;
import java.util.Set;

import com.fs.project.domain.ProjectStandard;
import com.fs.project.vo.*;

/**
 * 项目标准配置Service接口
 *
 * @author fs
 * @date 2025-12-30
 */
public interface IProjectStandardService
{
    // 原有方法保留
    List<ProjectStandard> selectProjectStandardList(ProjectStandard projectStandard);
    ProjectStandard selectProjectStandardById(Long id);
    ProjectStandard selectProjectStandardByCompanyId(Long companyId);

    ProjectStandard selectProjectStandardByCompanyIdAndProjectType(Long currentCompanyId, String projectType);

    int insertProjectStandard(ProjectStandard projectStandard);
    int updateProjectStandard(ProjectStandard projectStandard);
    int deleteProjectStandardByIds(Long[] ids);

    // ========== 新增方法（支持动态级别）==========
    ProjectStandardVO getDetailVo(Long id);              // 返回 VO
    List<ProjectStandardVO> listVo(ProjectStandard query); // 返回 VO 列表
    void saveOrUpdate(ProjectStandardDTO dto);          // 新增/修改统一入口


    boolean getCompanyIntegralLimit(Long projectId,Long doctorId,Integer pointNum,Long taskType);

    boolean getCompanyIntegralLimit(Long projectId,Long doctorId,Integer pointNum,Long companyId,Long taskType);


    List<DoctorIntegralRangeDTO> getCompanyIntegralRanges(CompanyIntegralRangesReqParams companyIntegralRangesReqParams);

   Boolean checkParseTaskTypes(ProjectStandardDTO dto);

    Boolean checkEditParseTaskTypes(ProjectStandardDTO dto);
}
