from sqlalchemy.orm import Session
from ..models import Usuario as ModelUsuario
from fastapi import HTTPException


class Usuario():
    def get_usuarios(self, session: Session):
        return session.query(ModelUsuario.Usuario).all()

    def get_usuario_por_id(self, id: int, session: Session):
        return session.query(ModelUsuario.Usuario).filter_by(id=id).first()

    def verificar_credenciais(self, session: Session, usuario: str, senha: str):
        usuarioCadastrado = session.query(ModelUsuario.Usuario).filter_by(login=usuario).first()
        if not usuarioCadastrado:
            raise HTTPException(
                status_code=400,
                detail="Usuário e/ou senha incorreto(s)."
            )
        if usuarioCadastrado.senha != senha:
            raise HTTPException(
                status_code=400,
                detail="Usuário e/ou senha incorreto(s)."
            )
        return usuarioCadastrado