| from django.contrib.auth.models import AbstractUser |
| from django.db import models |
|
|
| class User(AbstractUser): |
| |
|
|
| email = models.EmailField(unique=True) |
| fullname = models.CharField(max_length=120) |
| phone = models.CharField(max_length=32, blank=True) |
| address = models.CharField(max_length=256, blank=True) |
| is_admin = models.BooleanField(default=False) |
| created_at = models.DateTimeField(auto_now_add=True) |
|
|
| USERNAME_FIELD = "email" |
| REQUIRED_FIELDS = [] |
|
|
| def __str__(self): |
| return self.email |
|
|
|
|
|
|
| class OTP(models.Model): |
| email = models.EmailField() |
| code = models.CharField(max_length=8) |
| created_at = models.DateTimeField(auto_now_add=True) |
| expires_at = models.DateTimeField() |
|
|
| def __str__(self): |
| return f"{self.email} - {self.code}" |
|
|
|
|
| class ChatMessage(models.Model): |
| user = models.ForeignKey(User, null=True, on_delete=models.SET_NULL) |
| username = models.CharField(max_length=120) |
| address = models.CharField(max_length=256, blank=True) |
| order_id = models.CharField(max_length=64, null=True, blank=True) |
| message = models.TextField() |
| category = models.CharField(max_length=120) |
| sentiment = models.CharField(max_length=32) |
| status = models.CharField(max_length=32, default="Pending") |
| created_at = models.DateTimeField(auto_now_add=True) |
|
|
| def __str__(self): |
| return self.message[:40] |
|
|