/**
 * 匹配规则配置API
 * 管理后台匹配类型和规则配置
 */

import { NextResponse } from 'next/server'

// 默认匹配类型配置
const DEFAULT_MATCH_TYPES = [
  { 
    id: 'partner', 
    label: '创业合伙', 
    matchLabel: '创业伙伴', 
    icon: '⭐', 
    matchFromDB: true, 
    showJoinAfterMatch: false,
    description: '寻找志同道合的创业伙伴，共同打造事业',
    enabled: true
  },
  { 
    id: 'investor', 
    label: '资源对接', 
    matchLabel: '资源对接', 
    icon: '👥', 
    matchFromDB: false, 
    showJoinAfterMatch: true,
    description: '对接各类商业资源，拓展合作机会',
    enabled: true
  },
  { 
    id: 'mentor', 
    label: '导师顾问', 
    matchLabel: '商业顾问', 
    icon: '❤️', 
    matchFromDB: false, 
    showJoinAfterMatch: true,
    description: '寻找行业导师，获得专业指导',
    enabled: true
  },
  { 
    id: 'team', 
    label: '团队招募', 
    matchLabel: '加入项目', 
    icon: '🎮', 
    matchFromDB: false, 
    showJoinAfterMatch: true,
    description: '招募团队成员，扩充项目人才',
    enabled: true
  }
]

/**
 * GET - 获取匹配类型配置
 */
export async function GET(request: Request) {
  try {
    console.log('[MatchConfig] 获取匹配配置')

    // TODO: 从数据库获取配置
    // 这里应该从数据库读取管理员配置的匹配类型
    
    const matchTypes = DEFAULT_MATCH_TYPES.filter(type => type.enabled)

    return NextResponse.json({
      success: true,
      data: {
        matchTypes,
        freeMatchLimit: 3, // 每日免费匹配次数
        matchPrice: 1, // 付费匹配价格（元）
        settings: {
          enableFreeMatches: true,
          enablePaidMatches: true,
          maxMatchesPerDay: 10
        }
      }
    })

  } catch (error) {
    console.error('[MatchConfig] 获取匹配配置失败:', error)
    return NextResponse.json({
      success: false,
      error: '获取匹配配置失败'
    }, { status: 500 })
  }
}

/**
 * POST - 更新匹配类型配置（管理员功能）
 */
export async function POST(request: Request) {
  try {
    const body = await request.json()
    const { matchTypes, settings, adminToken } = body

    // TODO: 验证管理员权限
    if (!adminToken || adminToken !== 'admin_token_placeholder') {
      return NextResponse.json({
        success: false,
        error: '无权限操作'
      }, { status: 403 })
    }

    console.log('[MatchConfig] 更新匹配配置:', { matchTypes: matchTypes?.length, settings })

    // TODO: 保存到数据库
    // 这里应该将配置保存到数据库
    
    return NextResponse.json({
      success: true,
      data: {
        message: '配置更新成功',
        updatedAt: new Date().toISOString()
      }
    })

  } catch (error) {
    console.error('[MatchConfig] 更新匹配配置失败:', error)
    return NextResponse.json({
      success: false,
      error: '更新匹配配置失败'
    }, { status: 500 })
  }
}

/**
 * PUT - 启用/禁用特定匹配类型
 */
export async function PUT(request: Request) {
  try {
    const body = await request.json()
    const { typeId, enabled, adminToken } = body

    if (!adminToken || adminToken !== 'admin_token_placeholder') {
      return NextResponse.json({
        success: false,
        error: '无权限操作'
      }, { status: 403 })
    }

    if (!typeId || typeof enabled !== 'boolean') {
      return NextResponse.json({
        success: false,
        error: '参数错误'
      }, { status: 400 })
    }

    console.log('[MatchConfig] 切换匹配类型状态:', { typeId, enabled })

    // TODO: 更新数据库中的匹配类型状态
    
    return NextResponse.json({
      success: true,
      data: {
        typeId,
        enabled,
        updatedAt: new Date().toISOString()
      }
    })

  } catch (error) {
    console.error('[MatchConfig] 切换匹配类型状态失败:', error)
    return NextResponse.json({
      success: false,
      error: '操作失败'
    }, { status: 500 })
  }
}