first commit

This commit is contained in:
2024-01-04 21:53:33 +01:00
commit 4230165f41
12 changed files with 486 additions and 0 deletions
+131
View File
@@ -0,0 +1,131 @@
import socket
from dataclasses import dataclass
from enum import Enum
from typing import Union
from dataclasses_json import dataclass_json
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 = ""
firstName: Union[None, str] = ""
lastName: Union[None, str] = ""
email: Union[None, str] = ""
id: str = ""
accepted = None
passport: str = ""
slot_position = None
sim_position = None
ccid: str = ""
source_from: str = socket.gethostname()
store_type = 0
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 = ""
result = ReserveResultPojo(type=publish_type, phone=phone,
url=url, email=email,
firstName=firstName, lastName=lastName)
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'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'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
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
+51
View File
@@ -0,0 +1,51 @@
from dataclasses import dataclass
@dataclass
class ContactPojo:
phone: str
passport: str
last_name: str
first_name: str
mail: str
ccid: str
position: int
note: str
def __init__(self, phone_number: str, passport_number: str, last_name: str, first_name: str, mail: str,
ccid: str = "",
position: int = 0):
self.phone = str(phone_number).replace(".0", "")
self.passport = passport_number
self.last_name = last_name
self.first_name = first_name
self.ccid = ccid
self.mail = mail
self.position = position
self.note = ""
def to_firestore_dict(self):
dest = {
u'phone': self.phone,
u'passport': self.passport,
u'last_name': self.last_name,
u'first_name': self.first_name,
u'mail': self.mail,
u'ccid': self.ccid,
u'position': self.position
}
return dest
@staticmethod
def from_firestore_dict(source):
ccid = source['ccid']
phone = source['phone']
position = source['position']
passport = source['passport']
email = source['mail']
last_name = source['last_name']
first_name = source['first_name']
result = ContactPojo(ccid=ccid, phone_number=phone, passport_number=passport, position=position, mail=email,
last_name=last_name, first_name=first_name)
return result