from django.db import models # Create your models here. #from django.contrib.auth.models import User from django.db import models from django.conf import settings class Profile(models.Model): ROLE_CHOICES = [ ('Application Admin', 'Application Admin'), ('Application Designer', 'Application Designer'), ('Database Admin', 'Database Admin'), ('PMO Admin', 'PMO Admin'), ('Program Manager', 'Program Manager'), ('Project Manager', 'Project Manager'), ('Project Coordinator', 'Project Coordinator'), ('Project User', 'Project User'), ('Project Initiator', 'Project Initiator'), ] # user = models.OneToOneField(User, on_delete=models.CASCADE) role = models.CharField(max_length=50, choices=ROLE_CHOICES) def __str__(self): return f"{self.user.username} - {self.role}" class Project(models.Model): name = models.CharField(max_length=255) description = models.TextField() initiator = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='initiated_projects') manager = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, blank=True, related_name='managed_projects') created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): return self.name class Task(models.Model): project = models.ForeignKey(Project, on_delete=models.CASCADE, related_name='tasks') name = models.CharField(max_length=255) description = models.TextField(blank=True) status = models.CharField(max_length=50, choices=[('todo', 'To Do'), ('in_progress', 'In Progress'), ('done', 'Done')], default='todo') created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): return self.name