Files
sarlink-portal-api/devices/models.py
i701 1554829b9a
All checks were successful
Build and Push Docker Images / Build and Push Docker Images (push) Successful in 4m42s
feat(wallet): implement wallet transaction model, views, and serializers for fund management
2025-07-25 14:38:34 +05:00

48 lines
1.5 KiB
Python

from django.db import models
from django.utils import timezone
import re
from django.core.exceptions import ValidationError
from django.conf import settings
user = settings.AUTH_USER_MODEL
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,
],
)
vendor = models.CharField(max_length=255, null=True, blank=True, default="")
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=None,
blank=True,
null=True,
)
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