package tech.easyflow.ai.mapper;

import com.mybatisflex.core.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import tech.easyflow.ai.entity.ModelProvider;

import java.math.BigInteger;

/**
 *  映射层。
 *
 * @author 12076
 * @since 2025-12-16
 */
public interface ModelProviderMapper extends BaseMapper<ModelProvider> {

    /**
     * 锁定服务商记录，用于串行化同一服务商下的幂等模型导入。
     *
     * @param id 服务商 ID
     * @return 已锁定的服务商 ID，不存在时返回 null
     */
    @Select("SELECT id FROM tb_model_provider WHERE id = #{id} FOR UPDATE")
    BigInteger lockById(@Param("id") BigInteger id);
}
