This commit is contained in:
2025-12-14 10:40:54 +01:00
parent 5d483b0df5
commit 8428bf9c82
55 changed files with 9763 additions and 391 deletions

View File

@@ -9,41 +9,41 @@ from app.schemas.hardware import HardwareData
class CPUResults(BaseModel):
"""CPU benchmark results"""
events_per_sec: Optional[float] = None
duration_s: Optional[float] = None
score: Optional[float] = None
events_per_sec: Optional[float] = Field(None, ge=0)
duration_s: Optional[float] = Field(None, ge=0)
score: Optional[float] = Field(None, ge=0, le=10000)
class MemoryResults(BaseModel):
"""Memory benchmark results"""
throughput_mib_s: Optional[float] = None
score: Optional[float] = None
throughput_mib_s: Optional[float] = Field(None, ge=0)
score: Optional[float] = Field(None, ge=0, le=10000)
class DiskResults(BaseModel):
"""Disk benchmark results"""
read_mb_s: Optional[float] = None
write_mb_s: Optional[float] = None
iops_read: Optional[int] = None
iops_write: Optional[int] = None
latency_ms: Optional[float] = None
score: Optional[float] = None
read_mb_s: Optional[float] = Field(None, ge=0)
write_mb_s: Optional[float] = Field(None, ge=0)
iops_read: Optional[int] = Field(None, ge=0)
iops_write: Optional[int] = Field(None, ge=0)
latency_ms: Optional[float] = Field(None, ge=0)
score: Optional[float] = Field(None, ge=0, le=10000)
class NetworkResults(BaseModel):
"""Network benchmark results"""
upload_mbps: Optional[float] = None
download_mbps: Optional[float] = None
ping_ms: Optional[float] = None
jitter_ms: Optional[float] = None
packet_loss_percent: Optional[float] = None
score: Optional[float] = None
upload_mbps: Optional[float] = Field(None, ge=0)
download_mbps: Optional[float] = Field(None, ge=0)
ping_ms: Optional[float] = Field(None, ge=0)
jitter_ms: Optional[float] = Field(None, ge=0)
packet_loss_percent: Optional[float] = Field(None, ge=0, le=100)
score: Optional[float] = Field(None, ge=0, le=10000)
class GPUResults(BaseModel):
"""GPU benchmark results"""
glmark2_score: Optional[int] = None
score: Optional[float] = None
glmark2_score: Optional[int] = Field(None, ge=0)
score: Optional[float] = Field(None, ge=0, le=10000)
class BenchmarkResults(BaseModel):
@@ -53,7 +53,7 @@ class BenchmarkResults(BaseModel):
disk: Optional[DiskResults] = None
network: Optional[NetworkResults] = None
gpu: Optional[GPUResults] = None
global_score: float = Field(..., ge=0, le=100, description="Global score (0-100)")
global_score: float = Field(..., ge=0, le=10000, description="Global score (0-10000)")
class BenchmarkPayload(BaseModel):

View File

@@ -6,6 +6,7 @@ from pydantic import BaseModel
from typing import Optional, List
from app.schemas.benchmark import BenchmarkSummary
from app.schemas.hardware import HardwareSnapshotResponse
from app.schemas.document import DocumentResponse
class DeviceBase(BaseModel):
@@ -53,6 +54,7 @@ class DeviceDetail(DeviceBase):
updated_at: str
last_benchmark: Optional[BenchmarkSummary] = None
last_hardware_snapshot: Optional[HardwareSnapshotResponse] = None
documents: List[DocumentResponse] = []
class Config:
from_attributes = True

View File

@@ -89,6 +89,7 @@ class NetworkInterface(BaseModel):
ip: Optional[str] = None
speed_mbps: Optional[int] = None
driver: Optional[str] = None
wake_on_lan: Optional[bool] = None
class NetworkInfo(BaseModel):
@@ -100,6 +101,7 @@ class MotherboardInfo(BaseModel):
"""Motherboard information schema"""
vendor: Optional[str] = None
model: Optional[str] = None
bios_vendor: Optional[str] = None
bios_version: Optional[str] = None
bios_date: Optional[str] = None