SurfSense/surfsense_backend/app/schemas/logs.py
CREDO23 0c53d884eb refactor(schemas): rename SearchSpace -> Workspace in Pydantic schemas (Phase 2 Wave C)
Rename schemas/search_space.py -> schemas/workspace.py, the SearchSpace* classes
-> Workspace* (incl. UserSearchSpaceAccess -> UserWorkspaceAccess), and the
search_space_id / search_space_name fields -> workspace_id / workspace_name across
all schema modules. Under hard cutover the serialized JSON keys change outright
(no alias). Re-exports in schemas/__init__.py updated.
2026-06-26 18:23:43 +02:00

52 lines
1.2 KiB
Python

from datetime import datetime
from typing import Any
from pydantic import BaseModel, ConfigDict
from app.db import LogLevel, LogStatus
from .base import IDModel, TimestampModel
class LogBase(BaseModel):
level: LogLevel
status: LogStatus
message: str
source: str | None = None
log_metadata: dict[str, Any] | None = None
class LogCreate(BaseModel):
level: LogLevel
status: LogStatus
message: str
source: str | None = None
log_metadata: dict[str, Any] | None = None
workspace_id: int
class LogUpdate(BaseModel):
level: LogLevel | None = None
status: LogStatus | None = None
message: str | None = None
source: str | None = None
log_metadata: dict[str, Any] | None = None
class LogRead(LogBase, IDModel, TimestampModel):
id: int
created_at: datetime
workspace_id: int
model_config = ConfigDict(from_attributes=True)
class LogFilter(BaseModel):
level: LogLevel | None = None
status: LogStatus | None = None
source: str | None = None
workspace_id: int | None = None
start_date: datetime | None = None
end_date: datetime | None = None
model_config = ConfigDict(from_attributes=True)