You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
2.0 KiB
Python
40 lines
2.0 KiB
Python
from django_prometheus.models import ExportModelOperationsMixin
|
|
from django.db import models
|
|
from django.contrib.auth.models import User
|
|
from django.conf import settings
|
|
from items.models import Item
|
|
from bids.models import ItemBid
|
|
|
|
|
|
class ItemSale(ExportModelOperationsMixin('item_sale'), models.Model):
|
|
item = models.ForeignKey(Item, related_name='sales', on_delete=models.CASCADE)
|
|
bid = models.ForeignKey(ItemBid, related_name='bids', on_delete=models.CASCADE)
|
|
escrow_address = models.CharField(max_length=96)
|
|
escrow_account_index = models.IntegerField()
|
|
agreed_price_xmr = models.FloatField()
|
|
platform_fee_xmr = models.FloatField()
|
|
network_fee_xmr = models.FloatField(default=0.0)
|
|
seller_payout_transaction = models.CharField(max_length=150, blank=True)
|
|
expected_payment_xmr = models.FloatField()
|
|
received_payment_xmr = models.FloatField(default=0.0)
|
|
escrow_period_days = models.PositiveSmallIntegerField(default=settings.ESCROW_PERIOD_DAYS)
|
|
buyer_notified = models.BooleanField(default=False)
|
|
buyer_notified_of_shipment = models.BooleanField(default=False)
|
|
payment_received = models.BooleanField(default=False)
|
|
seller_notified = models.BooleanField(default=False)
|
|
seller_notified_of_receipt = models.BooleanField(default=False)
|
|
payment_refunded = models.BooleanField(default=False)
|
|
item_shipped = models.BooleanField(default=False)
|
|
item_received = models.BooleanField(default=False)
|
|
buyer_disputed = models.BooleanField(default=False)
|
|
seller_disputed = models.BooleanField(default=False)
|
|
escrow_complete = models.BooleanField(default=False)
|
|
seller_paid = models.BooleanField(default=False)
|
|
seller_notified_of_payout = models.BooleanField(default=False)
|
|
platform_paid = models.BooleanField(default=False)
|
|
sale_finalized = models.BooleanField(default=False)
|
|
sale_cancelled = models.BooleanField(default=False)
|
|
|
|
def __str__(self):
|
|
return f"{self.id} - {self.item.name} - {self.bid.bidder} > {self.item.owner}"
|