from django.db import models from users.models import User from django.contrib import admin # Create your models here. class CryptoCoins(models.Model): id = models.BigAutoField(primary_key=True) coinName = models.CharField(max_length=250) coinSymbol = models.CharField(max_length=10) coinAPI = models.BooleanField(default=True) coinMerch = models.BooleanField(default=True) coinIsActive = models.BooleanField(default=True) coinAddDate = models.DateTimeField(auto_now_add=True) coinUpdated = models.DateTimeField(auto_now=True) coinDelete = models.DateTimeField(auto_now_add=True, blank=True, null=True) coinDeleted = models.BooleanField(default=False) class Meta: verbose_name = "Crypto Coin" verbose_name_plural = "Crypto Coins" ordering = ["-id"] class VendorsData(models.Model): id = models.BigAutoField(primary_key=True) vendorid = models.ForeignKey(User, default=None, on_delete=models.CASCADE) vendorUUID = models.UUIDField() vendor = models.CharField(max_length=8, unique=True) vendorSecretKey = models.CharField(max_length=250) vendorCoverAmount = models.IntegerField(default=0) vendorNetworkFee = models.IntegerField(default=0) vendorPaidNotification = models.BooleanField(default=True) vendorSkipScreen = models.BooleanField(default=False) vendorPayWindow = models.BooleanField(default=True) vendorWebName = models.CharField(max_length=250) vendorWebAddr = models.URLField(max_length=250) vendorAddDate = models.DateTimeField(auto_now_add=True) vendorDeleted = models.BooleanField(default=False) vendorUpdated = models.DateTimeField(auto_now=True) vendorAddDelete = models.DateTimeField(auto_now_add=True) vendorIsActive = models.BooleanField(default=True) def __str__(self): return self.vendor def __repr__(self): return self._repr() class Meta: verbose_name = "Vendor" verbose_name_plural = "Vendors" ordering = ["-id"] class VendorsAddresses(models.Model): id = models.BigAutoField(primary_key=True) vendor = models.ForeignKey(VendorsData, default=None, on_delete=models.CASCADE) vendorid = models.ForeignKey(User, default=None, on_delete=models.CASCADE) vendorUUID = models.UUIDField() coin = models.CharField(max_length=10) address = models.CharField(max_length=250) addrAddDate = models.DateTimeField(auto_now_add=True) addrDeleted = models.BooleanField(default=False) addrUpdated = models.DateTimeField(auto_now=True) addrIsActive = models.BooleanField(default=True) def __str__(self): return self.address def __repr__(self): return self._repr() class Meta: verbose_name = "Address" verbose_name_plural = "Addresses" ordering = ["-addrAddDate"] class InvoiceCreation(models.Model): def default_currency(): return 'USD' id = models.BigAutoField(primary_key=True) invoiceVendor = models.ForeignKey(VendorsData, on_delete=models.CASCADE) invoiceVendorid = models.ForeignKey(User, on_delete=models.CASCADE) invoiceUUID = models.UUIDField(unique=True) invoiceID = models.CharField(max_length=255) invoiceAmount = models.DecimalField(max_digits=20, decimal_places=2) invoiceCoin = models.CharField(max_length=10, default=default_currency, null=False) invoiceState = models.IntegerField(default=0) invoiceBuyerEmail = models.EmailField(max_length=255, null=True) invoiceCallbackLink = models.URLField(max_length=1000) invoiceReturnLink = models.URLField(max_length=1000) invoiceDeleteLink = models.URLField(max_length=1000, null=True) invoiceDeleted = models.BooleanField(default=False) invoiceAddDate = models.DateTimeField(auto_now_add=True) invoiceUpdateDate = models.DateTimeField(auto_now=True) invoiceDeleteDate = models.DateTimeField(blank=True, null=True) def __str__(self): return str(self.invoiceUUID) def __repr__(self): return self._repr() class Meta: verbose_name = "Invoice" verbose_name_plural = "Invoices" ordering = ["-invoiceAddDate"] class ApiPaymentCreation(models.Model): id = models.BigAutoField(primary_key=True) userAddr = models.CharField(max_length=255) userUUID = models.UUIDField() userCoin = models.CharField(max_length=10) userAmount = models.DecimalField(max_digits=20, decimal_places=2) usercallbackUrl = models.URLField(max_length=1000, null=True) userIP = models.GenericIPAddressField() ourAddr = models.CharField(max_length=255) statusFlag = models.IntegerField(default=0) paidFlag = models.IntegerField(default=0) created = models.DateTimeField(auto_now_add=True) def __str__(self): return str(self.ourAddr) class Meta: verbose_name = "ApiInvoice" verbose_name_plural = "ApiInvoices" ordering = ["-id"]