закончил создавать основные таблички

This commit is contained in:
Андрей Дувакин 2025-02-02 14:57:06 +05:00
parent 523b6d5b89
commit 16f04813a9
9 changed files with 89 additions and 0 deletions

View File

@ -0,0 +1,3 @@
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()

View File

@ -0,0 +1,16 @@
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import relationship
from app.domain.models import Base
class AppointmentFile(Base):
__tablename__ = 'appointment_files'
id = Column(Integer, primary_key=True, autoincrement=True)
file_path = Column(String, nullable=False)
file_title = Column(String, nullable=False)
appointment_id = Column(Integer, ForeignKey('appointments.id'), nullable=False)
appointment = relationship('Appointment', back_populates='files')

View File

@ -18,3 +18,5 @@ class Appointment(Base):
patient = relationship('Patient', back_populates='appointments')
doctor = relationship('User', back_populates='appointments')
type = relationship('AppointmentType', back_populates='appointments')
files = relationship('AppointmentFile', back_populates='appointment')

View File

@ -0,0 +1,21 @@
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey
from sqlalchemy.sql import func
from sqlalchemy.orm import relationship
from app.domain.models import Base
class Mailing(Base):
__tablename__ = 'mailing'
id = Column(Integer, primary_key=True, autoincrement=True)
text = Column(String, nullable=False)
title = Column(String, nullable=False)
datetime = Column(DateTime, nullable=False, default=func.utcnow)
user_id = Column(Integer, ForeignKey('users.id'), nullable=False)
user = relationship('User', back_populates='mailing')
recipients = relationship('Recipient', back_populates='mailing')
mailing_options = relationship('MailingOption', back_populates='mailing')

View File

@ -0,0 +1,13 @@
from sqlalchemy import Column, Integer, VARCHAR
from sqlalchemy.orm import relationship
from app.domain.models import Base
class MailingDeliveryMethod(Base):
__tbalename__ = 'mailing_delivery_methods'
id = Column(Integer, primary_key=True, autoincrement=True)
title = Column(VARCHAR(200), nullable=False)
mailing = relationship('MailingOption', back_populates='option')

View File

@ -0,0 +1,16 @@
from sqlalchemy import Column, Integer, ForeignKey
from sqlalchemy.orm import relationship
from app.domain.models import Base
class MailingOption(Base):
__tablename__ = 'mailing_options'
id = Column(Integer, primary_key=True, autoincrement=True)
option_id = Column(Integer, ForeignKey('patients.id'), nullable=False)
mailing_id = Column(Integer, ForeignKey('mailing.id'), nullable=False)
option = relationship('Patient', back_populates='mailing')
mailing = relationship('Mailing', back_populates='mailing_options')

View File

@ -20,3 +20,4 @@ class Patient(Base):
lens_issues = relationship('LensIssue', back_populates='patient')
appointments = relationship('Appointment', back_populates='patient')
mailing = relationship('Mailing', back_populates='patient')

View File

@ -0,0 +1,16 @@
from sqlalchemy import Column, Integer, ForeignKey
from sqlalchemy.orm import relationship
from app.domain.models import Base
class Recipient(Base):
__tbalename__ = 'recipients'
id = Column(Integer, primary_key=True, autoincrement=True)
patient_id = Column(Integer, ForeignKey('mailing_delivery_methods.id'), nullable=False)
mailing_id = Column(Integer, ForeignKey('mailing.id'), nullable=False)
patient = relationship('MailingDeliveryMethod', back_populates='mailing')
mailing = relationship('Mailing', back_populates='recipients')

View File

@ -20,3 +20,4 @@ class User(Base):
lens_issues = relationship('LensIssue', back_populates='doctor')
appointments = relationship('Appointment', back_populates='doctor')
mailing = relationship('Mailing', back_populates='user')