from flask import render_template, redirect, url_for, request, g
from flask import Blueprint
from app.services.auth.decorators import login_required
from app.models.database.models import (
    ChallengeRecord, DeploymentRecord, CategoryConfig, User, Role
)

bp = Blueprint('main', __name__, url_prefix='')

@bp.route('/')
def index():
    """首页"""
    # 获取统计数据（不要求登录）
    stats = {
        'total_challenges': ChallengeRecord.query.count(),
        'active_deployments': DeploymentRecord.query.filter_by(status='running').count(),
        'total_categories': CategoryConfig.query.filter_by(enabled=True).count(),
    }
    
    # 获取启用的方向列表
    categories = CategoryConfig.query.filter_by(enabled=True).order_by(CategoryConfig.sort_order).limit(6).all()
    
    # 获取最近生成的题目（如果用户已登录）
    recent_challenges = []
    if hasattr(g, 'user') and g.user:
        recent_challenges = ChallengeRecord.query.filter_by(user_id=g.user.id)\
            .order_by(ChallengeRecord.created_at.desc()).limit(5).all()
    
    # 获取所有用户的最新题目（未登录时显示）
    if not recent_challenges:
        recent_challenges = ChallengeRecord.query.order_by(ChallengeRecord.created_at.desc()).limit(5).all()
    
    return render_template('pages/home/index.html',
                         stats=stats,
                         categories=categories,
                         recent_challenges=recent_challenges)

@bp.route('/ai-settings')
@login_required
def ai_settings():
    """用户 AI 配置页面 - 重定向到个人中心"""
    return redirect(url_for('auth.profile') + '#ai-config') 