from datetime import datetime
from src.core.database import Base
from sqlalchemy.orm import relationship
from sqlalchemy import Column, String, Integer, Boolean, DateTime


class Usuario(Base):
    __tablename__ = "usuarios"

    id = Column(Integer, primary_key=True, autoincrement=True)
    nome = Column(String(150), nullable=False, unique=True)
    ativo = Column(Boolean, nullable=True, default=True)
    data_criacao = Column(
        DateTime,
        nullable=True,
        default=datetime.now)
    ultimo_login = Column(DateTime, nullable=True)

    computadores = relationship(
        "Computer",
        back_populates="usuario",
        lazy="select")

    times = relationship(
        "Time",
        secondary="usuarios_times",
        back_populates="usuarios",
        lazy="select")
