package com.lingyue.graph.repository;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lingyue.graph.entity.DataSource;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 数据源Repository
 * 
 * @author lingyue
 * @since 2026-01-14
 */
@Mapper
public interface DataSourceRepository extends BaseMapper<DataSource> {
    
    /**
     * 根据用户ID查询数据源列表
     * 
     * @param userId 用户ID
     * @return 数据源列表
     */
    @Select("SELECT * FROM data_sources WHERE user_id = #{userId} ORDER BY create_time DESC")
    List<DataSource> findByUserId(@Param("userId") String userId);
    
    /**
     * 根据文档ID查询数据源列表
     * 
     * @param documentId 文档ID
     * @return 数据源列表
     */
    @Select("SELECT * FROM data_sources WHERE document_id = #{documentId} ORDER BY create_time DESC")
    List<DataSource> findByDocumentId(@Param("documentId") String documentId);
    
    /**
     * 根据类型查询数据源
     * 
     * @param userId 用户ID
     * @param type 数据源类型
     * @return 数据源列表
     */
    @Select("SELECT * FROM data_sources WHERE user_id = #{userId} AND type = #{type}")
    List<DataSource> findByUserIdAndType(@Param("userId") String userId, @Param("type") String type);
}
