health-apps-backend/models/Clinics.py

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")