from django.db import models from django.contrib.auth.models import User from django_softdelete.models import SoftDeleteModel class Province(SoftDeleteModel): code = models.CharField(max_length=2, null=False, unique=True) name = models.CharField(max_length=255, null=False) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): return self.name class RegencyCity(SoftDeleteModel): code = models.CharField(max_length=4, null=False, unique=True) name = models.CharField(max_length=255, null=False) province = models.ForeignKey(Province, on_delete=models.CASCADE, null=False) def __str__(self): return self.name class Meta: unique_together = ('code', 'province') class Location(SoftDeleteModel): name = models.CharField(max_length=255, null=False) path = models.TextField(null=True, blank=True) totem_latitude = models.DecimalField(max_digits=9, decimal_places=6, null=True, blank=True) totem_longitude = models.DecimalField(max_digits=9, decimal_places=6, null=True, blank=True) totem_code = models.CharField(max_length=50, null=True, blank=True) province = models.ForeignKey(Province, on_delete=models.SET_NULL, null=True) regency_city = models.ForeignKey(RegencyCity, on_delete=models.SET_NULL, null=True) active = models.BooleanField(default=True) def __str__(self): return f"{self.user.username} - {self.province.name if self.province else 'No Province'} - {self.regency_city.name if self.regency_city else 'No Regency/City'}"