spotnotes.app/models/notepad.py

29 lines
1.1 KiB
Python
Raw Normal View History

2026-05-12 23:58:18 +00:00
from extensions import db
from datetime import datetime
class Notepad(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
is_public = db.Column(db.Boolean, default=False)
color = db.Column(db.String(7), default="#3388ff")
2026-05-12 23:58:18 +00:00
created_at = db.Column(db.DateTime, default=datetime.utcnow)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
notes = db.relationship('Note', backref='notepad', lazy='dynamic', cascade="all, delete-orphan")
keys = db.relationship('NotepadKey', backref='notepad', lazy='dynamic', cascade="all, delete-orphan")
2026-05-12 23:58:18 +00:00
def __init__(self, **kwargs):
super().__init__(**kwargs)
def to_dict(self, note_count=None, encrypted_key=None):
2026-05-12 23:58:18 +00:00
return {
'id': self.id,
'name': self.name,
'is_public': self.is_public,
'is_encrypted': not self.is_public,
2026-05-12 23:58:18 +00:00
'owner_id': self.user_id,
2026-06-02 04:22:59 +00:00
'color': self.color,
'encrypted_key': encrypted_key,
'note_count': note_count if note_count is not None else self.notes.filter_by(is_hidden=False).count()
2026-05-12 23:58:18 +00:00
}