from datetime import datetime from sqlalchemy.orm import mapped_column, relationship from sqlalchemy.orm.attributes import Mapped from sqlalchemy.orm.properties import ForeignKey from sqlalchemy.sql import func from sqlalchemy.types import TIMESTAMP, Boolean, String import app_db import spec class TeamInvite(app_db.BaseModel): __tablename__ = "team_invites" key: Mapped[str] = mapped_column(String(31), primary_key=True) team_id: Mapped[int] = mapped_column(ForeignKey("teams.id")) delete_on_use: Mapped[bool] = mapped_column(Boolean, default=True) created_at: Mapped[datetime] = mapped_column(TIMESTAMP, server_default=func.now()) team: Mapped["Team"] = relationship(back_populates="invites") class TeamInviteSchema(spec.BaseModel): key: str team_id: int created_at: datetime from models.team import Team