from dataclasses import dataclass from enum import Enum from dataclasses_json import dataclass_json class PublishType(Enum): SUCCESS = "SUCCESS" ERROR = "ERROR" @dataclass_json @dataclass class ReserveResultPojo: type: PublishType phone: str message: str url: str firstName: None lastName: None email: None id = None accepted = None passport: str = "" slot_position = None sim_position = None ccid: str = "" @staticmethod def from_firestore_dict(source): publish_type = source['type'] phone = source['phone'] message = source['message'] url = source['url'] id = source['id'] email = source['email'] lastName = source['lastName'] firstName = source['firstName'] result = ReserveResultPojo(type=publish_type, phone=phone, message=message, url=url, email=email, firstName=firstName, lastName=lastName) if 'accepted' in source: accepted = source['accepted'] result.accepted = accepted if 'sim_position' in source: sim_position = source['sim_position'] result.sim_position = sim_position if 'slot_position' in source: slot_position = source['slot_position'] result.slot_position = slot_position if 'passport' in source: passport = source['passport'] result.passport = passport if 'ccid' in source: ccid = source['ccid'] result.ccid = ccid result.id = id return result def to_firestore_dict(self): dest = { u'type': self.type.value, u'id': self.id, u'message': self.message, u'phone': self.phone, u'firstName': self.firstName, u'lastName': self.lastName, u'email': self.email, u'passport': self.passport, u'url': self.url, u'sim_position': self.sim_position, u'slot_position': self.slot_position, u'ccid': self.ccid } return dest