Files

79 lines
2.9 KiB
Python

import os
from pathlib import Path
from sqlalchemy import Boolean, Column, Integer, String, create_engine, event
from sqlalchemy.orm import declarative_base, sessionmaker
BASE_DIR = Path(__file__).resolve().parent.parent
DB_PATH = Path(os.environ.get("IDRS_DB_PATH", BASE_DIR / "idrs.db"))
ICON_DIR = BASE_DIR / "app" / "static" / "icons"
engine = create_engine(
f"sqlite:///{DB_PATH}",
connect_args={"check_same_thread": False},
pool_pre_ping=True,
)
@event.listens_for(engine, "connect")
def _set_wal(dbapi_connection, connection_record):
cursor = dbapi_connection.cursor()
cursor.execute("PRAGMA journal_mode=WAL")
cursor.close()
SessionLocal = sessionmaker(bind=engine, autoflush=False, autocommit=False)
Base = declarative_base()
class Token(Base):
__tablename__ = "tokens"
idfToken = Column("idfToken", Integer, primary_key=True)
position = Column("position", Integer, unique=True, nullable=False)
typeBlockchain = Column("typeBlockchain", String, nullable=False)
name = Column("name", String, nullable=False)
symbol = Column("symbol", String, nullable=False)
contractAddr = Column("contractAddr", String, nullable=False)
decimals = Column("decimals", Integer, nullable=False)
iconUrl = Column("iconUrl", String, nullable=False, default="")
filename = Column("filename", String, nullable=False, default="")
is_live = Column("is_live", Boolean, nullable=False, default=True)
icon = None
class Version(Base):
__tablename__ = "version"
id = Column(Integer, primary_key=True)
idVersion = Column("idVersion", Integer, nullable=False)
appName = Column("appName", String, nullable=False)
acceptableVersion = Column("acceptableVersion", Integer, nullable=False)
latestVersion = Column("latestVersion", Integer, nullable=False)
class Dapp(Base):
__tablename__ = "dapps"
id = Column(Integer, primary_key=True)
name = Column("name", String, nullable=False)
description = Column("description", String, nullable=True)
link = Column("link", String, nullable=True)
image = Column("image", String, nullable=True)
is_live = Column("is_live", Boolean, nullable=False, default=True)
counter = Column("counter", Integer, nullable=False, default=0)
category_id = Column("category_id", Integer, nullable=True)
is_available_indonesia = Column("is_available_indonesia", Boolean, nullable=True)
is_new_version = Column("is_new_version", Boolean, nullable=False, default=False)
created_at = Column("created_at", String, nullable=True)
updated_at = Column("updated_at", String, nullable=True)
is_live_override = Column("is_live_override", Boolean, nullable=False, default=False)
imageFile = None
class Wallet(Base):
__tablename__ = "wallets"
id = Column(Integer, primary_key=True)
account = Column("account", String, unique=True, nullable=False)
created_at = Column("created_at", String, nullable=True)