56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
"""Reddit databaes 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 Subreddit(Document):
|
|
"""Subreddit object."""
|
|
|
|
display_name: str = fields.StringField(required=True)
|
|
over18: bool = fields.BooleanField(default=False)
|
|
|
|
|
|
@JARVIS_INST.register
|
|
class SubredditFollow(Document):
|
|
"""Subreddit Follow object."""
|
|
|
|
active: bool = fields.BooleanField(default=True)
|
|
display_name: str = fields.StringField(required=True)
|
|
channel: int = fields.IntegerField(required=True)
|
|
guild: int = fields.IntegerField(required=True)
|
|
admin: int = fields.IntegerField(required=True)
|
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
|
|
|
class Meta:
|
|
collection_name = "subredditfollow"
|
|
|
|
|
|
@JARVIS_INST.register
|
|
class Redditor(Document):
|
|
"""Reddit User object."""
|
|
|
|
name: str = fields.StringField(required=True)
|
|
|
|
|
|
@JARVIS_INST.register
|
|
class RedditorFollow(Document):
|
|
"""Reditor Follow object."""
|
|
|
|
active: bool = fields.BooleanField(default=True)
|
|
name: str = fields.StringField(required=True)
|
|
channel: int = fields.IntegerField(required=True)
|
|
guild: int = fields.IntegerField(required=True)
|
|
admin: int = fields.IntegerField(required=True)
|
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
|
|
|
class Meta:
|
|
collection_name = "redditorfollow"
|