from django.db import models class Customer(models.Model): telegram_id = models.IntegerField() chat_id = models.IntegerField() username = models.CharField(max_length=64) created_at = models.DateTimeField(auto_now_add=True) objects = models.Manager() def __str__(self): return self.username class Meta: db_table = "customers" class JobTitle(models.Model): title = models.CharField(max_length=255, unique=True) def __str__(self): return self.title class CustomerCV(models.Model): customer = models.OneToOneField(Customer, on_delete=models.CASCADE) job_titles = models.ManyToManyField(JobTitle, related_name="vacancies") min_salary_rub = models.PositiveIntegerField(null=True, blank=True, default=None) max_salary_rub = models.PositiveIntegerField(null=True, blank=True, default=None) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) objects = models.Manager() def __str__(self): return self.customer.username class Meta: db_table = "customer_vcs" class Vacancy(models.Model): job_title = models.ForeignKey(JobTitle, on_delete=models.CASCADE) external_id = models.CharField(max_length=255, unique=True) min_salary_rub = models.PositiveIntegerField(null=True, blank=True, default=None) max_salary_rub = models.PositiveIntegerField(null=True, blank=True, default=None) content = models.TextField() timestamp = models.DateTimeField() link = models.URLField() def __str__(self): return self.job_title.title class RecommendedVacancy(models.Model): customer = models.ForeignKey(Customer, on_delete=models.CASCADE, related_name="recommended_vacancies") vacancy = models.ForeignKey(Vacancy, on_delete=models.CASCADE, related_name="recommended_vacancies") created_at = models.DateTimeField(auto_now_add=True) objects = models.Manager() def __str__(self): return f'{self.customer.username} -> {self.vacancy_id}' class Meta: verbose_name_plural = 'Recommended Vacancies' db_table = "recommended_vacancies"