Extract metadata tree builder
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,50 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
|
|
||||||
|
class MetadataTreeNodeResponse(BaseModel):
|
||||||
|
id: str
|
||||||
|
label: str
|
||||||
|
kind: str
|
||||||
|
icon: str
|
||||||
|
qualified_name: str | None = None
|
||||||
|
count: int = 0
|
||||||
|
loaded_count: int = 0
|
||||||
|
has_more: bool = False
|
||||||
|
children: list["MetadataTreeNodeResponse"] = Field(default_factory=list)
|
||||||
|
|
||||||
|
|
||||||
|
class ProjectMetadataTreeResponse(BaseModel):
|
||||||
|
project_id: str
|
||||||
|
root: MetadataTreeNodeResponse
|
||||||
|
|
||||||
|
|
||||||
|
class MetadataTreeChildrenResponse(BaseModel):
|
||||||
|
project_id: str
|
||||||
|
parent_id: str
|
||||||
|
offset: int = 0
|
||||||
|
limit: int = 50
|
||||||
|
total: int = 0
|
||||||
|
has_more: bool = False
|
||||||
|
children: list[MetadataTreeNodeResponse] = Field(default_factory=list)
|
||||||
|
|
||||||
|
|
||||||
|
class MetadataTreeSearchResponse(BaseModel):
|
||||||
|
project_id: str
|
||||||
|
q: str
|
||||||
|
total: int = 0
|
||||||
|
results: list[MetadataTreeNodeResponse] = Field(default_factory=list)
|
||||||
|
|
||||||
|
|
||||||
|
class MetadataTreePathStepResponse(BaseModel):
|
||||||
|
parent_id: str
|
||||||
|
child_id: str
|
||||||
|
offset: int = 0
|
||||||
|
|
||||||
|
|
||||||
|
class MetadataTreePathResponse(BaseModel):
|
||||||
|
project_id: str
|
||||||
|
node_id: str
|
||||||
|
path: list[str] = Field(default_factory=list)
|
||||||
|
steps: list[MetadataTreePathStepResponse] = Field(default_factory=list)
|
||||||
Reference in New Issue
Block a user