28:class User(Base, TimestampMixin): 29- __tablename__ = "users" 30- id = Column(Integer, primary_key=True) 31- email = Column(String(320), unique=True, nullable=False, index=True) 32- password_hash = Column(String(255), nullable=False) 33- full_name = Column(String(200), default="") 34- is_admin = Column(Boolean, default=False, nullable=False) 35- is_active = Column(Boolean, default=True, nullable=False) 36- last_login_at = Column(DateTime(timezone=True)) 37- 38- gmail_accounts = relationship("GmailAccount", back_populates="user", cascade="all, delete-orphan") 39- audit_logs = relationship("AuditLog", back_populates="user") 40- 41- 42-class OAuthClientConfig(Base, TimestampMixin): 43- """An imported Google OAuth client configuration (from client_secret JSON). 44- Secrets stored encrypted. Multiple configs may exist (e.g. per project).""" 45- __tablename__ = "oauth_client_configs" 46- id = Column(Integer, primary_key=True) 47- name = Column(String(200), nullable=False) 48- client_id = Column(String(300), nullable=False)