mirror of
https://github.com/TronoSfera/Law.git
synced 2026-05-18 18:13:46 +03:00
23 lines
472 B
Python
23 lines
472 B
Python
from pydantic import BaseModel
|
|
from typing import Any, List, Literal
|
|
|
|
Op = Literal["=", "!=", ">", "<", ">=", "<=", "~"]
|
|
Dir = Literal["asc", "desc"]
|
|
|
|
class FilterClause(BaseModel):
|
|
field: str
|
|
op: Op
|
|
value: Any
|
|
|
|
class SortClause(BaseModel):
|
|
field: str
|
|
dir: Dir
|
|
|
|
class Page(BaseModel):
|
|
limit: int = 50
|
|
offset: int = 0
|
|
|
|
class UniversalQuery(BaseModel):
|
|
filters: List[FilterClause] = []
|
|
sort: List[SortClause] = []
|
|
page: Page = Page()
|