brestok's picture
init
d0e0a14
from sqlalchemy import Column, String, Integer, LargeBinary, Text, VARCHAR, ForeignKey
from sqlalchemy.orm import relationship
from project.config import settings
from project.database import Base
class Folder(Base):
__tablename__ = 'folders'
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
name = Column(VARCHAR(128))
user_id = Column(Integer, ForeignKey('users.id'))
owner = relationship('User', back_populates='folders')
audio_records = relationship('AudioRecord', back_populates='folder')
images = relationship('ImageRecord', back_populates='folder')
class AudioRecord(Base):
__tablename__ = 'audio_records'
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
audio_path = Column(VARCHAR(512))
transcription = Column(Text)
folder_id = Column(Integer, ForeignKey('folders.id'))
folder = relationship('Folder', back_populates='audio_records')
class ImageRecord(Base):
__tablename__ = 'image_records'
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
image_path = Column(VARCHAR(512), default=str(settings.BASE_DIR / 'images' / 'base_img.jpg'))
transcription = Column(Text)
folder_id = Column(Integer, ForeignKey('folders.id'))
folder = relationship('Folder', back_populates='images')
class Report(Base):
__tablename__ = 'reports'
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
content = Column(Text)
user = relationship('User', back_populates='reports')
user_id = Column(Integer, ForeignKey('users.id'))