package com.microservices.zone.project.mapper;

import com.microservices.common.datasource.annotation.Slave;
import com.microservices.zone.project.domain.ForgeProjectStatistics;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Forge项目数据表Mapper接口
 *
 * @author otto
 * @date 2024-10-28
 */
@Slave
@Mapper
public interface ForgeProjectStatisticsMapper {
    /**
     * 查询Forge项目数据表
     *
     * @param id Forge项目数据表主键
     * @return Forge项目数据表
     */
    public ForgeProjectStatistics selectForgeProjectStatisticsById(Long id);

    /**
     * 查询Forge项目数据表列表
     *
     * @param forgeProjectStatistics Forge项目数据表
     * @return Forge项目数据表集合
     */
    public List<ForgeProjectStatistics> selectForgeProjectStatisticsList(ForgeProjectStatistics forgeProjectStatistics);

    /**
     * 新增Forge项目数据表
     *
     * @param forgeProjectStatistics Forge项目数据表
     * @return 结果
     */
    public int insertForgeProjectStatistics(ForgeProjectStatistics forgeProjectStatistics);

    /**
     * 修改Forge项目数据表
     *
     * @param forgeProjectStatistics Forge项目数据表
     * @return 结果
     */
    public int updateForgeProjectStatistics(ForgeProjectStatistics forgeProjectStatistics);

    /**
     * 删除Forge项目数据表
     *
     * @param id Forge项目数据表主键
     * @return 结果
     */
    public int deleteForgeProjectStatisticsById(Long id);

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

    Long selectAllCommitCountByProjectId(Long projectId);

    Double selectLastWeekScoreByProjectId(@Param("projectId") Long projectId, @Param("lastMonday") String lastMonday, @Param("lastSunday") String lastSunday);
}
