from sqlalchemy import Column, Integer, String, DateTime, Text, Float, ForeignKey from database import Base from datetime import datetime class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) name = Column(String, nullable=False) email = Column(String, unique=True, nullable=False) password_hash = Column(String, nullable=False) class Log(Base): __tablename__ = "logs" id = Column(Integer, primary_key=True, index=True) user_id = Column(Integer, nullable=False) session_id = Column(String, nullable=False) log = Column(Text, nullable=False) timestamp = Column(DateTime, default=datetime.utcnow) class CtrReport(Base): __tablename__ = "ctr_report" id = Column(Integer, primary_key=True, index=True) user_id = Column(Integer, nullable=False) session_id = Column(String, nullable=False) report = Column(Text, nullable=False) insights = Column(Text, nullable=False) state_flow = Column(Text, nullable=False) suggestions = Column(Text, nullable=False) # ========================= # RESTAURANT TABLE # ========================= class Restaurant(Base): __tablename__ = "restaurants" id = Column(Integer, primary_key=True, index=True) name = Column(String, nullable=False) cuisine = Column(String, nullable=False) location = Column(String, nullable=False) price_range = Column(String, nullable=False) avg_rating = Column(Float, default=0.0) description = Column(Text) # ========================= # REVIEW TABLE # ========================= class Review(Base): __tablename__ = "reviews" id = Column(Integer, primary_key=True, index=True) restaurant_id = Column( Integer, ForeignKey("restaurants.id"), nullable=False ) user_name = Column(String, nullable=False) rating = Column(Integer, nullable=False) review = Column(Text, nullable=False) created_at = Column(DateTime, default=datetime.utcnow)