import database class TgDatabase(database.BasicDatabase): def __init__(self, connection_string: str): super().__init__(connection_string) self.cursor.execute(""" CREATE TABLE IF NOT EXISTS chats ( id BIGINT NOT NULL, active TINYINT NOT NULL DEFAULT 0, rules VARCHAR(4000), greeting_join VARCHAR(2000), ai_prompt VARCHAR(4000), PRIMARY KEY (id)) """) self.cursor.execute(""" CREATE TABLE IF NOT EXISTS users ( chat_id BIGINT NOT NULL, user_id BIGINT NOT NULL, last_message BIGINT NOT NULL DEFAULT 0, messages_today SMALLINT NOT NULL DEFAULT 0, messages_month SMALLINT NOT NULL DEFAULT 0, warnings TINYINT NOT NULL DEFAULT 0, about VARCHAR(1000), PRIMARY KEY (chat_id, user_id), CONSTRAINT fk_users_chats FOREIGN KEY (chat_id) REFERENCES chats (id) ON UPDATE CASCADE ON DELETE CASCADE) """) self.cursor.execute(""" CREATE TABLE IF NOT EXISTS contexts ( chat_id BIGINT NOT NULL, message_id BIGINT, role VARCHAR(16) NOT NULL, content VARCHAR(2000) NOT NULL, UNIQUE KEY contexts_unique (chat_id, message_id), CONSTRAINT fk_contexts_chats FOREIGN KEY (chat_id) REFERENCES chats (id) ON UPDATE CASCADE ON DELETE CASCADE) """) self.conn.commit() DB: TgDatabase def create_database(connection_string: str): global DB DB = TgDatabase(connection_string)