from django.db import models from django.utils import timezone class Lead(models.Model): name = models.CharField(max_length=100) email = models.EmailField() company = models.CharField(max_length=100) lead_source = models.CharField(max_length=50, choices=[ ('website', 'Website'), ('referral', 'Referral'), ('event', 'Event'), ('other', 'Other'), ]) score = models.IntegerField(default=0) def calculate_lead_score(self): score = 0 if self.lead_source == 'website': score += 10 elif self.lead_source == 'referral': score += 20 elif self.lead_source == 'event': score += 15 # Add more scoring logic based on other factors return score def save(self, *args, **kwargs): self.score = self.calculate_lead_score() super().save(*args, **kwargs) def __str__(self): return self.name class ImportLog(models.Model): timestamp = models.DateTimeField(default=timezone.now) file_name = models.CharField(max_length=255) total_records = models.IntegerField() imported_records = models.IntegerField() failed_records = models.IntegerField() error_log = models.TextField(blank=True) def __str__(self): return f"Import on {self.timestamp} - {self.file_name}" class IDSData(models.Model): business_name = models.CharField(max_length=1000) business_uuid = models.UUIDField() location_uuid = models.UUIDField() yib = models.CharField(max_length=1000, blank=True, null=True) # Year in Business gbp_business_category = models.CharField(max_length=1000) gbp_matching_service = models.CharField(max_length=1000, blank=True, null=True) gbp_review_rating = models.FloatField(null=True, blank=True) gbp_review_count = models.IntegerField(null=True, blank=True) gbp_industry_avg_review_rating = models.FloatField(null=True, blank=True) gbp_industry_avg_review_count = models.FloatField(null=True, blank=True) gbp_review_rating_offset = models.FloatField(null=True, blank=True) gbp_review_count_offset = models.FloatField(null=True, blank=True) gbp_review_rating_health = models.CharField(max_length=1000, blank=True, null=True) gbp_review_count_health = models.CharField(max_length=1000, blank=True, null=True) gbp_location_municipality = models.CharField(max_length=1000) gbp_location_state = models.CharField(max_length=1000) location_from_gbp_business_name = models.CharField(max_length=1000, blank=True, null=True) gbp_business_phone = models.CharField(max_length=1000, blank=True, null=True) gbp_business_website = models.URLField(max_length=1000, blank=True, null=True) root_domain = models.CharField(max_length=1000, blank=True, null=True) md5_for_scrape = models.CharField(max_length=1000) services_reputation_management = models.BooleanField(default=False) services_gbp_optimization = models.BooleanField(default=False) services_needs_website = models.BooleanField(default=False) def __str__(self): return self.business_name