various fixes
This commit is contained in:
5 files changed
+148
-3
No files matched your search
@@ -20,6 +20,27 @@ from pydantic import BaseModel, Field, field_validator
|
||||
# --------------------------------------------------------------------------
|
||||
# Timer
|
||||
# --------------------------------------------------------------------------
|
||||
class TimerPreset(BaseModel):
|
||||
"""A named, user-editable recipe of durations the UI can apply in one tap."""
|
||||
|
||||
name: str
|
||||
work_minutes: int = Field(default=25, ge=1, le=240)
|
||||
short_break_minutes: int = Field(default=5, ge=1, le=120)
|
||||
long_break_minutes: int = Field(default=15, ge=1, le=240)
|
||||
cycles_before_long_break: int = Field(default=4, ge=1, le=12)
|
||||
|
||||
|
||||
def _default_timer_presets() -> list[TimerPreset]:
|
||||
return [
|
||||
TimerPreset(
|
||||
name="Classic", work_minutes=45, short_break_minutes=15, long_break_minutes=30
|
||||
),
|
||||
TimerPreset(
|
||||
name="Пара", work_minutes=85, short_break_minutes=10, long_break_minutes=10
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
class PomodoroSettings(BaseModel):
|
||||
"""Lengths and automation of the timer itself. All durations in minutes."""
|
||||
|
||||
@@ -28,6 +49,9 @@ class PomodoroSettings(BaseModel):
|
||||
long_break_minutes: int = Field(default=15, ge=1, le=240)
|
||||
cycles_before_long_break: int = Field(default=4, ge=1, le=12)
|
||||
|
||||
presets: list[TimerPreset] = Field(default_factory=_default_timer_presets)
|
||||
"""Saved work/break combinations, applied to the fields above in one tap."""
|
||||
|
||||
auto_start_breaks: bool = True
|
||||
"""Roll straight into the break when a work interval ends."""
|
||||
|
||||
|
||||
Reference in new issue
Block a user