Files
appointment_tool/src/pojo/ReserveResultPojo.py
T

146 lines
4.3 KiB
Python

from dataclasses import dataclass
from enum import Enum
from typing import Union
from dataclasses_json import dataclass_json
from src import config
class PublishType(Enum):
SUCCESS = "SUCCESS"
ERROR = "ERROR"
PENDING = "PENDING"
DUPLICATED = "DUPLICATED"
@dataclass_json
@dataclass
class ReserveResultPojo:
type: PublishType = PublishType.ERROR
phone: str = ""
message: str = ""
url: str = ""
first_name: Union[None, str] = ""
last_name: Union[None, str] = ""
mail: Union[None, str] = ""
id: str = ""
accepted = None
passport: str = ""
slot_position = None
sim_position = None
ccid: str = ""
source_from: str = config.LOG_SOURCE
store_type = 0
store = "random"
ip_country = "FR"
url_validated = None
created_at = None
validated_at = None
@staticmethod
def from_firestore_dict(source):
publish_type = PublishType.ERROR
if 'type' in source:
publish_type = source['type']
if publish_type:
publish_type = PublishType[publish_type]
if 'phone' in source:
phone = source['phone']
else:
phone = ""
if 'url' in source:
url = source['url']
else:
url = ""
if 'id' in source:
id = source['id']
if '_id' in source:
id = source['_id']
else:
id = ""
if 'email' in source:
email = source['email']
else:
email = ""
if 'lastName' in source:
lastName = source['lastName']
else:
lastName = ""
if 'firstName' in source:
firstName = source['firstName']
else:
firstName = ""
if 'store' in source:
store = source['store']
else:
store = "random"
if 'ip_country' in source:
ip_country = source['ip_country']
else:
ip_country = "FR"
result = ReserveResultPojo(type=publish_type, phone=phone,
url=url, mail=email,
first_name=firstName, last_name=lastName)
result.store = store
result.ip_country = ip_country
if 'accepted' in source:
accepted = source['accepted']
result.accepted = accepted
if 'message' in source:
message = source['message']
result.message = message
if 'source' in source:
source_from = source['source']
result.source_from = source_from
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
if 'store_type' in source:
store_type = source['store_type']
result.store_type = store_type
if 'url_validated' in source:
url_validated = source['url_validated']
result.url_validated = bool(url_validated)
if 'created_at' in source:
created_at = source['created_at']
result.created_at = created_at
if 'validated_at' in source:
validated_at = source['validated_at']
result.validated_at = validated_at
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'first_name': self.first_name,
u'last_name': self.last_name,
u'mail': self.mail,
u'passport': self.passport,
u'url': self.url,
u'sim_position': self.sim_position,
u'slot_position': self.slot_position,
u'ccid': self.ccid,
u'source_from': self.source_from,
u'created_at': self.created_at,
u'store_type': self.store_type,
u'accepted': self.accepted,
u'url_validated': self.url_validated,
}
return dest