Migration to single customer table works but conversion_service still needs updating
This commit is contained in:
@@ -311,6 +311,20 @@ class Customer(Base):
|
||||
language = Column(String)
|
||||
address_catalog = Column(Boolean) # Added for XML
|
||||
name_title = Column(String) # Added for XML
|
||||
|
||||
# Hashed fields for Meta Conversion API (SHA256)
|
||||
hashed_email = Column(String(64))
|
||||
hashed_phone = Column(String(64))
|
||||
hashed_given_name = Column(String(64))
|
||||
hashed_surname = Column(String(64))
|
||||
hashed_city = Column(String(64))
|
||||
hashed_postal_code = Column(String(64))
|
||||
hashed_country_code = Column(String(64))
|
||||
hashed_gender = Column(String(64))
|
||||
hashed_birth_date = Column(String(64))
|
||||
|
||||
created_at = Column(DateTime(timezone=True))
|
||||
|
||||
reservations = relationship("Reservation", back_populates="customer")
|
||||
|
||||
def __repr__(self):
|
||||
@@ -335,21 +349,17 @@ class Customer(Base):
|
||||
# SHA256 hash
|
||||
return hashlib.sha256(normalized.encode("utf-8")).hexdigest()
|
||||
|
||||
def create_hashed_customer(self):
|
||||
"""Create a HashedCustomer instance from this Customer."""
|
||||
return HashedCustomer(
|
||||
customer_id=self.id,
|
||||
contact_id=self.contact_id,
|
||||
hashed_email=self._normalize_and_hash(self.email_address),
|
||||
hashed_phone=self._normalize_and_hash(self.phone),
|
||||
hashed_given_name=self._normalize_and_hash(self.given_name),
|
||||
hashed_surname=self._normalize_and_hash(self.surname),
|
||||
hashed_city=self._normalize_and_hash(self.city_name),
|
||||
hashed_postal_code=self._normalize_and_hash(self.postal_code),
|
||||
hashed_country_code=self._normalize_and_hash(self.country_code),
|
||||
hashed_gender=self._normalize_and_hash(self.gender),
|
||||
hashed_birth_date=self._normalize_and_hash(self.birth_date),
|
||||
)
|
||||
def update_hashed_fields(self):
|
||||
"""Update the hashed fields based on current plaintext values."""
|
||||
self.hashed_email = self._normalize_and_hash(self.email_address)
|
||||
self.hashed_phone = self._normalize_and_hash(self.phone)
|
||||
self.hashed_given_name = self._normalize_and_hash(self.given_name)
|
||||
self.hashed_surname = self._normalize_and_hash(self.surname)
|
||||
self.hashed_city = self._normalize_and_hash(self.city_name)
|
||||
self.hashed_postal_code = self._normalize_and_hash(self.postal_code)
|
||||
self.hashed_country_code = self._normalize_and_hash(self.country_code)
|
||||
self.hashed_gender = self._normalize_and_hash(self.gender)
|
||||
self.hashed_birth_date = self._normalize_and_hash(self.birth_date)
|
||||
|
||||
|
||||
class HashedCustomer(Base):
|
||||
@@ -523,9 +533,6 @@ class Reservation(Base):
|
||||
__tablename__ = "reservations"
|
||||
id = Column(Integer, primary_key=True)
|
||||
customer_id = Column(Integer, ForeignKey("customers.id", ondelete="SET NULL"))
|
||||
hashed_customer_id = Column(
|
||||
Integer, ForeignKey("hashed_customers.id", ondelete="CASCADE")
|
||||
)
|
||||
unique_id = Column(String, unique=True)
|
||||
md5_unique_id = Column(String(32), unique=True) # max length 32 guaranteed
|
||||
start_date = Column(Date)
|
||||
@@ -555,7 +562,6 @@ class Reservation(Base):
|
||||
room_classification_code = Column(String)
|
||||
room_type = Column(String)
|
||||
customer = relationship("Customer", back_populates="reservations")
|
||||
hashed_customer = relationship("HashedCustomer", backref="reservations")
|
||||
|
||||
|
||||
# Table for tracking acknowledged requests by client
|
||||
|
||||
Reference in New Issue
Block a user