package com.fs.provider.mapper;

import com.fs.provider.domain.ServiceGenConfigRunLog;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 任务生成配置-执行日志（去重/抢占）Mapper接口
 *
 * @author fs
 * @date 2026-01-28
 */
public interface ServiceGenConfigRunLogMapper {
    /**
     * 抢占执行权：插入成功返回1；如果(config_id,run_key)已存在则返回0
     */
    int insertIgnoreForClaim(ServiceGenConfigRunLog log);

    /**
     * 标记成功（写统计数据）
     */
    int markSuccess(ServiceGenConfigRunLog log);

    /**
     * 标记失败（写失败原因）
     */
    int markFailed(ServiceGenConfigRunLog log);

    /**
     * 可选：查询是否已存在（一般不需要，用 insertIgnoreForClaim 就够）
     */
    Integer exists(@Param("configId") Long configId, @Param("runKey") String runKey);
}
