Files
qmd-memory-gateway/gateway/app/models.py

74 lines
1.5 KiB
Python

from __future__ import annotations
from datetime import datetime
from enum import Enum
from typing import Any
from pydantic import BaseModel, Field
class QueryType(str, Enum):
search = "search"
vsearch = "vsearch"
query = "query"
deep_search = "deep_search"
class QueryRequest(BaseModel):
branch: str | None = None
memory_profile: str | None = None
query_type: QueryType = QueryType.query
query: str = Field(min_length=1)
require_latest: bool = True
n: int = Field(default=5, ge=1, le=50)
debug: bool = False
class SyncRequest(BaseModel):
branch: str | None = None
memory_profile: str | None = None
require_latest: bool = True
class QueryResponse(BaseModel):
ok: bool
branch: str
resolved_workspace: str
commit_hash: str
synced_at: datetime
query_type: QueryType
results: Any
qmd_collection: str
debug: dict[str, Any] | None = None
class SyncResponse(BaseModel):
ok: bool
branch: str
resolved_workspace: str
commit_hash: str
synced_at: datetime
qmd_collection: str
debug: dict[str, Any] | None = None
class HealthResponse(BaseModel):
ok: bool
service: str
timestamp: datetime
class WorkspaceStatusItem(BaseModel):
branch: str
workspace: str
commit_hash: str
synced_at: datetime
qmd_collection: str
class StatusResponse(BaseModel):
ok: bool
default_branch: str
mirror_path: str
workspaces: list[WorkspaceStatusItem]