feat(api): add backend

routes and WebSockets
This commit is contained in:
2025-12-26 18:19:06 +03:00
parent cfec8d0ff6
commit 1b864228d4
28 changed files with 631 additions and 2 deletions

View File

@@ -0,0 +1,9 @@
from datetime import datetime
from pydantic import BaseModel
class AudioPoint(BaseModel):
time: datetime
rms_db: float
frequency_hz: int
is_silence: bool

View File

@@ -0,0 +1,19 @@
from __future__ import annotations
from typing import Generic, TypeVar
from pydantic import BaseModel, Field
T = TypeVar("T")
class ApiError(BaseModel):
code: str = Field(..., examples=["validation_error", "db_error"])
message: str
details: dict | None = None
class ApiResponse(BaseModel, Generic[T]):
success: bool = True
errors: list[ApiError] | None = None
count: int | None = None
data: T | None = None

View File

@@ -0,0 +1,9 @@
from datetime import datetime
from pydantic import BaseModel
class LoudEvent(BaseModel):
time: datetime
rms_db: float
frequency_hz: int
duration_sec: float | None = None

View File

@@ -0,0 +1,8 @@
from pydantic import BaseModel
class StatsSummary(BaseModel):
avg_db: float
max_db: float
dominant_freq: int
silence_percent: float