Files
api-bashgah/apps/project/models.py
T
2026-06-15 10:57:28 +03:30

44 lines
2.1 KiB
Python

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)