36 lines
847 B
Python
36 lines
847 B
Python
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"
|