diff --git a/app/api/views/upload/data.py b/app/api/views/upload/data.py new file mode 100644 index 00000000..3ffe6b62 --- /dev/null +++ b/app/api/views/upload/data.py @@ -0,0 +1,24 @@ +import abc +from typing import Dict + +from pydantic import BaseModel + + +class BaseData(BaseModel, abc.ABC): + filename: str + metadata: Dict = {} + + @classmethod + def parse(cls, **kwargs): + return cls.parse_obj(kwargs) + + def __hash__(self): + return hash(tuple(self.dict())) + + +class TextData(BaseData): + text: str + + +class FileData(BaseData): + pass