mirror of
https://github.com/remnawave/python-sdk.git
synced 2026-08-31 14:21:05 +00:00
84 lines
2.4 KiB
Python
84 lines
2.4 KiB
Python
from datetime import datetime
|
|
from typing import List, Optional
|
|
from uuid import UUID
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class CreateUserHwidDeviceRequestDto(BaseModel):
|
|
hwid: str
|
|
user_uuid: UUID = Field(serialization_alias="userUuid")
|
|
platform: Optional[str] = None
|
|
os_version: Optional[str] = Field(None, serialization_alias="osVersion")
|
|
device_model: Optional[str] = Field(None, serialization_alias="deviceModel")
|
|
user_agent: Optional[str] = Field(None, serialization_alias="userAgent")
|
|
|
|
|
|
class DeleteUserHwidDeviceRequestDto(BaseModel):
|
|
user_uuid: UUID = Field(serialization_alias="userUuid")
|
|
hwid: str
|
|
|
|
|
|
class HwidDeviceDto(BaseModel):
|
|
hwid: str
|
|
user_uuid: UUID = Field(alias="userUuid")
|
|
platform: Optional[str] = None
|
|
os_version: Optional[str] = Field(None, alias="osVersion")
|
|
device_model: Optional[str] = Field(None, alias="deviceModel")
|
|
user_agent: Optional[str] = Field(None, alias="userAgent")
|
|
created_at: datetime = Field(alias="createdAt")
|
|
updated_at: datetime = Field(alias="updatedAt")
|
|
|
|
|
|
class HwidDevicesData(BaseModel):
|
|
total: int
|
|
devices: List[HwidDeviceDto]
|
|
|
|
|
|
class CreateUserHwidDeviceResponseDto(BaseModel):
|
|
total: int
|
|
devices: List[HwidDeviceDto]
|
|
|
|
|
|
class DeleteUserHwidDeviceResponseDto(BaseModel):
|
|
total: int
|
|
devices: List[HwidDeviceDto]
|
|
|
|
|
|
class GetUserHwidDevicesResponseDto(BaseModel):
|
|
total: int
|
|
devices: List[HwidDeviceDto]
|
|
|
|
class PlatformStatItem(BaseModel):
|
|
platform: str
|
|
count: float
|
|
|
|
|
|
class AppStatItem(BaseModel):
|
|
app: str
|
|
count: float
|
|
|
|
|
|
class HwidStats(BaseModel):
|
|
total_unique_devices: float = Field(alias="totalUniqueDevices")
|
|
total_hwid_devices: float = Field(alias="totalHwidDevices")
|
|
average_hwid_devices_per_user: float = Field(alias="averageHwidDevicesPerUser")
|
|
|
|
|
|
class HwidStatisticsData(BaseModel):
|
|
by_platform: List[PlatformStatItem] = Field(alias="byPlatform")
|
|
by_app: List[AppStatItem] = Field(alias="byApp")
|
|
stats: HwidStats
|
|
|
|
|
|
class GetHwidStatisticsResponseDto(HwidStatisticsData):
|
|
pass
|
|
|
|
class DeleteUserAllHwidDeviceRequestDto(BaseModel):
|
|
user_uuid: UUID = Field(serialization_alias="userUuid")
|
|
|
|
# Legacy aliases for backward compatibility
|
|
CreateHWIDUser = CreateUserHwidDeviceRequestDto
|
|
HWIDUserResponseDto = HwidDeviceDto
|
|
HWIDUserResponseDtoList = HwidDevicesData
|
|
HWIDDeleteRequest = DeleteUserHwidDeviceRequestDto
|