小程序后端接入 talkingq 共享库并新增消息与定位能力

This commit is contained in:
stu2not
2026-04-20 20:07:35 +08:00
parent e7fe92b863
commit 24b1d1025b
22 changed files with 3469 additions and 762 deletions

View File

@@ -0,0 +1,53 @@
from datetime import datetime
from pydantic import BaseModel, Field
class DeviceLocationReportRequest(BaseModel):
coord_type: str = Field(default="gcj02", min_length=1, max_length=16)
lat: float = Field(ge=-90, le=90)
lng: float = Field(ge=-180, le=180)
accuracy_m: int | None = Field(default=None, ge=0)
altitude_m: float | None = None
speed_mps: float | None = None
heading_deg: int | None = Field(default=None, ge=0, le=360)
source: int = Field(ge=0)
battery_pct: int | None = Field(default=None, ge=0, le=100)
device_time: datetime
class DeviceLocationPoint(BaseModel):
child_id: int
child_name: str | None = None
device_id: str
coord_type: str
lat: float
lng: float
accuracy_m: int | None = None
altitude_m: float | None = None
speed_mps: float | None = None
heading_deg: int | None = None
source: int
battery_pct: int | None = None
device_time: datetime
server_time: datetime
class DeviceLocationCurrentResponse(DeviceLocationPoint):
updated_at: datetime
class DeviceLocationReportResponse(DeviceLocationCurrentResponse):
pass
class DeviceLocationTrajectoryItem(DeviceLocationPoint):
id: int
created_at: datetime
class DeviceLocationTrajectoryResponse(BaseModel):
items: list[DeviceLocationTrajectoryItem]
total: int
start_at: datetime | None = None
end_at: datetime | None = None