various fixes

This commit is contained in:
timka123 committed 2026-10-19 09:19:47 +03:00
1 parent 77b26757bf
commit 4bdbc8bfa8
5 files changed
+148 -3

No files matched your search

+24
View File
@@ -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."""