vst / app /schemas /schemas.py
MFF212's picture
Upload 16 files
13933bf verified
raw
history blame
1.61 kB
from pydantic import BaseModel, EmailStr, Field
from datetime import datetime
from typing import Optional
# VisitorLog Schemas
class VisitorLogBase(BaseModel):
full_name: str
email_address: EmailStr
phone_number: str
company_name: Optional[str] = None
qid_id_number: Optional[str] = None
purpose_of_visit: str
person_to_meet: str
preferred_datetime: datetime
class VisitorLogCreate(VisitorLogBase):
pass
class VisitorLogResponse(VisitorLogBase):
sl_no: int
reference_number: str
class Config:
from_attributes = True # Updated from orm_mode
# MeetingStatus Schemas
class MeetingStatusBase(BaseModel):
status: str
email_send: Optional[str] = None
class MeetingStatusCreate(MeetingStatusBase):
reference_number: str
class MeetingStatusUpdate(MeetingStatusBase):
pass
class MeetingStatusResponse(MeetingStatusBase):
sl_no: int
reference_number: str
class Config:
from_attributes = True # Updated from orm_mode
# Combined Response Schema
class VisitorWithStatusResponse(VisitorLogResponse):
meeting_status: Optional[MeetingStatusResponse] = None
class Config:
from_attributes = True # Updated from orm_mode
# PersonToMeet Schemas
class PersonToMeetBase(BaseModel):
name: str
phone_number: str
department: str
email_id: EmailStr
class PersonToMeetCreate(PersonToMeetBase):
pass
class PersonToMeetUpdate(PersonToMeetBase):
pass
class PersonToMeetResponse(PersonToMeetBase):
id: int
class Config:
from_attributes = True