/**
 * 工作空间团队列表API路由
 * 作者: 阿瑞
 * 功能: 获取当前工作空间下的所有团队
 * 版本: 1.7
 */

import { NextRequest, NextResponse } from 'next/server';
import { connectSystemDB, RequestWithDB } from '@/lib/db';

/**
 * 获取工作空间的团队列表
 */
export async function GET(req: NextRequest) {
  try {
    console.log('API: 接收到获取团队列表请求');
    
    // 获取查询参数
    const url = new URL(req.url);
    const workspaceId = url.searchParams.get('workspaceId');
    
    console.log('API: 获取工作空间ID:', workspaceId);
    
    // 验证参数
    if (!workspaceId) {
      console.log('API: 缺少工作空间ID参数');
      return NextResponse.json({ 
        success: false,
        error: '缺少工作空间ID参数' 
      }, { status: 400 });
    }
    
    // 使用数据库连接模式
    const handler = async (dbReq: RequestWithDB) => {
      // 查询工作空间下的所有团队
      const [rows] = await dbReq.db.query(
        `SELECT id, team_code as teamCode, name, status
         FROM teams 
         WHERE workspace_id = ?
         ORDER BY name ASC`,
        [workspaceId]
      );
      
      // 转换为纯JavaScript对象
      const teams = JSON.parse(JSON.stringify(rows));
      
      console.log('API: 查询到团队数量:', teams.length);
      
      // 返回团队列表
      return NextResponse.json({
        success: true,
        teams: teams
      });
    };
    
    // 执行处理函数
    const wrappedHandler = connectSystemDB(handler);
    return await wrappedHandler(req);
    
  } catch (error: unknown) {
    const err = error as Error;
    console.error('API: 获取团队列表失败:', err);
    
    // 其他错误
    return NextResponse.json(
      { 
        success: false,
        error: '获取团队列表失败: ' + err.message 
      },
      { status: 500 }
    );
  }
} 