feat: Compact 1-page print view, event lifecycle & conflict warnings, bulk email invites, guest pass link and post-event guest cleanup
This commit is contained in:
+9
-2
@@ -35,7 +35,7 @@ class User(Base):
|
||||
created_at = Column(DateTime, default=func.now())
|
||||
|
||||
tenant = relationship("Tenant", back_populates="users")
|
||||
orders = relationship("Order", back_populates="user", cascade="all, delete-orphan")
|
||||
orders = relationship("Order", back_populates="user")
|
||||
|
||||
|
||||
class Invitation(Base):
|
||||
@@ -93,7 +93,8 @@ class Order(Base):
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
tenant_id = Column(Integer, ForeignKey("tenants.id", ondelete="CASCADE"), nullable=False)
|
||||
event_id = Column(Integer, ForeignKey("events.id", ondelete="CASCADE"), nullable=False)
|
||||
user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False)
|
||||
user_id = Column(Integer, ForeignKey("users.id", ondelete="SET NULL"), nullable=True)
|
||||
guest_display_name = Column(String(150), nullable=True)
|
||||
total_price = Column(Numeric(10, 2), nullable=False, default=0.00)
|
||||
is_paid = Column(Boolean, default=False)
|
||||
created_at = Column(DateTime, default=func.now())
|
||||
@@ -103,6 +104,12 @@ class Order(Base):
|
||||
user = relationship("User", back_populates="orders")
|
||||
items = relationship("OrderItem", back_populates="order", cascade="all, delete-orphan")
|
||||
|
||||
@property
|
||||
def display_name(self) -> str:
|
||||
if self.user:
|
||||
return f"{self.user.first_name} {self.user.last_name}"
|
||||
return self.guest_display_name or "Gast"
|
||||
|
||||
|
||||
class OrderItem(Base):
|
||||
__tablename__ = "order_items"
|
||||
|
||||
Reference in New Issue
Block a user