No SQLModel

This commit is contained in:
ciomek committed 2026-09-04 23:41:35 +02:00
1 parent 5f0e8c11b4
commit 9964fbf044
16 files changed
+91 -84

No files matched your search

+18 -11
View File
@@ -1,17 +1,24 @@
from datetime import datetime, timezone
from sqlmodel import SQLModel, Field, Relationship
from sqlalchemy import ForeignKey
from sqlalchemy.orm import Mapped, mapped_column, relationship
from loon.web.db import Base
class LogType(SQLModel, table=True):
id: int = Field(default=None, primary_key=True)
code: str = Field(nullable=False, unique=True)
entries: list["LogEntry"] = Relationship(back_populates="log_type")
class LogType(Base):
__tablename__ = "logtype"
id: Mapped[int] = mapped_column(primary_key=True)
code: Mapped[str] = mapped_column(unique=True)
entries: Mapped[list["LogEntry"]] = relationship(back_populates="log_type")
class LogEntry(SQLModel, table=True):
id: int = Field(default=None, primary_key=True)
log_type_id: int = Field(foreign_key="logtype.id", nullable=False)
log_type: LogType = Relationship(back_populates="entries")
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
message: str = Field(nullable=False)
class LogEntry(Base):
__tablename__ = "logentry"
id: Mapped[int] = mapped_column(primary_key=True)
log_type_id: Mapped[int] = mapped_column(ForeignKey("logtype.id"))
log_type: Mapped[LogType] = relationship(back_populates="entries")
created_at: Mapped[datetime] = mapped_column(default=lambda: datetime.now(timezone.utc))
message: Mapped[str]
+3 -2
View File
@@ -1,6 +1,7 @@
import asyncio
from sqlmodel import Session, select
from sqlalchemy import select
from sqlalchemy.orm import Session
from loon.web.db import engine
from loon.web.logs.models import LogType, LogEntry
@@ -14,7 +15,7 @@ def player_tag(uuid: str, username: str) -> str:
def _write_log(log_type: LogTypeEnum, message: str) -> None:
with Session(engine) as session:
statement = select(LogType).where(LogType.code == log_type.value)
log_type_object = session.exec(statement).first()
log_type_object = session.execute(statement).scalars().first()
if not log_type_object:
log_type_object = LogType(code=log_type.value)