小程序后端接入 talkingq 共享库并新增消息与定位能力
This commit is contained in:
53
mini-program/app/schemas/location.py
Normal file
53
mini-program/app/schemas/location.py
Normal 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
|
||||
Reference in New Issue
Block a user