You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
3.6 KiB

from sqlalchemy import Column, String, Integer, DateTime, Numeric, Text
from database import Base
# ===== 表模型 =====
class Customer(Base):
__tablename__ = "customer"
customer_id = Column(Integer, primary_key=True)
name = Column(String)
id_card = Column(Text)
phone = Column(String)
register_time = Column(DateTime)
class CustomerPreference(Base):
__tablename__ = "customer_preference"
preference_id = Column(Integer, primary_key=True)
customer_id = Column(Integer)
bed_type_prefer = Column(String)
orientation_prefer = Column(String)
floor_prefer = Column(String)
smoking_prefer = Column(String)
noise_prefer = Column(String)
facility_prefer = Column(String)
temperature_prefer = Column(String)
cleaning_time_prefer = Column(String)
meal_prefer = Column(String)
pet_prefer = Column(String)
class RoomType(Base):
__tablename__ = "roomtype"
type_id = Column(Integer, primary_key=True)
type_name = Column(String)
bed_type = Column(String)
price = Column(Numeric)
max_people = Column(Integer)
class Employee(Base):
__tablename__ = "employee"
employee_id = Column(Integer, primary_key=True)
name = Column(String)
role = Column(String)
permission = Column(String)
phone = Column(String)
account = Column(String)
password = Column(String)
class Order(Base):
__tablename__ = "order"
order_id = Column(String, primary_key=True)
customer_id = Column(Integer)
checkin_date = Column(DateTime)
checkout_date = Column(DateTime)
status = Column(String)
create_time = Column(DateTime)
order_channel = Column(String)
class Bill(Base):
__tablename__ = "bill"
bill_id = Column(String, primary_key=True)
order_id = Column(String)
room_fee = Column(Numeric)
additional_fee = Column(Numeric)
total_amount = Column(Numeric)
payment_method = Column(String)
payment_time = Column(DateTime)
operator_id = Column(Integer)
class Room(Base):
__tablename__ = "room"
room_id = Column(Integer, primary_key=True)
room_type_id = Column(Integer)
floor = Column(Integer)
status = Column(String)
facility = Column(String)
building_area = Column(Numeric)
usable_area = Column(Numeric)
orientation = Column(String)
floor_position = Column(String)
window_type = Column(String)
room_layout = Column(String)
class OrderRoom(Base):
__tablename__ = "order_room"
order_room_id = Column(Integer, primary_key=True)
order_id = Column(String)
room_id = Column(Integer)
room_fee = Column(Numeric)
# ===== 视图模型 =====
class GuestSummary(Base):
__tablename__ = "v_guest_stay_summary"
order_id = Column(String, primary_key=True)
guest_name = Column(String)
phone = Column(String)
room_number = Column(Integer)
room_type = Column(String)
orientation = Column(String)
checkin_date = Column(DateTime)
order_status = Column(String)
all_preferences = Column(Text)
class HousekeepingList(Base):
__tablename__ = "v_housekeeping_list"
room_number = Column(Integer, primary_key=True)
floor = Column(Integer)
orientation = Column(String)
type_name = Column(String)
booking_status = Column(String)
guest_name = Column(String)
specific_instruction = Column(Text)
class RoomInventoryStats(Base):
__tablename__ = "v_room_inventory_stats"
orientation = Column(String, primary_key=True)
total_rooms = Column(Integer)
available_types = Column(Text)
avg_price = Column(Numeric)
avg_usable_area = Column(Numeric)