from django.db import models from django.conf import settings import uuid from django.contrib.auth.models import User class BaseModel(models.Model): key = models.UUIDField(default=uuid.uuid4, editable=False, unique=True) create_date = models.DateTimeField(auto_now_add=True) modify_date = models.DateTimeField(auto_now=True) created_by = models.ForeignKey( settings.AUTH_USER_MODEL, related_name="%(class)s_createdby", on_delete=models.CASCADE, null=True, blank=True, ) modified_by = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="%(class)s_modifiedby", null=True, blank=True, ) trash = models.BooleanField(default=False) class Meta: abstract = True class Province(models.Model): name = models.CharField(max_length=200, null=True) tel_prefix = models.CharField(max_length=200, null=True) Lat = models.FloatField(default=0) Lng = models.FloatField(default=0) def save(self, *args, **kwargs): super(Province, self).save(*args, **kwargs) class City(models.Model): province = models.ForeignKey( Province, on_delete=models.CASCADE, related_name="city_province", null=True ) name = models.CharField(max_length=200, null=True) Lat = models.FloatField(default=0) Lng = models.FloatField(default=0) def save(self, *args, **kwargs): super(City, self).save(*args, **kwargs) class UserProfile(BaseModel): key = models.UUIDField(default=uuid.uuid4, editable=True, null=True) user = models.ForeignKey( User, on_delete=models.CASCADE, related_name="users", null=True ) fullname = models.CharField(max_length=150, null=True, default="") first_name = models.CharField(max_length=200, null=True, default="") last_name = models.CharField(max_length=200, null=True, default="") mobile = models.CharField(max_length=11, null=True, default="") password = models.CharField(max_length=100, null=True) base_order = models.BigIntegerField(null=True) def save(self, *args, **kwargs): self.fullname = self.first_name + " " + self.last_name super(UserProfile, self).save(*args, **kwargs)