This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user