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") 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") def __init__(self, **kwargs): super().__init__(**kwargs) def to_dict(self, note_count=None): return { 'id': self.id, 'name': self.name, 'is_public': self.is_public, 'owner_id': self.user_id, 'color': self.color, 'note_count': note_count if note_count is not None else self.notes.filter_by(is_hidden=False).count() }