File size: 771 Bytes
7ccd501
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# --- Mongo Models ---
from typing import Any, Dict, List, Optional, Union
from pydantic import BaseModel, Field


class ExecutorPayload(BaseModel):
    mongo_uri: str = Field(..., description="MongoDB connection string")
    db_name: str = Field(..., description="Target Database Name")
    collection_name: str = Field(..., description="Target Collection Name")
    generated_query: Union[Dict, List, str] = Field(..., description="The query to execute (Find dict or Aggregation list)")
    user_query: Optional[str] = Field(None, description="Original user question for logging context")
    limited: bool = False
    limit_rows: int = 20

class ExecutorResponse(BaseModel):
    status: str
    count: int
    data: Any
    duration_seconds: float
    request_id: str