Files
Home_assistant/backend/app/daily/schedule.py
T
2026-07-01 11:20:13 +03:00

51 lines
1.5 KiB
Python

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)),
)