from __future__ import annotations

from sqlalchemy import Boolean, String, Text
from sqlalchemy.orm import Mapped, mapped_column

from .base import Base


class Team(Base):
    """SQLAlchemy ORM model for Teams"""

    __tablename__ = "Teams"

    # Primary Key
    OverviewPage: Mapped[str] = mapped_column(String, primary_key=True)

    # Basic Information
    Name: Mapped[str | None] = mapped_column(String, default=None)
    Short: Mapped[str | None] = mapped_column(String, default=None)
    Image: Mapped[str | None] = mapped_column(String, default=None)
    RosterPhoto: Mapped[str | None] = mapped_column(String, default=None)

    # Location Information
    Location: Mapped[str | None] = mapped_column(String, default=None)
    TeamLocation: Mapped[str | None] = mapped_column(String, default=None)
    Region: Mapped[str | None] = mapped_column(String, default=None)

    # Organization
    OrganizationPage: Mapped[str | None] = mapped_column(String, default=None)

    # Social Media
    Twitter: Mapped[str | None] = mapped_column(String, default=None)
    Youtube: Mapped[str | None] = mapped_column(String, default=None)
    KICK: Mapped[str | None] = mapped_column(String, default=None)
    Facebook: Mapped[str | None] = mapped_column(String, default=None)
    Instagram: Mapped[str | None] = mapped_column(String, default=None)
    Bluesky: Mapped[str | None] = mapped_column(String, default=None)
    Discord: Mapped[str | None] = mapped_column(String, default=None)
    Snapchat: Mapped[str | None] = mapped_column(String, default=None)
    Vk: Mapped[str | None] = mapped_column(String, default=None)
    Subreddit: Mapped[str | None] = mapped_column(String, default=None)
    Website: Mapped[str | None] = mapped_column(Text, default=None)

    # Status Flags
    IsDisbanded: Mapped[bool | None] = mapped_column(Boolean, default=None)
    RenamedTo: Mapped[str | None] = mapped_column(String, default=None)
    IsLowercase: Mapped[bool | None] = mapped_column(Boolean, default=None)
