|
from pydantic import BaseModel, EmailStr, Field |
|
from datetime import datetime |
|
from typing import Optional |
|
|
|
|
|
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 |
|
|
|
|
|
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 |
|
|
|
|
|
class VisitorWithStatusResponse(VisitorLogResponse): |
|
meeting_status: Optional[MeetingStatusResponse] = None |
|
|
|
class Config: |
|
from_attributes = True |
|
|
|
|
|
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 |
|
|