import logging import os import sqlite3 as sqlite class Store: database: str def __init__(self, db_path): self.database = os.path.join(db_path, "be.db") self.init_tables() def init_tables(self): try: conn = self.get_db_conn() conn.execute( "CREATE TABLE IF NOT EXISTS user (" "user_id TEXT PRIMARY KEY, password TEXT NOT NULL, " "balance INTEGER NOT NULL, token TEXT, terminal TEXT);" ) conn.execute( "CREATE TABLE IF NOT EXISTS user_store(" "user_id TEXT, store_id, PRIMARY KEY(user_id, store_id));" ) conn.execute( "CREATE TABLE IF NOT EXISTS store( " "store_id TEXT, book_id TEXT, book_info TEXT, stock_level INTEGER," " PRIMARY KEY(store_id, book_id))" ) conn.execute( "CREATE TABLE IF NOT EXISTS new_order( " "order_id TEXT PRIMARY KEY, user_id TEXT, store_id TEXT)" ) conn.execute( "CREATE TABLE IF NOT EXISTS new_order_detail( " "order_id TEXT, book_id TEXT, count INTEGER, price INTEGER, " "PRIMARY KEY(order_id, book_id))" ) conn.commit() except sqlite.Error as e: logging.error(e) conn.rollback() def get_db_conn(self) -> sqlite.Connection: return sqlite.connect(self.database) database_instance: Store = None def init_database(db_path): global database_instance database_instance = Store(db_path) def get_db_conn(): global database_instance return database_instance.get_db_conn()