import { NextResponse } from 'next/server'
import type { NextRequest } from 'next/server'

// 需要身份验证的路径
const protectedPaths = [
  '/',
  '/dashboard',
  '/users',
  '/roles',
  '/ai-models',
  '/outfits',
  '/props',
  '/songs',
  '/settings',
]

export function middleware(request: NextRequest) {
  // 获取当前路径
  const { pathname } = request.nextUrl
  
  // 检查是否为需要身份验证的路径
  const isProtectedPath = protectedPaths.some(path => 
    pathname === path || pathname.startsWith(`${path}/`)
  )
  
  // 登录页和其他公共页面可以跳过验证
  if (!isProtectedPath) {
    return NextResponse.next()
  }
  
  // 从 Cookie 中获取 token
  const token = request.cookies.get('auth_token')?.value
  
  // 如果没有 token，重定向到登录页
  if (!token) {
    const url = new URL('/login', request.url)
    // 保存原始 URL 以便登录后重定向回来
    url.searchParams.set('callbackUrl', pathname)
    return NextResponse.redirect(url)
  }
  
  // 如果有 token，继续请求
  return NextResponse.next()
} 