totrader/db.py

79 lines
1.8 KiB
Python

from os import getenv
from dotenv import load_dotenv
from peewee import *
from datetime import datetime, timedelta
load_dotenv('.env')
db = PostgresqlDatabase(
'trader',
user=getenv('DB_USER'),
password=getenv('DB_PASS'),
host=getenv('DB_HOST', '127.0.0.1'),
port=getenv('DB_PORT', 5432)
)
def get_time():
now = datetime.now()
now = now + timedelta(hours=7)
return now
class Ticker(Model):
id = AutoField()
trade_pair = CharField()
initial_price = DoubleField()
current_price = DoubleField()
high_price = DoubleField()
low_price = DoubleField()
volume = DoubleField()
bid = DoubleField()
ask = DoubleField()
spread_btc = DoubleField()
spread_sats = IntegerField()
spread_perc = DoubleField()
date = DateTimeField(default=get_time)
class Meta:
database = db
class Balance(Model):
total = DoubleField()
available = DoubleField()
currency = CharField()
date = DateTimeField(default=get_time)
class Meta:
database = db
class Order(Model):
trade_pair = CharField()
trade_type = CharField()
buy = BooleanField()
quantity = DoubleField()
price = DoubleField()
uuid = TextField()
active = BooleanField(default=True)
cancelled = BooleanField(default=False)
date = DateTimeField(default=get_time)
class Meta:
database = db
# class Trade(Model):
# id = AutoField()
# title = CharField()
# text = CharField()
# submitter = CharField()
# image_name = CharField()
# readonly = BooleanField(default=False)
# hidden = BooleanField(default=False)
# account_index = DoubleField()
# address_index = DoubleField()
# timestamp = DateTimeField(default=datetime.now)
#
# class Meta:
# database = db
db.create_tables([Ticker, Balance, Order])