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')