Significant refactorings
This commit is contained in:
@@ -22,7 +22,7 @@ from sqlalchemy.ext.asyncio import (
|
||||
async_sessionmaker,
|
||||
create_async_engine,
|
||||
)
|
||||
from sqlalchemy.orm import declarative_base, relationship
|
||||
from sqlalchemy.orm import backref, declarative_base, relationship
|
||||
|
||||
from .logging_config import get_logger
|
||||
|
||||
@@ -347,7 +347,7 @@ class HashedCustomer(Base):
|
||||
__tablename__ = "hashed_customers"
|
||||
id = Column(Integer, primary_key=True)
|
||||
customer_id = Column(
|
||||
Integer, ForeignKey("customers.id"), unique=True, nullable=False
|
||||
Integer, ForeignKey("customers.id", ondelete="SET NULL"), unique=True, nullable=True
|
||||
)
|
||||
contact_id = Column(String, unique=True) # Keep unhashed for reference
|
||||
hashed_email = Column(String(64)) # SHA256 produces 64 hex chars
|
||||
@@ -361,7 +361,7 @@ class HashedCustomer(Base):
|
||||
hashed_birth_date = Column(String(64))
|
||||
created_at = Column(DateTime(timezone=True))
|
||||
|
||||
customer = relationship("Customer", backref="hashed_version")
|
||||
customer = relationship("Customer", backref=backref("hashed_version", uselist=False, lazy="joined"))
|
||||
|
||||
|
||||
class ConversionGuest(Base):
|
||||
@@ -477,7 +477,7 @@ class ConversionGuest(Base):
|
||||
class Reservation(Base):
|
||||
__tablename__ = "reservations"
|
||||
id = Column(Integer, primary_key=True)
|
||||
customer_id = Column(Integer, ForeignKey("customers.id"))
|
||||
customer_id = Column(Integer, ForeignKey("customers.id", ondelete="SET NULL"))
|
||||
unique_id = Column(String, unique=True)
|
||||
md5_unique_id = Column(String(32), unique=True) # max length 32 guaranteed
|
||||
start_date = Column(Date)
|
||||
|
||||
Reference in New Issue
Block a user