File size: 1,830 Bytes
13933bf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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)