mirror of
https://github.com/Blockstream/satellite-api.git
synced 2025-02-22 13:42:33 +01:00
- Preserve the SQLite database and use SQLAlchemy to wrap db interactions. - Use Alembic for database migrations. - Organize all the python modules on the new server/ directory. - Use pytest for unit tests and organize test modules at server/tests/.
56 lines
2.2 KiB
Python
56 lines
2.2 KiB
Python
from sqlalchemy.sql import func
|
|
|
|
from database import db
|
|
|
|
|
|
class Order(db.Model):
|
|
__tablename__ = 'orders'
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
bid = db.Column(db.Integer, default=0)
|
|
message_size = db.Column(db.Integer, nullable=False)
|
|
bid_per_byte = db.Column(db.Float, default=0) # TODO: remove (redundant)
|
|
message_digest = db.Column(db.String(64), nullable=False)
|
|
status = db.Column(db.Integer)
|
|
uuid = db.Column(db.String(36), nullable=False)
|
|
created_at = db.Column(db.DateTime, default=func.now())
|
|
cancelled_at = db.Column(db.DateTime)
|
|
started_transmission_at = db.Column(db.DateTime)
|
|
ended_transmission_at = db.Column(db.DateTime)
|
|
tx_seq_num = db.Column(db.Integer, unique=True)
|
|
unpaid_bid = db.Column(db.Integer, nullable=False)
|
|
invoices = db.relationship('Invoice', backref='order', lazy=True)
|
|
|
|
|
|
class Invoice(db.Model):
|
|
__tablename__ = 'invoices'
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
lid = db.Column(db.String(100), nullable=False)
|
|
invoice = db.Column(db.String(1024), nullable=False)
|
|
paid_at = db.Column(db.DateTime)
|
|
created_at = db.Column(db.DateTime, default=func.now())
|
|
order_id = db.Column(db.Integer, db.ForeignKey('orders.id'))
|
|
status = db.Column(db.Integer)
|
|
amount = db.Column(db.Integer)
|
|
expires_at = db.Column(db.DateTime, nullable=False)
|
|
|
|
|
|
class TxConfirmation(db.Model):
|
|
__tablename__ = 'tx_confirmations'
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
created_at = db.Column(db.DateTime, default=func.now())
|
|
order_id = db.Column(db.Integer,
|
|
db.ForeignKey('orders.id'),
|
|
nullable=False)
|
|
region_id = db.Column(db.Integer, nullable=False)
|
|
presumed = db.Column(db.Boolean, default=False)
|
|
|
|
|
|
class RxConfirmation(db.Model):
|
|
__tablename__ = 'rx_confirmations'
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
created_at = db.Column(db.DateTime, default=func.now())
|
|
order_id = db.Column(db.Integer,
|
|
db.ForeignKey('orders.id'),
|
|
nullable=False)
|
|
region_id = db.Column(db.Integer, nullable=False)
|
|
presumed = db.Column(db.Boolean, default=False)
|