from sqlalchemy import BigInteger, Column, DateTime, String, func from sqlalchemy.orm import relationship from app.db.session import Base class User(Base): __tablename__ = "users" id = Column(BigInteger, primary_key=True, autoincrement=True) openid = Column(String(64), nullable=False, unique=True, index=True) username = Column(String(64), nullable=True, unique=True, index=True) password = Column(String(128), nullable=True) login_type = Column(String(20), nullable=False, default="wechat") nickname = Column(String(100), nullable=True) avatar_url = Column(String(255), nullable=True) created_at = Column(DateTime, nullable=False, server_default=func.now()) updated_at = Column(DateTime, nullable=False, server_default=func.now(), onupdate=func.now()) entries = relationship("Entry", back_populates="user")