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