from sqlalchemy import Column, Integer, String, DateTime, ForeignKey from sqlalchemy.orm import relationship from app.database.database import Base class VisitorLog(Base): __tablename__ = "visitor_log" sl_no = Column(Integer, primary_key=True, index=True, autoincrement=True) full_name = Column(String(255), nullable=False) email_address = Column(String(255), nullable=False) phone_number = Column(String(20), nullable=False) company_name = Column(String(255), nullable=True) qid_id_number = Column(String(50), nullable=True) purpose_of_visit = Column(String(500), nullable=False) person_to_meet = Column(String(255), nullable=False) preferred_datetime = Column(DateTime, nullable=False) reference_number = Column(String(50), unique=True, nullable=False, index=True) # Relationship with MeetingStatus meeting_status = relationship("MeetingStatus", back_populates="visitor_log") class MeetingStatus(Base): __tablename__ = "meeting_status" sl_no = Column(Integer, primary_key=True, index=True, autoincrement=True) reference_number = Column(String(50), ForeignKey("visitor_log.reference_number"), nullable=False, unique=True) status = Column(String(50), nullable=False) email_send = Column(String(10), nullable=True) # Assuming this is a Yes/No or similar status # Relationship with VisitorLog visitor_log = relationship("VisitorLog", back_populates="meeting_status") class PersonToMeet(Base): __tablename__ = "person_to_meet" id = Column(Integer, primary_key=True, index=True, autoincrement=True) name = Column(String(255), nullable=False) phone_number = Column(String(20), nullable=False, unique=True) department = Column(String(255), nullable=False) email_id = Column(String(255), nullable=False)