from django.db import models from membership.models import CustomUser from .fields import CountryField # Create your models here. class BaseBillingAddress(models.Model): cardholder_name = models.CharField(max_length=100, default="") street_address = models.CharField(max_length=100) city = models.CharField(max_length=50) postal_code = models.CharField(max_length=50) country = CountryField() vat_number = models.CharField(max_length=100, default="", blank=True) stripe_tax_id = models.CharField(max_length=100, default="", blank=True) vat_number_validated_on = models.DateTimeField(blank=True, null=True) vat_validation_status = models.CharField(max_length=25, default="", blank=True) class Meta: abstract = True class BillingAddress(BaseBillingAddress): def __str__(self): if self.vat_number: return "%s, %s, %s, %s, %s, %s %s %s %s" % ( self.cardholder_name, self.street_address, self.city, self.postal_code, self.country, self.vat_number, self.stripe_tax_id, self.vat_number_validated_on, self.vat_validation_status ) else: return "%s, %s, %s, %s, %s" % ( self.cardholder_name, self.street_address, self.city, self.postal_code, self.country ) class UserBillingAddress(BaseBillingAddress): user = models.ForeignKey(CustomUser, related_name='billing_addresses', on_delete=models.CASCADE) current = models.BooleanField(default=True) def __str__(self): if self.vat_number: return "%s, %s, %s, %s, %s, %s %s %s %s" % ( self.cardholder_name, self.street_address, self.city, self.postal_code, self.country, self.vat_number, self.stripe_tax_id, self.vat_number_validated_on, self.vat_validation_status ) else: return "%s, %s, %s, %s, %s" % ( self.cardholder_name, self.street_address, self.city, self.postal_code, self.country ) def to_dict(self): return { 'Cardholder Name': self.cardholder_name, 'Street Address': self.street_address, 'City': self.city, 'Postal Code': self.postal_code, 'Country': self.country, 'VAT Number': self.vat_number } class ContactMessage(models.Model): name = models.CharField(max_length=200) email = models.EmailField() phone_number = models.CharField(max_length=200, blank=True) message = models.TextField() received_date = models.DateTimeField(auto_now_add=True) def __str__(self): return "%s - %s - %s" % (self.name, self.email, self.received_date)