1- from typing import Any , Optional , Generic , TypeVar , List , Dict
2- from pydantic import BaseModel
31from datetime import datetime
42from enum import Enum
3+ from typing import Any , Dict , Generic , List , Optional , TypeVar
54
6- T = TypeVar ( "T" )
5+ from pydantic import BaseModel
76
7+ T = TypeVar ("T" )
88
99class ApiResponse (BaseModel , Generic [T ]):
1010 """Standard API response format matching the frontend contract"""
11-
1211 success : bool
1312 data : Optional [T ] = None
1413 error : Optional [str ] = None
1514 message : Optional [str ] = None
1615
17-
1816class HealthStatus (BaseModel ):
1917 """Health check status model"""
20-
2118 status : str
2219 service : str
2320 version : str
2421 timestamp : str
2522 checks : dict
2623
27-
2824class HealthChecks (BaseModel ):
2925 """Individual health checks"""
30-
3126 database : bool
3227 redis : bool
3328 storage : bool
3429 llm_service : bool
3530
36-
3731class ValidationError (BaseModel ):
3832 """Validation error details"""
39-
4033 field : str
4134 message : str
4235 code : str
4336
44-
4537class ApiError (BaseModel ):
4638 """API error response format"""
47-
4839 error : str
4940 message : str
5041 code : int
@@ -59,7 +50,6 @@ class ApiError(BaseModel):
5950
6051class User (BaseModel ):
6152 """User model"""
62-
6353 id : str
6454 email : str
6555 name : str
@@ -70,13 +60,11 @@ class User(BaseModel):
7060
7161class LoginRequest (BaseModel ):
7262 """Google OAuth login request"""
73-
7463 google_token : str
7564
7665
7766class AuthResponse (BaseModel ):
7867 """Authentication response"""
79-
8068 user : User
8169 access_token : str
8270 refresh_token : str
@@ -85,7 +73,6 @@ class AuthResponse(BaseModel):
8573
8674class RefreshTokenRequest (BaseModel ):
8775 """Refresh token request"""
88-
8976 refresh_token : str
9077
9178
@@ -96,7 +83,6 @@ class RefreshTokenRequest(BaseModel):
9683
9784class ProjectStatus (str , Enum ):
9885 """Project status enum"""
99-
10086 UPLOADING = "uploading"
10187 PROCESSING = "processing"
10288 READY = "ready"
@@ -105,7 +91,6 @@ class ProjectStatus(str, Enum):
10591
10692class ColumnMetadata (BaseModel ):
10793 """Column metadata model"""
108-
10994 name : str
11095 type : str
11196 nullable : bool
@@ -115,7 +100,6 @@ class ColumnMetadata(BaseModel):
115100
116101class Project (BaseModel ):
117102 """Project model"""
118-
119103 id : str
120104 user_id : str
121105 name : str
@@ -132,29 +116,25 @@ class Project(BaseModel):
132116
133117class CreateProjectRequest (BaseModel ):
134118 """Create project request"""
135-
136119 name : str
137120 description : Optional [str ] = None
138121
139122
140123class CreateProjectResponse (BaseModel ):
141124 """Create project response"""
142-
143125 project : Project
144126 upload_url : str
145127 upload_fields : Dict [str , str ]
146128
147129
148130class PaginationParams (BaseModel ):
149131 """Pagination parameters"""
150-
151132 page : int = 1
152133 limit : int = 20
153134
154135
155136class PaginatedResponse (BaseModel , Generic [T ]):
156137 """Paginated response"""
157-
158138 items : List [T ]
159139 total : int
160140 page : int
@@ -164,7 +144,6 @@ class PaginatedResponse(BaseModel, Generic[T]):
164144
165145class UploadStatusResponse (BaseModel ):
166146 """Upload status response"""
167-
168147 project_id : str
169148 status : str
170149 progress : int
@@ -178,7 +157,6 @@ class UploadStatusResponse(BaseModel):
178157
179158class ChatMessage (BaseModel ):
180159 """Chat message model"""
181-
182160 id : str
183161 project_id : str
184162 user_id : str
@@ -190,14 +168,12 @@ class ChatMessage(BaseModel):
190168
191169class SendMessageRequest (BaseModel ):
192170 """Send message request"""
193-
194171 message : str
195172 context : Optional [List [str ]] = None
196173
197174
198175class QueryResult (BaseModel ):
199176 """Query result model"""
200-
201177 id : str
202178 query : str
203179 sql_query : str
@@ -210,14 +186,12 @@ class QueryResult(BaseModel):
210186
211187class SendMessageResponse (BaseModel ):
212188 """Send message response"""
213-
214189 message : ChatMessage
215190 result : QueryResult
216191
217192
218193class CSVPreview (BaseModel ):
219194 """CSV preview model"""
220-
221195 columns : List [str ]
222196 sample_data : List [List [Any ]]
223197 total_rows : int
@@ -226,7 +200,6 @@ class CSVPreview(BaseModel):
226200
227201class QuerySuggestion (BaseModel ):
228202 """Query suggestion model"""
229-
230203 id : str
231204 text : str
232205 category : str
0 commit comments