-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfolder.py
More file actions
20 lines (17 loc) · 985 Bytes
/
folder.py
File metadata and controls
20 lines (17 loc) · 985 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from sqlalchemy import Column, Integer, String, ForeignKey, TIMESTAMP, text
from sqlalchemy.orm import relationship
from .base import Base
class Folder(Base):
__tablename__ = "folder"
id = Column(Integer, primary_key=True, autoincrement=True)
user_id = Column(Integer, ForeignKey("user.u_id", ondelete="CASCADE"), nullable=False)
name = Column(String(100), nullable=False)
parent_id = Column(Integer, ForeignKey("folder.id", ondelete="SET NULL"), nullable=True)
created_at = Column(TIMESTAMP, nullable=False, server_default=text("CURRENT_TIMESTAMP"))
updated_at = Column(TIMESTAMP, nullable=False,
server_default=text("CURRENT_TIMESTAMP"),
onupdate=text("CURRENT_TIMESTAMP"))
# relations
user = relationship("User")
parent = relationship("Folder", remote_side=[id], backref="children")
notes = relationship("Note", back_populates="folder", cascade="all, delete")