i701 20db39ee55
Some checks failed
Build and Push Docker Images / Build and Push Docker Images (push) Failing after 2m14s
Fix import statement for regex module in MAC address validation
2025-04-25 15:35:57 +05:00

43 lines
1.4 KiB
Python

from django.db import models
from django.utils import timezone
from api.models import User
import re
from django.core.exceptions import ValidationError
def validate_mac_address(value):
if not re.match(r"^([0-9A-Fa-f]{2}-){5}[0-9A-Fa-f]{2}$", value):
raise ValidationError(
"This field accepts a valid MAC address in the format XX-XX-XX-XX-XX-XX using '-' as the separator."
)
return value
class Device(models.Model):
name = models.CharField(max_length=255)
mac = models.CharField(
max_length=255,
validators=[
validate_mac_address,
],
)
has_a_pending_payment = models.BooleanField(default=False)
reason_for_blocking = models.CharField(max_length=255, null=True, blank=True)
is_active = models.BooleanField(default=False)
registered = models.BooleanField(default=False)
blocked = models.BooleanField(default=False)
blocked_by = models.CharField(
max_length=255,
choices=[("ADMIN", "Admin"), ("PARENT", "Parent")],
default="PARENT",
)
expiry_date = models.DateTimeField(null=True, blank=True)
created_at = models.DateTimeField(default=timezone.now)
updated_at = models.DateTimeField(auto_now=True)
user = models.ForeignKey(
User, on_delete=models.SET_NULL, null=True, blank=True, related_name="devices"
)
def __str__(self):
return self.name