first commit
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class Camera(BaseModel):
|
||||
name: str = Field(min_length=1, max_length=64, pattern=r"^[a-zA-Z0-9_\-\/]+$")
|
||||
rtsp_url: str = Field(min_length=1, max_length=2048)
|
||||
|
||||
|
||||
class Schedule(BaseModel):
|
||||
enabled: bool = True
|
||||
weekdays_from: str = Field(default="18:00", pattern=r"^\d{2}:\d{2}$")
|
||||
weekdays_to: str = Field(default="08:00", pattern=r"^\d{2}:\d{2}$")
|
||||
weekend_all_day: bool = True
|
||||
|
||||
|
||||
class AppConfig(BaseModel):
|
||||
mediamtx_api_url: str = "http://127.0.0.1:9997"
|
||||
mediamtx_webrtc_url: str = "http://127.0.0.1:8889"
|
||||
recordings_dir: str = "/recordings"
|
||||
cameras: list[Camera] = Field(default_factory=list)
|
||||
schedule: Schedule = Field(default_factory=Schedule)
|
||||
|
||||
|
||||
class RecordingToggle(BaseModel):
|
||||
enabled: bool
|
||||
|
||||
|
||||
class SchedulerEnabled(BaseModel):
|
||||
enabled: bool
|
||||
|
||||
|
||||
class ScheduleUpdate(BaseModel):
|
||||
weekdays_from: str = Field(pattern=r"^\d{2}:\d{2}$")
|
||||
weekdays_to: str = Field(pattern=r"^\d{2}:\d{2}$")
|
||||
weekend_all_day: bool
|
||||
|
||||
Reference in New Issue
Block a user