from django.contrib.auth.models import AbstractUser
from django.db import models
from django.utils import timezone
from datetime import timedelta



class User(AbstractUser):
    
    ROLE_CHOICES = (
        ('ADMIN', 'Admin'),
        ('MANAGER', 'Manager'),
        ('CHEF', 'Chef'),
        ('DRIVER', 'driver'),
        ('CUSTOMER', 'Customer'),
    )

    role= models.CharField(max_length=20, choices=ROLE_CHOICES, default='Customer')


    phone_number = models.CharField(max_length=20, blank=True, null=True)
    building = models.TextField(blank=True, null=True)
    office= models.TextField(blank=True, null=True)
    employee_id = models.CharField(max_length=50, blank=True, null=True)
    employee_id_image = models.ImageField(
        upload_to='empid/',
        blank=True,
        null=True
    )
    is_approved = models.BooleanField(default=False) 

    def __str__(self):
        return self.username
class PasswordResetOTP(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    otp = models.CharField(max_length=6)
    created_at = models.DateTimeField(auto_now_add=True)

    def is_expired(self):
        return timezone.now() > self.created_at + timedelta(minutes=2)

    def __str__(self):
        return f"{self.user.email} - {self.otp}"
