Files
2026-04-29 09:39:56 -05:00

34 lines
1.3 KiB
Python

from sqlalchemy import Column, Date, Enum, ForeignKey, Integer, String, Time, func
from sqlalchemy.orm import relationship
from app.core.database import Base
class Reservation(Base):
__tablename__ = "reservations"
id = Column(Integer, primary_key=True, index=True)
business_id = Column(Integer, ForeignKey("businesses.id", ondelete="CASCADE"), nullable=False)
client_name = Column(String, nullable=False)
client_phone = Column(String, nullable=False)
date = Column(Date, nullable=False, index=True)
time_start = Column(Time, nullable=False)
time_end = Column(Time, nullable=False)
party_size = Column(Integer, nullable=False, default=1)
status = Column(
Enum("pending", "confirmed", "cancelled", "no_show", name="reservation_status"),
nullable=False,
default="pending",
)
source = Column(
Enum("whatsapp", "manual", name="reservation_source"),
nullable=False,
default="manual",
)
notes = Column(String, nullable=True)
table_type_id = Column(Integer, ForeignKey("table_types.id", ondelete="SET NULL"), nullable=True)
created_at = Column(Date, server_default=func.current_date())
business = relationship("Business", back_populates="reservations")
table_type = relationship("TableType")