Files
mem0ai--mem0/server/models.py
T
wehub-resource-sync 555e282cc4
ci / changelog_check (push) Waiting to run
ci / check_changes (push) Waiting to run
ci / build_mem0 (3.10) (push) Blocked by required conditions
ci / build_mem0 (3.11) (push) Blocked by required conditions
ci / build_mem0 (3.12) (push) Blocked by required conditions
CLI Node CI / lint (push) Waiting to run
CLI Node CI / test (20) (push) Waiting to run
CLI Node CI / test (22) (push) Waiting to run
CLI Node CI / build (push) Waiting to run
CLI Python CI / lint (push) Waiting to run
CLI Python CI / test (3.10) (push) Waiting to run
CLI Python CI / test (3.11) (push) Waiting to run
CLI Python CI / test (3.12) (push) Waiting to run
CLI Python CI / build (push) Waiting to run
openclaw checks / lint (push) Waiting to run
openclaw checks / test (20) (push) Waiting to run
openclaw checks / test (22) (push) Waiting to run
openclaw checks / build (push) Waiting to run
opencode-plugin checks / build (push) Waiting to run
pi-agent-plugin checks / lint (push) Waiting to run
pi-agent-plugin checks / test (20) (push) Waiting to run
pi-agent-plugin checks / test (22) (push) Waiting to run
pi-agent-plugin checks / build (push) Waiting to run
TypeScript SDK CI / check_changes (push) Waiting to run
TypeScript SDK CI / changelog_check (push) Blocked by required conditions
TypeScript SDK CI / build_ts_sdk (20) (push) Blocked by required conditions
TypeScript SDK CI / build_ts_sdk (22) (push) Blocked by required conditions
TypeScript SDK CI / integration_ts_sdk (20) (push) Blocked by required conditions
TypeScript SDK CI / integration_ts_sdk (22) (push) Blocked by required conditions
chore: import upstream snapshot with attribution
2026-07-13 13:03:45 +08:00

75 lines
2.8 KiB
Python

import uuid
from datetime import datetime, timezone
from sqlalchemy import DateTime, Float, ForeignKey, Integer, String, Text
from sqlalchemy.orm import Mapped, mapped_column
from db import Base
def _utcnow() -> datetime:
return datetime.now(timezone.utc)
def _new_uuid() -> uuid.UUID:
return uuid.uuid4()
class User(Base):
__tablename__ = "users"
id: Mapped[uuid.UUID] = mapped_column(primary_key=True, default=_new_uuid)
name: Mapped[str] = mapped_column(String(255))
email: Mapped[str] = mapped_column(String(255), unique=True, index=True)
password_hash: Mapped[str] = mapped_column(Text)
role: Mapped[str] = mapped_column(String(20), default="admin")
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=_utcnow)
last_login_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True)
class APIKey(Base):
__tablename__ = "api_keys"
id: Mapped[uuid.UUID] = mapped_column(primary_key=True, default=_new_uuid)
key_prefix: Mapped[str] = mapped_column(String(12))
key_hash: Mapped[str] = mapped_column(Text)
label: Mapped[str] = mapped_column(String(255))
created_by: Mapped[uuid.UUID] = mapped_column(ForeignKey("users.id", ondelete="CASCADE"))
last_used_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True)
revoked_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True)
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=_utcnow)
class RequestLog(Base):
__tablename__ = "request_logs"
id: Mapped[uuid.UUID] = mapped_column(primary_key=True, default=_new_uuid)
method: Mapped[str] = mapped_column(String(16))
path: Mapped[str] = mapped_column(String(512))
status_code: Mapped[int] = mapped_column(Integer)
latency_ms: Mapped[float] = mapped_column(Float)
auth_type: Mapped[str] = mapped_column(String(32), default="none")
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=_utcnow)
class RefreshTokenJti(Base):
__tablename__ = "refresh_token_jtis"
jti: Mapped[uuid.UUID] = mapped_column(primary_key=True, default=_new_uuid)
user_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("users.id", ondelete="CASCADE"))
expires_at: Mapped[datetime] = mapped_column(DateTime(timezone=True))
used_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True)
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=_utcnow)
class Settings(Base):
__tablename__ = "settings"
key: Mapped[str] = mapped_column(String(255), primary_key=True)
value: Mapped[str] = mapped_column(Text)
updated_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True),
default=_utcnow,
onupdate=_utcnow,
)