Beispiel #1
0
class Item(db.Model):
    """
  Asset wrapper model for tracking global, in-game items.
  """
    id = db.Column(db.Integer(), primary_key=True)
    amount = db.Column(db.Integer())

    faythe_id = db.Column(db.Integer(), db.ForeignKey("faythe.id"))
    order_id = db.Column(db.Integer(), db.ForeignKey("order.id"))
    user_id = db.Column(db.Integer(), db.ForeignKey("user.id"))
    owner_id = db.Column(db.Integer(), db.ForeignKey("user.id"))
    asset_id = db.Column(db.Integer(), db.ForeignKey("asset.id"))

    def amendItem(self, user, action, amount=None, receiver=None):
        if action == "append":
            self.owner = user

        elif action == "delete":
            pass

        elif action == "transfer":
            pass

    def status(self):
        if self.botHolder != None:
            return "secured"
        elif self.holder != None:
            return "moving"
        else:
            return "unknown"

    def totalWorth(self):
        return "{:,}".format(round(self.asset.sellPrice * self.amount), 2)
Beispiel #2
0
class Order(db.Model):
    """
  Model containing data on a specific Minance users order.
  """
    id = db.Column(db.Integer(), primary_key=True)
    status = db.Column(db.String(), nullable=False, default="pending")
    method = db.Column(db.String(), nullable=False)
    minimumTrust = db.Column(db.Integer(), nullable=False)
    fee = db.Column(db.Float(), nullable=False)
    visibility = db.Column(db.String(), nullable=False, default="private")
    order_date = db.Column(db.DateTime(),
                           nullable=False,
                           default=datetime.utcnow())
    fulfilled_date = db.Column(db.DateTime(), default=datetime.utcnow())

    items = db.relationship("Item", backref="order", lazy=True)

    user_id = db.Column(db.Integer(), db.ForeignKey("user.id"))

    def calcPrice(self):
        if self.method == "buy":
            return "{:,}".format(
                round(self.items[0].asset.sellPrice * self.items[0].amount, 2))
        else:
            return 0

    def calcReturn(self):
        return "{:,}".format(
            round((self.items[0].asset.sellPrice * self.items[0].amount) *
                  (self.fee / 100), 2))
Beispiel #3
0
class APIKey(db.Model):
  """
  API key model for API access.
  """
  id = db.Column(db.Integer(), primary_key=True)
  # UUID API Key
  clearance = db.Column(db.Integer(), nullable=False, default=1)

  user_id = db.Column(db.Integer(), db.ForeignKey("user.id"))
Beispiel #4
0
class Candle(db.Model):
    """
  Candle model for open, high, low, close (OHLC) candles.
  """
    id = db.Column(db.Integer(), primary_key=True)
    priceType = db.Column(db.String(), nullable=False)
    timeframe = db.Column(db.Integer(),
                          nullable=False)  # Type of candle in minutes
    creationDate = db.Column(db.DateTime(),
                             nullable=False,
                             default=datetime.utcnow())

    # OHLC
    open = db.Column(db.Float(precision=4), nullable=False)
    high = db.Column(db.Float(precision=4), nullable=False)
    low = db.Column(db.Float(precision=4), nullable=False)
    close = db.Column(db.Float(precision=4), nullable=False)

    volume = db.Column(db.Integer(), nullable=False)
    """Relation to allow a specific candle to point to other candle objects."""
    contains = db.relationship("Candle",
                               secondary=candles,
                               primaryjoin=(candles.c.containee_id == id),
                               secondaryjoin=(candles.c.container_id == id),
                               backref=db.backref("candles", lazy="dynamic"),
                               lazy="dynamic")

    asset_id = db.Column(db.Integer(),
                         db.ForeignKey("asset.id"),
                         nullable=False)

    @property
    def formattedOHLC(self):
        return [
            self.creationDate.timestamp(), self.open, self.high, self.low,
            self.close, self.volume
        ]
Beispiel #5
0
import pickle
from datetime import datetime

from minance import db

candles = db.Table(
    "candles", db.Column("containee_id", db.Integer,
                         db.ForeignKey("candle.id")),
    db.Column("container_id", db.Integer, db.ForeignKey("candle.id")))


class Candle(db.Model):
    """
  Candle model for open, high, low, close (OHLC) candles.
  """
    id = db.Column(db.Integer(), primary_key=True)
    priceType = db.Column(db.String(), nullable=False)
    timeframe = db.Column(db.Integer(),
                          nullable=False)  # Type of candle in minutes
    creationDate = db.Column(db.DateTime(),
                             nullable=False,
                             default=datetime.utcnow())

    # OHLC
    open = db.Column(db.Float(precision=4), nullable=False)
    high = db.Column(db.Float(precision=4), nullable=False)
    low = db.Column(db.Float(precision=4), nullable=False)
    close = db.Column(db.Float(precision=4), nullable=False)

    volume = db.Column(db.Integer(), nullable=False)
    """Relation to allow a specific candle to point to other candle objects."""