from django.contrib.auth.models import AbstractUser from django.db import models class User(AbstractUser): USER_TYPE_CHOICES = ( ("student", "Student"), ("teacher", "Teacher"), ("client", "Client"), ("admin", "Admin"), ) user_type = models.CharField(max_length=10, choices=USER_TYPE_CHOICES, default="student") class Student(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True) def __str__(self): return self.user.username class Teacher(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True) skills = models.TextField(blank=True) hourly_rate = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True) daily_rate = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True) def __str__(self): return self.user.username class Client(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True) company_name = models.CharField(max_length=255, blank=True) def __str__(self): return self.user.username