jarvis-core/jarvis_core/db/models/twitter.py

40 lines
1.2 KiB
Python

"""Twitter database models."""
from datetime import datetime, timezone
from umongo import Document, fields
from jarvis_core.db import JARVIS_INST
def get_now() -> datetime:
"""Get proper timestamp."""
return datetime.now(tz=timezone.utc)
@JARVIS_INST.register
class TwitterAccount(Document):
"""Twitter Account object."""
handle: str = fields.StringField(required=True)
twitter_id: int = fields.IntegerField(required=True)
last_tweet: int = fields.IntegerField(required=True)
last_sync: datetime = fields.DateTimeField(default=get_now)
class Meta:
collection_name = "twitteraccount"
@JARVIS_INST.register
class TwitterFollow(Document):
"""Twitter Follow object."""
active: bool = fields.BooleanField(default=True)
twitter_id: int = fields.IntegerField(required=True)
channel: int = fields.IntegerField(required=True)
guild: int = fields.IntegerField(required=True)
retweets: bool = fields.BooleanField(default=True)
admin: int = fields.IntegerField(required=True)
created_at: datetime = fields.DateTimeField(default=get_now)
class Meta:
collection_name = "twitterfollow"