from django.conf import settings from django.db import models from django.utils.translation import gettext_lazy as _ from django_core.models import AbstractBaseModel from model_bakery import baker from core.apps.evaluation.choices.request import ( EvaluationRateType, RequestObjectType, RequestStatus, ) class EvaluationrequestModel(AbstractBaseModel): user = models.ForeignKey( "accounts.User", on_delete=models.CASCADE, related_name="evaluation_requests", verbose_name=_("user"), ) rate_type = models.CharField( verbose_name=_("rate type"), max_length=50, choices=EvaluationRateType.choices, ) object_type = models.CharField( verbose_name=_("object type"), max_length=50, choices=RequestObjectType.choices, blank=True, null=True, ) customer_inn_number = models.CharField( verbose_name=_("customer INN number"), max_length=20, ) owner_inn_number = models.CharField( verbose_name=_("owner INN number"), max_length=20, ) tex_passport = models.CharField( verbose_name=_("tex passport"), max_length=20, blank=True, null=True, ) value_determined = models.CharField( verbose_name=_("value determined"), max_length=100, ) rate_goal = models.CharField( verbose_name=_("rate goal"), max_length=100, ) property_rights = models.CharField( verbose_name=_("property rights"), max_length=100, ) form_ownership = models.CharField( verbose_name=_("form ownership"), max_length=100, ) worked_hours = models.IntegerField( verbose_name=_("worked hours"), blank=True, null=True, ) chassi = models.CharField( verbose_name=_("chassi"), max_length=100, blank=True, null=True, ) need_delivering = models.BooleanField( verbose_name=_("need delivering"), default=True, ) location_name = models.CharField( verbose_name=_("location name"), max_length=255, blank=True, null=True, ) location_lat = models.DecimalField( verbose_name=_("location latitude"), max_digits=9, decimal_places=6, blank=True, null=True, ) location_lng = models.DecimalField( verbose_name=_("location longitude"), max_digits=9, decimal_places=6, blank=True, null=True, ) status = models.CharField( verbose_name=_("status"), max_length=50, choices=RequestStatus.choices, default=RequestStatus.PENDING, ) def __str__(self): return f"Request #{self.pk} — {self.get_rate_type_display()}" @classmethod def _baker(cls): user = baker.make(settings.AUTH_USER_MODEL) return baker.make( cls, user=user, rate_type=EvaluationRateType.AUTO, customer_inn_number="123456789", owner_inn_number="987654321", value_determined="Bozor qiymati", rate_goal="Kredit uchun", property_rights="Xususiy", form_ownership="Xususiy", ) class Meta: db_table = "EvaluationRequest" verbose_name = _("Evaluation Request") verbose_name_plural = _("Evaluation Requests")