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)
