2026-05-13 00:41:18 +03:30
|
|
|
from django.db import models
|
2026-05-13 05:07:13 +03:30
|
|
|
from config.settings import AUTH_USER_MODEL
|
2026-05-13 16:46:50 +03:30
|
|
|
from django.urls import reverse
|
2026-05-13 00:41:18 +03:30
|
|
|
|
|
|
|
|
class Province(models.Model):
|
|
|
|
|
province_id = models.IntegerField(primary_key=True)
|
|
|
|
|
province_name = models.CharField(max_length=255)
|
|
|
|
|
|
|
|
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
|
|
|
updated_at = models.DateTimeField(auto_now=True)
|
|
|
|
|
|
|
|
|
|
def __str__(self) -> str:
|
2026-05-13 05:07:13 +03:30
|
|
|
return f"{self.province_id}: {self.province_name}"
|
2026-05-13 00:41:18 +03:30
|
|
|
|
|
|
|
|
class City(models.Model):
|
|
|
|
|
province = models.ForeignKey("Province", on_delete=models.CASCADE, related_name="city")
|
2026-05-13 05:07:13 +03:30
|
|
|
city_local_id = models.CharField(max_length=3, null=True, blank=True)
|
2026-05-13 00:41:18 +03:30
|
|
|
city_name = models.CharField(max_length=255)
|
|
|
|
|
|
|
|
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
|
|
|
updated_at = models.DateTimeField(auto_now=True)
|
|
|
|
|
|
|
|
|
|
def __str__(self) -> str:
|
2026-05-13 05:07:13 +03:30
|
|
|
return f"{self.city_local_id}: {self.city_name}"
|
2026-05-13 00:41:18 +03:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Address(models.Model):
|
2026-05-13 05:07:13 +03:30
|
|
|
user = models.ForeignKey(AUTH_USER_MODEL, on_delete=models.CASCADE)
|
2026-05-13 00:41:18 +03:30
|
|
|
province = models.ForeignKey("Province", on_delete=models.CASCADE, related_name="province")
|
|
|
|
|
city = models.ForeignKey("City", on_delete=models.CASCADE, related_name="city")
|
2026-05-13 05:07:13 +03:30
|
|
|
postal_code = models.CharField(max_length=15, null=True)
|
2026-05-13 00:41:18 +03:30
|
|
|
address_detail = models.TextField()
|
|
|
|
|
|
|
|
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
|
|
|
updated_at = models.DateTimeField(auto_now=True)
|
|
|
|
|
|
|
|
|
|
def __str__(self) -> str:
|
|
|
|
|
return f"{self.address_detail[:10]}..."
|
2026-05-13 16:46:50 +03:30
|
|
|
|
|
|
|
|
def get_absolute_relative_url(self):
|
|
|
|
|
return reverse("addresses:address-api-urls:address-viewset-detail", kwargs={"pk": self.pk})
|