package com.fs.project.service;

import java.util.List;
import com.fs.project.domain.Project;
import com.fs.project.vo.AddProjectReqVO;
import com.fs.project.vo.GetAllDataVO;
import com.fs.project.vo.ProjectDetailRespVO;
import com.fs.project.vo.ProjectOptionVO;

/**
 * 项目主Service接口
 *
 * @author fs
 * @date 2025-12-30
 */
public interface IProjectService
{
    /**
     * 查询项目主
     *
     * @param id 项目主主键
     * @return 项目主
     */
    public Project selectProjectById(Long id);

    /**
     * 查询项目主列表
     *
     * @param project 项目主
     * @return 项目主集合
     */
    public List<Project> selectProjectList(Project project);

    /**
     * 新增项目主
     *
     * @param project 项目主
     * @return 结果
     */
    public int insertProject(Project project);


    /**
     * 批量删除项目主
     *
     * @param ids 需要删除的项目主主键集合
     * @return 结果
     */
    public int deleteProjectByIds(Long[] ids);

    /**
     * 删除项目主信息
     *
     * @param id 项目主主键
     * @return 结果
     */
    public int deleteProjectById(Long id);

    List<ProjectOptionVO> selectProjectOptions(String projectName);

    int add(AddProjectReqVO addProjectReqVO);

    /**
     * 修改项目主
     * @param addProjectReqVO
     * @return
     */
    int edit(AddProjectReqVO addProjectReqVO);

    ProjectDetailRespVO selectProjectDetailById(Long id);

    int changeStatus(Long id, Integer status);

    List<Project> getAllData(GetAllDataVO dataVO);
}
