from django.contrib.auth import get_user_model from django.db import models from utils.base_model import BaseModel from apps.appsetting.models import City as CityModel from apps.projectcode.models import ProjectCode as ProjectCodeModel # Create your models here. CUserModel = get_user_model() class Project(BaseModel): status_choices = [ ('AwaitComp', 'Awaiting completion'), ('waiting', 'Waiting'), ('approved', 'Approved'), ('rejected', 'Rejected'), ] cuser = models.ForeignKey(CUserModel, on_delete=models.CASCADE, null=False, blank=False, related_name='mojri_projects') city = models.ForeignKey(CityModel, on_delete=models.SET_NULL, null=True, blank=True) address = models.CharField(max_length=200, null=False, blank=False) zirbana = models.PositiveIntegerField(null=True, blank=True, default=0) tabaghat = models.PositiveIntegerField(null=True, blank=True, default=0) vahed = models.PositiveIntegerField(null=True, blank=True, default=0) factor_price = models.PositiveBigIntegerField(null=False, blank=False) seller_name = models.CharField(max_length=50, null=True, blank=True) seller_mobile = models.PositiveBigIntegerField(null=True, blank=True) seller_address = models.CharField(max_length=200, null=True, blank=True) status = models.CharField(max_length=10, choices=status_choices, default='AwaitComp') op_cuser = models.ForeignKey(CUserModel, on_delete=models.SET_NULL, null=True, blank=True, related_name='projects') ax_factor = models.ImageField(upload_to='project-factor/', null=True, blank=True) emtiyaz = models.IntegerField(null=True, blank=True) projectcode = models.ForeignKey(ProjectCodeModel, on_delete=models.SET_NULL, null=True, blank=True) def __str__(self): return f'{self.cuser.name_family} - {self.city.name}' class Meta: ordering = ['-created_at'] class ProjectImage(BaseModel): project = models.ForeignKey(Project, models.CASCADE, null=False, blank=False, related_name='project_image') image = models.ImageField(upload_to='media/project/', null=False, blank=False)