Source code for app.model.oauth_users

from datetime import datetime
from uuid import uuid4

from pydantic import ConfigDict
from sqlalchemy.dialects.postgresql import UUID
from sqlmodel import Column, DateTime, Field, ForeignKey, SQLModel, String, func


[docs] class OAuthUsers(SQLModel, table=True): """ Represents a user authenticated via OAuth. Attributes: provider (str): The OAuth provider. provider_user_id (str): The OAuth user ID. status (str): The status of the user (e.g., 'active', 'inactive'). Methods: __str__: Return a string representation of the object. __repr__: Return a string representation of the object. __eq__: Compare if two objects are equal. __hash__: Return the hash of the object. """ id: str = Field( default_factory=uuid4, sa_column=Column(UUID(as_uuid=True), primary_key=True, index=True), ) created_at: datetime = Field( sa_column=Column(DateTime(timezone=True), default=func.now()) ) updated_at: datetime = Field( sa_column=Column( DateTime(timezone=True), default=func.now(), onupdate=func.now() ) ) provider: str = Field(sa_column=Column(String)) provider_user_id: str = Field(sa_column=Column(String, unique=True)) status: str = Field(sa_column=Column(String, nullable=True)) apiKey_used: str = Field( sa_column=Column(String, ForeignKey("apikey.apiKey"), nullable=True) ) model_config = ConfigDict(from_attributes=True)
[docs] def __str__(self): return ( f"OAuthUsers: (id={self.id}, created_at={self.created_at}, " f"updated_at={self.updated_at}, provider={self.provider}, " f"provider_user_id={self.provider_user_id}, status={self.status})" )
[docs] def __repr__(self): return ( f"OAuthUsers: (id={self.id}, created_at={self.created_at}, " f"updated_at={self.updated_at}, provider={self.provider}, " f"provider_user_id={self.provider_user_id}, status={self.status})" )
[docs] def __eq__(self, other): return ( isinstance(other, OAuthUsers) and self.provider == other.provider and self.provider_user_id == other.provider_user_id and self.status == other.status )
[docs] def __hash__(self): return hash((self.provider, self.provider_user_id, self.status))