import database class VkDatabase(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), greeting_rejoin VARCHAR(2000), birthday_message 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, happy_birthday TINYINT NOT NULL DEFAULT 1, 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() def user_toggle_happy_birthday(self, chat_id: int, user_id: int, happy_birthday: int): self.user_update(chat_id, user_id, happy_birthday=happy_birthday) DB: VkDatabase def create_database(connection_string: str): global DB DB = VkDatabase(connection_string)