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