from flask import Blueprint, request, jsonify
from app.database import db
from app.auth import login_required
from app.seeder import seed_database_if_empty

admin_bp = Blueprint("admin", __name__)

@admin_bp.route("/status", methods=["GET"])
@login_required
def get_system_status():
    """Retorna status do banco de dados MySQL e infraestrutura."""
    status = db.get_status()
    return jsonify({"success": True, "status": status})

@admin_bp.route("/logs", methods=["GET"])
@login_required
def get_logs():
    """Retorna logs de auditoria do sistema."""
    nivel = request.args.get("nivel")
    limit = min(200, int(request.args.get("limit", 50)))
    
    where_sql = ""
    params = []
    if nivel and nivel != "all":
        where_sql = "WHERE nivel = %s"
        params.append(nivel)

    sql = f"SELECT id, nivel, modulo, mensagem, detalhes, criado_em FROM system_logs {where_sql} ORDER BY id DESC LIMIT {limit}"
    logs = db.execute_query(sql, params)
    
    return jsonify({"success": True, "logs": logs})

@admin_bp.route("/reseed", methods=["POST"])
@login_required
def reseed_database():
    """Força a recriação da massa de dados de teste."""
    try:
        seed_database_if_empty(force=True)
        return jsonify({"success": True, "message": "Banco de dados recriado com dados simulados realistas com sucesso."})
    except Exception as e:
        return jsonify({"success": False, "error": str(e)}), 500
