Significant refactorings

This commit is contained in:
Jonas Linter
2025-11-19 14:49:42 +01:00
parent 70dfb54c8f
commit 45452ac918
2 changed files with 132 additions and 52 deletions

View File

@@ -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)