Add info if linked acc
This commit is contained in:
30
backend/alembic/versions/010_add_telegram_profile.py
Normal file
30
backend/alembic/versions/010_add_telegram_profile.py
Normal file
@@ -0,0 +1,30 @@
|
||||
"""Add telegram profile fields to users
|
||||
|
||||
Revision ID: 010_add_telegram_profile
|
||||
Revises: 009_add_disputes
|
||||
Create Date: 2024-12-16
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '010_add_telegram_profile'
|
||||
down_revision: Union[str, None] = '009_add_disputes'
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.add_column('users', sa.Column('telegram_first_name', sa.String(100), nullable=True))
|
||||
op.add_column('users', sa.Column('telegram_last_name', sa.String(100), nullable=True))
|
||||
op.add_column('users', sa.Column('telegram_avatar_url', sa.String(500), nullable=True))
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_column('users', 'telegram_avatar_url')
|
||||
op.drop_column('users', 'telegram_last_name')
|
||||
op.drop_column('users', 'telegram_first_name')
|
||||
@@ -25,6 +25,9 @@ class TelegramConfirmLink(BaseModel):
|
||||
token: str
|
||||
telegram_id: int
|
||||
telegram_username: str | None = None
|
||||
telegram_first_name: str | None = None
|
||||
telegram_last_name: str | None = None
|
||||
telegram_avatar_url: str | None = None
|
||||
|
||||
|
||||
class TelegramLinkResponse(BaseModel):
|
||||
@@ -131,6 +134,9 @@ async def confirm_telegram_link(data: TelegramConfirmLink, db: DbSession):
|
||||
logger.info(f"[TG_CONFIRM] Linking telegram_id={data.telegram_id} to user_id={user_id}")
|
||||
user.telegram_id = data.telegram_id
|
||||
user.telegram_username = data.telegram_username
|
||||
user.telegram_first_name = data.telegram_first_name
|
||||
user.telegram_last_name = data.telegram_last_name
|
||||
user.telegram_avatar_url = data.telegram_avatar_url
|
||||
|
||||
await db.commit()
|
||||
logger.info(f"[TG_CONFIRM] SUCCESS! User {user.nickname} linked to Telegram {data.telegram_id}")
|
||||
|
||||
@@ -21,6 +21,9 @@ class User(Base):
|
||||
avatar_path: Mapped[str | None] = mapped_column(String(500), nullable=True)
|
||||
telegram_id: Mapped[int | None] = mapped_column(BigInteger, unique=True, nullable=True)
|
||||
telegram_username: Mapped[str | None] = mapped_column(String(50), nullable=True)
|
||||
telegram_first_name: Mapped[str | None] = mapped_column(String(100), nullable=True)
|
||||
telegram_last_name: Mapped[str | None] = mapped_column(String(100), nullable=True)
|
||||
telegram_avatar_url: Mapped[str | None] = mapped_column(String(500), nullable=True)
|
||||
role: Mapped[str] = mapped_column(String(20), default=UserRole.USER.value)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.utcnow)
|
||||
|
||||
|
||||
@@ -35,6 +35,9 @@ class UserPublic(UserBase):
|
||||
role: str = "user"
|
||||
telegram_id: int | None = None
|
||||
telegram_username: str | None = None
|
||||
telegram_first_name: str | None = None
|
||||
telegram_last_name: str | None = None
|
||||
telegram_avatar_url: str | None = None
|
||||
created_at: datetime
|
||||
|
||||
class Config:
|
||||
|
||||
Reference in New Issue
Block a user