-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfile.py
More file actions
21 lines (17 loc) · 972 Bytes
/
file.py
File metadata and controls
21 lines (17 loc) · 972 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from sqlalchemy import Column, Integer, String, ForeignKey, TIMESTAMP, text
from sqlalchemy.orm import relationship
from .base import Base
class File(Base):
__tablename__ = "file"
id = Column(Integer, primary_key=True, autoincrement=True)
user_id = Column(Integer, ForeignKey("user.u_id", ondelete="CASCADE"), nullable=False)
folder_id = Column(Integer, ForeignKey("folder.id", ondelete="SET NULL"), nullable=True)
note_id = Column(Integer, ForeignKey("note.id", ondelete="CASCADE"), nullable=True)
original_name = Column(String(255), nullable=False)
saved_path = Column(String(512), nullable=False)
content_type = Column(String(100), nullable=False)
created_at = Column(TIMESTAMP, nullable=False, server_default=text("CURRENT_TIMESTAMP"))
# relationships
user = relationship("User", back_populates="files")
folder = relationship("Folder", back_populates="files")
note = relationship("Note", back_populates="files")