from django.db import models from django.contrib.auth.models import User # Create your models here. class Job(models.Model): title = models.CharField(max_length=255) description_en = models.TextField() description_ar = models.TextField() is_published = models.BooleanField(default=False) posted_to_linkedin = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): return self.title class Candidate(models.Model): job = models.ForeignKey(Job, on_delete=models.CASCADE, related_name='candidates') name = models.CharField(max_length=255) email = models.EmailField() resume = models.FileField(upload_to='resumes/') parsed_summary = models.TextField(blank=True) applied = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): return self.name class TrainingMaterial(models.Model): title = models.CharField(max_length=255) content = models.TextField(blank=True) video_link = models.URLField(blank=True) file = models.FileField(upload_to='training_materials/', blank=True) created_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): return self.title class ZoomMeeting(models.Model): # Basic meeting details topic = models.CharField(max_length=255) meeting_id = models.CharField(max_length=20, unique=True) # Unique identifier for the meeting start_time = models.DateTimeField() duration = models.PositiveIntegerField() # Duration in minutes timezone = models.CharField(max_length=50) join_url = models.URLField() # URL for participants to join password = models.CharField(max_length=50, blank=True, null=True) # Host information host_email = models.EmailField() # Status STATUS_CHOICES = [ ('waiting', 'Waiting'), ('started', 'Started'), ('ended', 'Ended'), ] status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='waiting') # Settings host_video = models.BooleanField(default=True) participant_video = models.BooleanField(default=True) join_before_host = models.BooleanField(default=False) mute_upon_entry = models.BooleanField(default=False) waiting_room = models.BooleanField(default=False) zoom_gateway_response = models.JSONField(blank=True, null=True) # Timestamps created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): return self.topic