from datetime import datetime
from src.core.database import Base
from sqlalchemy import (
    Column,
    Integer,
    String,
    DateTime,
    ForeignKey,
    PrimaryKeyConstraint
)


class UsuarioTime(Base):
    """
    Tabela associativa entre Usuários e Times.
    Um usuário pode pertencer a múltiplos times e um time.
    """
    __tablename__ = "usuarios_times"

    usuario_id = Column(
        Integer,
        ForeignKey(
            "usuarios.id",
            ondelete="CASCADE"),
        nullable=False)
    time_id = Column(
        Integer,
        ForeignKey(
            "times.id",
            ondelete="CASCADE"),
        nullable=False)
    funcao = Column(String(50), nullable=True)
    data_entrada = Column(DateTime, nullable=False, default=datetime.now)

    __table_args__ = (
        PrimaryKeyConstraint(
            'usuario_id',
            'time_id',
            name='pk_usuarios_times'),
    )
