Files
2025-08-13 14:39:49 +10:00

80 lines
1.7 KiB
Python

from cachetools import TTLCache
from data import Registry, RowModel, Table, WeakCache
from data.columns import String, Timestamp, Integer, Bool
class LoggingGuild(RowModel):
"""
Schema
------
"""
_tablename_ = 'logging_guilds'
_cache_ = {}
guildid = Integer(primary=True)
webhook_url = String()
created_at = Timestamp()
_timestamp = Timestamp()
class LoggedMessage(RowModel):
"""
Schema
------
"""
_tablename_ = 'logged_messages'
_cache_ = WeakCache(ref_cache=TTLCache(maxsize=5000, ttl=60*60*24))
messageid = Integer(primary=True)
guildid = Integer()
channelid = Integer()
userid = Integer()
created_at = Timestamp()
deleted_at = Timestamp()
_timestamp = Timestamp()
class MessageState(RowModel):
"""
Schema
------
"""
_tablename_ = 'message_states'
_cache_ = WeakCache(ref_cache=TTLCache(maxsize=5000, ttl=60*60*24))
stateid = Integer(primary=True)
messageid = Integer()
content = String()
embeds_raw = String()
created_at = Timestamp()
class LogAttachment(RowModel):
"""
Schema
------
"""
_tablename_ = 'logged_attachments'
_cache_ = WeakCache(ref_cache=TTLCache(maxsize=5000, ttl=60*60*24))
attachment_id = Integer(primary=True)
proxy_url = String()
url = String()
content_type = String()
filesize = Integer()
filename = String()
permalink = String()
created_at = Timestamp()
class LogData(Registry):
logging_guilds = LoggingGuild.table
logged_messages = LoggedMessage.table
message_states = MessageState.table
logged_attachments = LogAttachment.table
logged_messages_attachments = Table('logged_messages_attachments')