added advanced workout
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.config import get_settings
|
||||
from app.memory.service import MemoryService
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class EveningSchedule:
|
||||
enabled: bool
|
||||
hour: int
|
||||
minute: int
|
||||
|
||||
|
||||
def resolve_evening_schedule(db: Session, user_id: int) -> EveningSchedule:
|
||||
settings = get_settings()
|
||||
profile = MemoryService(db, user_id).get_profile()
|
||||
|
||||
enabled_raw = profile.get("evening_summary_enabled")
|
||||
if enabled_raw is None:
|
||||
enabled = settings.evening_summary_enabled
|
||||
else:
|
||||
enabled = bool(enabled_raw) if not isinstance(enabled_raw, str) else enabled_raw.lower() in (
|
||||
"1",
|
||||
"true",
|
||||
"yes",
|
||||
"on",
|
||||
)
|
||||
|
||||
hour = profile.get("evening_summary_hour")
|
||||
minute = profile.get("evening_summary_minute")
|
||||
try:
|
||||
resolved_hour = int(hour) if hour is not None and str(hour).strip() != "" else settings.evening_summary_hour
|
||||
except (TypeError, ValueError):
|
||||
resolved_hour = settings.evening_summary_hour
|
||||
try:
|
||||
resolved_minute = (
|
||||
int(minute) if minute is not None and str(minute).strip() != "" else settings.evening_summary_minute
|
||||
)
|
||||
except (TypeError, ValueError):
|
||||
resolved_minute = settings.evening_summary_minute
|
||||
|
||||
return EveningSchedule(
|
||||
enabled=enabled,
|
||||
hour=max(0, min(23, resolved_hour)),
|
||||
minute=max(0, min(59, resolved_minute)),
|
||||
)
|
||||
Reference in New Issue
Block a user