52 lines
1.9 KiB
Python
52 lines
1.9 KiB
Python
from app.extensions import db
|
|
from datetime import datetime
|
|
from app.enums.CryptomusPaymentStatus import CryptomusPaymentStatus
|
|
|
|
class CryptomusInvoice(db.Model):
|
|
id = db.Column( db.Text, primary_key=True, unique=True, nullable=False, index = True )
|
|
cryptomus_invoice_id = db.Column( db.Text, nullable=False, index = True )
|
|
|
|
initiator_id = db.Column( db.Integer, db.ForeignKey('user.id'), nullable=False, index = True )
|
|
|
|
required_amount = db.Column( db.Float, nullable=False )
|
|
paid_amount_usd = db.Column( db.Float, nullable=False, default=0 )
|
|
currency = db.Column( db.Text, nullable=False )
|
|
status = db.Column( db.Enum(CryptomusPaymentStatus), nullable=False )
|
|
is_final = db.Column( db.Boolean, nullable=False, default=False )
|
|
|
|
extra_data = db.Column( db.Text, nullable=True )
|
|
|
|
created_at = db.Column( db.DateTime, nullable=False )
|
|
updated_at = db.Column( db.DateTime, nullable=False )
|
|
expires_at = db.Column( db.DateTime, nullable=False )
|
|
|
|
assigned_key = db.Column( db.Text, nullable=True )
|
|
|
|
def __init__(
|
|
self,
|
|
id : str,
|
|
cryptomus_invoice_id : str,
|
|
|
|
initiator_id : int,
|
|
|
|
required_amount : float,
|
|
currency : str,
|
|
status : CryptomusPaymentStatus,
|
|
|
|
expires_at : datetime,
|
|
created_at : datetime = None,
|
|
updated_at : datetime = None,
|
|
paid_amount_usd : float = 0,
|
|
extra_data : str = None
|
|
):
|
|
self.id = id
|
|
self.cryptomus_invoice_id = cryptomus_invoice_id
|
|
self.initiator_id = initiator_id
|
|
self.required_amount = required_amount
|
|
self.currency = currency
|
|
self.status = status
|
|
self.expires_at = expires_at
|
|
self.created_at = created_at if created_at is not None else datetime.utcnow()
|
|
self.updated_at = updated_at if updated_at is not None else datetime.utcnow()
|
|
self.paid_amount_usd = paid_amount_usd
|
|
self.extra_data = extra_data |