"""User model""" from sqlalchemy import Column, Integer, String, DateTime, Boolean, Text from sqlalchemy.orm import relationship from datetime import datetime from app.db.database import Base class User(Base): """User model - represents a Telegram user""" __tablename__ = "users" id = Column(Integer, primary_key=True) telegram_id = Column(Integer, unique=True, nullable=False, index=True) username = Column(String(255), nullable=True) first_name = Column(String(255), nullable=True) last_name = Column(String(255), nullable=True) phone = Column(String(20), nullable=True) # Account status is_active = Column(Boolean, default=True) # Timestamps created_at = Column(DateTime, default=datetime.utcnow, nullable=False) updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) last_activity = Column(DateTime, nullable=True) # Relationships family_members = relationship("FamilyMember", back_populates="user") accounts = relationship("Account", back_populates="owner") transactions = relationship("Transaction", back_populates="user") def __repr__(self) -> str: return f""