import enum

from sqlalchemy import Column, Integer, String, ForeignKey, TIMESTAMP, Enum, Float, Text
from sqlalchemy.orm import relationship

from ..database import Base

class ModoDespesa(enum.Enum):
    Administrativo = "Administrativo"
    Operacional = "Operacional"
    Aquisicao = "Aquisicao"

class Despesa(Base):
    __tablename__ = "despesa"

    id = Column(Integer, primary_key=True, name="des_id")
    usuario_id = Column(Integer, ForeignKey("usuario.usu_id"), name="usu_id")
    nome = Column(String, name="des_nome")
    data = Column(TIMESTAMP, name="des_data")
    modo = Column(Enum(ModoDespesa), name="des_modo")
    descricao = Column(Text, name="des_descricao")

    usuario = relationship("Usuario", back_populates="despesas")
    lancamentos = relationship("LancamentoDespesa", back_populates="despesa")
