20 lines
760 B
Python
20 lines
760 B
Python
from __future__ import annotations # TODO: Remove if python requirement is >= 3.10
|
|
from datetime import datetime
|
|
from typing import Any
|
|
|
|
from . import Serial, UtcDateTime, ModelSerializeMixin
|
|
from ..database import db
|
|
from .user import User
|
|
|
|
|
|
class Notification(db.Model, ModelSerializeMixin):
|
|
__tablename__ = "notification"
|
|
id: int = db.Column("id", Serial, primary_key=True)
|
|
plugin: str = db.Column(db.String(30), nullable=False)
|
|
text: str = db.Column(db.Text)
|
|
data: Any = db.Column(db.PickleType(protocol=4))
|
|
time: datetime = db.Column(UtcDateTime, nullable=False, default=UtcDateTime.current_utc)
|
|
|
|
user_id_: int = db.Column("user_id", Serial, db.ForeignKey("user.id"), nullable=False)
|
|
user_: User = db.relationship("User")
|