import { prisma } from '../../models';

/**
 * 搜索服务
 * 提供全局搜索功能
 */
export class SearchService {
  /**
   * 搜索音频
   * @param query 搜索关键词
   * @param limit 返回结果数量限制
   */
  async searchAudio(query: string, limit = 20) {
    if (!query || query.trim() === '') {
      return [];
    }

    const searchQuery = query.trim();

    // 使用 Prisma 的搜索功能
    // MySQL 中可以使用 LIKE 进行模糊搜索
    const results = await prisma.audio.findMany({
      where: {
        OR: [
          { title: { contains: searchQuery } },
          { text: { contains: searchQuery } },
          { summary: { contains: searchQuery } },
        ],
      },
      orderBy: {
        createdAt: 'desc',
      },
      take: limit,
    });

    return results;
  }
}

// 导出单例
export const searchService = new SearchService();
