36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
"""Mastodon databaes models."""
|
|
from datetime import datetime, timezone
|
|
|
|
from umongo import Document, fields
|
|
|
|
from jarvis_core.db import JARVIS_INST
|
|
from jarvis_core.db.utils import get_now
|
|
|
|
|
|
@JARVIS_INST.register
|
|
class User(Document):
|
|
"""User object."""
|
|
|
|
user_id: int = fields.IntegerField(required=True)
|
|
acct: str = fields.StringField(required=True)
|
|
username: str = fields.StringField(required=True)
|
|
last_sync: datetime = fields.AwareDateTimeField(default=get_now)
|
|
|
|
class Meta:
|
|
collection_name = "mastodonuser"
|
|
|
|
|
|
@JARVIS_INST.register
|
|
class UserFollow(Document):
|
|
"""User Follow object."""
|
|
|
|
active: bool = fields.BooleanField(default=True)
|
|
user_id: int = fields.IntegerField(required=True)
|
|
channel: int = fields.IntegerField(required=True)
|
|
guild: int = fields.IntegerField(required=True)
|
|
reblogged: bool = fields.BooleanField(default=True)
|
|
admin: int = fields.IntegerField(required=True)
|
|
created_at: datetime = fields.AwareDateTimeField(default=get_now)
|
|
|
|
class Meta:
|
|
collection_name = "mastodonuserfollow"
|