Files
project-managment/src/external/models.py
T
sankalp 51ad3809dd feat(external): add index to ExternalAccess for project and is_active
Improves query performance on project and is_active lookups.
2026-06-28 15:59:55 +05:45

40 lines
1.1 KiB
Python

import secrets
import string
from django.db import models
def generate_access_token():
return secrets.token_hex(16)
def generate_access_password():
return "".join(
secrets.choice(string.ascii_letters + string.digits) for _ in range(8)
)
class ExternalAccess(models.Model):
project = models.ForeignKey(
"projects.Project", on_delete=models.CASCADE, related_name="external_accesses"
)
access_token = models.CharField(
max_length=255, unique=True, default=generate_access_token
)
password = models.CharField(max_length=255, default=generate_access_password)
is_active = models.BooleanField(default=True)
last_accessed_at = models.DateTimeField(blank=True, null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
db_table = "external_access"
verbose_name = "External Access"
verbose_name_plural = "External Accesses"
indexes = [
models.Index(fields=["project", "is_active"]),
]
def __str__(self):
return f"ExternalAccess for {self.project.name}"