from fastapi.middleware.cors import CORSMiddleware
from fastapi import FastAPI
from pydantic import BaseModel

import os
from dotenv import load_dotenv

import pymysql


load_dotenv()


app = FastAPI()

app.add_middleware(
    CORSMiddleware,

    allow_origins=[
        "http://localhost:5173",
        "https://app.doblebit.com"
    ],

    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)


class LoginData(BaseModel):
    usuario: str
    clave: str
    app: str


@app.get("/")
def inicio():

    return {
        "ok": True
    }


@app.post("/login")
def login(data: LoginData):

    conexion = pymysql.connect(

        host=os.getenv("DB_HOST"),
        user=os.getenv("DB_USER"),
        password=os.getenv("DB_PASSWORD"),
        database=os.getenv("DB_NAME")

    )

    cursor = conexion.cursor()

    cursor.callproc(
        "dbit_login",
        (
            data.usuario,
            data.clave,
            data.app
        )
    )

    usuario = cursor.fetchone()

    conexion.close()

    if usuario:

        return {
            "ok": True,
            "mensaje": "Login correcto"
        }

    return {
        "ok": False,
        "mensaje": "Credenciales incorrectas"
    }


# Para ejecutar api
# python -m uvicorn db:app --reload --port 8001