51 lines
2.3 KiB
Python
51 lines
2.3 KiB
Python
from sqlalchemy import Column, Integer, String, Boolean, ForeignKey
|
|
from sqlalchemy.orm import relationship
|
|
|
|
from database import Base
|
|
from enums.enums import Integration, ClinicStatus
|
|
from sqlalchemy import Enum
|
|
from .CustomBase import CustomBase
|
|
|
|
|
|
class Clinics(Base, CustomBase):
|
|
__tablename__ = "clinics"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
name = Column(String)
|
|
address = Column(String, nullable=True)
|
|
phone = Column(String, unique=True, index=True) # clinic phone
|
|
emergency_phone = Column(String, unique=True, nullable=True)
|
|
email = Column(String, unique=True, index=True, nullable=True)
|
|
fax = Column(String, nullable=True)
|
|
integration = Column(Enum(Integration))
|
|
pms_id = Column(String, nullable=True)
|
|
practice_name = Column(String, nullable=True)
|
|
logo = Column(String, nullable=True)
|
|
country = Column(String, nullable=True)
|
|
postal_code = Column(String, nullable=True)
|
|
city = Column(String, nullable=True)
|
|
state = Column(String, nullable=True)
|
|
abn_doc = Column(String, nullable=True)
|
|
abn_number = Column(String, nullable=True)
|
|
contract_doc = Column(String, nullable=True)
|
|
clinic_phone = Column(String, nullable=True) # AI Receptionist Phone
|
|
is_clinic_phone_enabled = Column(Boolean, default=False)
|
|
other_info = Column(String, nullable=True)
|
|
greeting_msg = Column(String, nullable=True)
|
|
voice_model = Column(String, nullable=True)
|
|
voice_model_provider = Column(String, nullable=True)
|
|
voice_model_gender = Column(String, nullable=True)
|
|
scenarios = Column(String, nullable=True)
|
|
general_info = Column(String, nullable=True)
|
|
status = Column(Enum(ClinicStatus))
|
|
domain = Column(String, nullable=True) # unique for each clinic
|
|
creator_id = Column(Integer, ForeignKey("users.id"), nullable=True) # Reference to the user who created this clinic
|
|
|
|
# Relationships
|
|
doctors = relationship("Doctors", back_populates="clinic")
|
|
clinicDoctors = relationship("ClinicDoctors", back_populates="clinic")
|
|
creator = relationship("Users", back_populates="created_clinics")
|
|
clinic_file_verifications = relationship("ClinicFileVerifications", back_populates="clinic")
|
|
|
|
# Stripe relationships
|
|
stripe_user = relationship("StripeUsers", back_populates="clinic") |