from fastapi_utils.enums import StrEnum from sqlalchemy.types import Enum, TypeDecorator class StrEnumType(TypeDecorator): impl = Enum def __init__(self, enum_class, **kw): self.enum_class = enum_class super().__init__(enum_class, **kw) def process_bind_param(self, value, dialect): if value is None: return None return value.value def process_result_value(self, value, dialect): if value is None: return None return self.enum_class(value) class MinigameEnum(StrEnum): SpellingBee = "SpellingBee" Hangman = "Hangman" JustSign = "JustSign" class CourseEnum(StrEnum): Fingerspelling = "Fingerspelling" Basics = "Basics" Hobbies = "Hobbies" Animals = "Animals" Colors = "Colors" FruitsVegetables = "FruitsVegetables"