import urllib.request
import urllib.parse
import urllib.error
-from pydantic import BaseModel
-from typing import List, Optional
+from pydantic import BaseModel, field_validator
+from typing import List, Optional, Union
app = FastAPI()
from_attributes = True
class ProgressUpdate(BaseModel):
- group_id: str
+ group_id: Union[str, int]
op_type: str
+ @field_validator('group_id', mode='before')
+ @classmethod
+ def coerce_group_id(cls, v):
+ return str(v)
+
class SyncEvent(BaseModel):
- group_id: str
+ group_id: Union[str, int]
op_type: str
completed_at: str
+ @field_validator('group_id', mode='before')
+ @classmethod
+ def coerce_group_id(cls, v):
+ return str(v)
+
class SyncPushRequest(BaseModel):
events: List[SyncEvent]