31 lines
1.3 KiB
Python
31 lines
1.3 KiB
Python
from sqlalchemy import Column, Integer, String
|
|
from database import Base
|
|
from sqlalchemy import Enum
|
|
from enums.enums import ClinicUserRoles, UserType
|
|
from models.CustomBase import CustomBase
|
|
from sqlalchemy.orm import relationship
|
|
|
|
class Users(Base, CustomBase):
|
|
__tablename__ = "users"
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
username = Column(String, index=True)
|
|
email = Column(String, unique=True, index=True)
|
|
password = Column(String)
|
|
clinicRole = Column(Enum(ClinicUserRoles), nullable=True)
|
|
userType = Column(Enum(UserType), nullable=True)
|
|
profile_pic = Column(String, nullable=True)
|
|
mobile = Column(String, nullable=True)
|
|
|
|
# Notification relationships
|
|
sent_notifications = relationship("Notifications", foreign_keys="Notifications.sender_id", back_populates="sender")
|
|
received_notifications = relationship("Notifications", foreign_keys="Notifications.receiver_id", back_populates="receiver")
|
|
|
|
# FCM relationships
|
|
fcm = relationship("Fcm", back_populates="user")
|
|
|
|
# Clinics created by this user
|
|
created_clinics = relationship("Clinics", back_populates="creator")
|
|
clinic_file_verifications = relationship("ClinicFileVerifications", back_populates="last_changed_by_user")
|
|
|
|
# Stripe relationships
|
|
stripe_user = relationship("StripeUsers", back_populates="user") |