Skip to content
Snippets Groups Projects
Commit 2d42c121 authored by s2191814's avatar s2191814
Browse files

Add peewee ORM

parent a3c6a100
No related branches found
No related tags found
1 merge request!2Draft: initial user flow for creating a wallet
This commit is part of merge request !2. Comments created here will be created in the context of that merge request.
from peewee import MySQLDatabase, Model, CharField, BlobField, AutoField
from peewee import IntegerField, ForeignKeyField, DoubleField
import os
db = MySQLDatabase(None)
def connect(create_tables=False) -> None:
"""Initializes the database session and connects to the database
:param create_tables: Creates database tables [default: False]
"""
user = os.getenv("DB_USER")
pw = os.getenv("DB_PASSWORD")
host = os.getenv("DB_HOST")
port = os.getenv("DB_PORT")
name = os.getenv("DB_DATABASE")
db.init(name, host=host, port=int(port), user=user, password=pw)
db.connect()
if create_tables:
db.create_tables([State, User, Wallet,
WalletRequest, UserWallet, PendingTX])
class BaseModel(Model):
id = AutoField()
class Meta:
database = db
class State(BaseModel):
message = CharField()
menu = CharField()
prev_state = IntegerField()
class User(BaseModel):
telegram_id = IntegerField()
state_id = ForeignKeyField(State)
nickname = CharField()
variables = CharField()
class Wallet(BaseModel):
max_co_signers = IntegerField()
min_co_signers = IntegerField()
initiator_user_id = ForeignKeyField(User, backref='users')
name = CharField()
class WalletRequest(BaseModel):
token = CharField()
wallet_id = ForeignKeyField(User, backref='walletrequests')
class UserWallet(BaseModel):
user_id = ForeignKeyField(User, backref='wallets')
wallet_id = ForeignKeyField(Wallet, backref='wallets')
class PendingTX(BaseModel):
from_wallet_id = ForeignKeyField(Wallet, backref='pendingtx')
to_address = CharField()
amount = DoubleField()
fee_sat_per_byte = IntegerField()
status = IntegerField()
sign_count = IntegerField()
raw_data = BlobField()
txid = BlobField()
python-dotenv~=0.19.2
bitcoinlib~=0.6.4
python-telegram-bot~=13.11
mysqlclient~=2.1.0
\ No newline at end of file
mysqlclient~=2.1.0
peewee==3.14.10
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment