"""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"