manage markdowns by path

This commit is contained in:
h z
2024-12-05 18:28:16 +00:00
parent 178219f097
commit 4b9c1ba727
4 changed files with 116 additions and 6 deletions

View File

@@ -1,5 +1,5 @@
#db/models/Markdown.py
from sqlalchemy import Column, Text, Integer, String, DateTime
from sqlalchemy import Column, Text, Integer, String, DateTime, ForeignKey
from db.models import Base
import datetime
@@ -9,7 +9,7 @@ class Markdown(Base):
title = Column(String(255), nullable=False)
content = Column(Text, nullable=False)
created_at = Column(DateTime, default=datetime.datetime.utcnow)
path = Column(String(255), nullable=False)
path_id = Column(Integer, ForeignKey('path.id'), nullable=False)
def to_dict(self):
return {
@@ -17,5 +17,5 @@ class Markdown(Base):
'title': self.title,
'content': self.content,
'created_at': self.created_at,
'path': self.path,
'path_id': self.path_id,
}

17
db/models/Path.py Normal file
View File

@@ -0,0 +1,17 @@
#db/models/Path.py
from sqlalchemy import Column, Text, LargeBinary, String, Integer, ForeignKey, UniqueConstraint
from db.models import Base
class Path(Base):
__tablename__ = "path"
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String(50), nullable=False)
parent_id = Column(Integer, ForeignKey("path.id"))
__table_args__ = (UniqueConstraint("parent_id", "name", name="unique_parent_id_name"), )
def to_dict(self):
return {
"id": self.id,
"name": self.name,
"parent_id": self.parent_id,
}