from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

# Permitir acceso desde el frontend
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],  # cámbialo por ["http://localhost:5173"] si es necesario
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

@app.get("/api/bar")
def get_bar_chart():
    return {
        "xAxis": {"type": "category", "data": ["Ene", "Feb", "Mar", "Abr"]},
        "yAxis": {"type": "value"},
        "series": [{"data": [5, 20, 36, 10], "type": "bar"}]
    }

@app.get("/api/line")
def get_line_chart():
    return {
        "xAxis": {"type": "category", "data": ["Semana 1", "Semana 2", "Semana 3", "Semana 4"]},
        "yAxis": {"type": "value"},
        "series": [{"data": [15, 25, 18, 30], "type": "line"}]
    }

@app.get("/api/pie")
def get_pie_chart():
    return {
        "tooltip": {"trigger": "item"},
        "legend": {"top": "5%", "left": "center"},
        "series": [{
            "name": "Accesos",
            "type": "pie",
            "radius": ["40%", "70%"],
            "avoidLabelOverlap": False,
            "itemStyle": {"borderRadius": 10, "borderColor": "#fff", "borderWidth": 2},
            "label": {"show": False, "position": "center"},
            "emphasis": {
                "label": {"show": True, "fontSize": 16, "fontWeight": "bold"}
            },
            "labelLine": {"show": False},
            "data": [
                {"value": 1048, "name": "Search"},
                {"value": 735, "name": "Direct"},
                {"value": 580, "name": "Email"},
                {"value": 484, "name": "Union Ads"},
                {"value": 300, "name": "Video Ads"}
            ]
        }]
    }

@app.get("/api/scatter")
def get_scatter_chart():
    return {
        "xAxis": {},
        "yAxis": {},
        "series": [{
            "symbolSize": 20,
            "data": [
                [10, 8], [20, 20], [30, 10], [40, 30], [50, 15]
            ],
            "type": "scatter"
        }]
    }