calendar events
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-09-26 15:57:50 +09:00
parent 64171196b6
commit 76d0d86211
16 changed files with 1657 additions and 22 deletions

View File

@@ -73,18 +73,38 @@ class MoodType(str, Enum):
TIRED = "tired"
@classmethod
def from_mobile_mood(cls, mood_type: 'MobileMoodType') -> Optional['MoodType']:
"""Конвертировать из мобильного типа настроения"""
if mood_type == MobileMoodType.NORMAL:
def from_mobile_mood(cls, mood_str: str) -> Optional['MoodType']:
"""Конвертировать строку настроения из мобильного приложения"""
if not mood_str:
return None
mapping = {
MobileMoodType.HAPPY: cls.HAPPY,
MobileMoodType.SAD: cls.SAD,
MobileMoodType.ANXIOUS: cls.ANXIOUS,
MobileMoodType.IRRITATED: cls.IRRITATED,
MobileMoodType.STRESSED: cls.ANXIOUS,
}
return mapping.get(mood_type)
# Преобразуем строку в enum или используем исходную строку, если не удалось
try:
mood_type = MobileMoodType(mood_str)
if mood_type == MobileMoodType.NORMAL:
return None
mapping = {
MobileMoodType.HAPPY: cls.HAPPY,
MobileMoodType.SAD: cls.SAD,
MobileMoodType.ANXIOUS: cls.ANXIOUS,
MobileMoodType.IRRITATED: cls.IRRITATED,
MobileMoodType.STRESSED: cls.ANXIOUS,
}
return mapping.get(mood_type)
except ValueError:
# Если строка не является допустимым MobileMoodType
# Пробуем сопоставить с сервером напрямую
mood_map = {
"HAPPY": cls.HAPPY,
"SAD": cls.SAD,
"ANXIOUS": cls.ANXIOUS,
"IRRITATED": cls.IRRITATED,
"ENERGETIC": cls.ENERGETIC,
"TIRED": cls.TIRED,
"NORMAL": cls.HAPPY, # NORMAL мапится на HAPPY
}
return mood_map.get(mood_str)
class CalendarEntryBase(BaseModel):