69 lines
2.1 KiB
Python
69 lines
2.1 KiB
Python
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 .valuation import ValuationModel
|
|
from core.apps.evaluation.choices.real_estate import PropertyType, RealEstateCondition
|
|
|
|
|
|
|
|
class RealEstateEvaluationModel(AbstractBaseModel):
|
|
valuation = models.OneToOneField(
|
|
"evaluation.ValuationModel",
|
|
on_delete=models.CASCADE,
|
|
related_name="real_estate_detail",
|
|
verbose_name=_("valuation"),
|
|
)
|
|
|
|
property_type = models.CharField(
|
|
verbose_name=_("property type"),
|
|
max_length=50,
|
|
choices=PropertyType.choices,
|
|
default=PropertyType.APARTMENT,
|
|
)
|
|
address = models.TextField(verbose_name=_("address"))
|
|
cadastral_number = models.CharField(
|
|
verbose_name=_("cadastral number"), max_length=50, blank=True, null=True
|
|
)
|
|
total_area = models.DecimalField(
|
|
verbose_name=_("total area"), max_digits=12, decimal_places=2
|
|
)
|
|
living_area = models.DecimalField(
|
|
verbose_name=_("living area"),
|
|
max_digits=12,
|
|
decimal_places=2,
|
|
blank=True,
|
|
null=True,
|
|
)
|
|
floor = models.IntegerField(verbose_name=_("floor"), blank=True, null=True)
|
|
total_floors = models.IntegerField(
|
|
verbose_name=_("total floors"), blank=True, null=True
|
|
)
|
|
rooms_count = models.IntegerField(
|
|
verbose_name=_("rooms count"), blank=True, null=True
|
|
)
|
|
build_year = models.IntegerField(verbose_name=_("build year"), blank=True, null=True)
|
|
condition = models.CharField(
|
|
verbose_name=_("condition"),
|
|
max_length=50,
|
|
choices=RealEstateCondition.choices,
|
|
blank=True,
|
|
null=True,
|
|
)
|
|
has_renovation = models.BooleanField(verbose_name=_("has renovation"), default=False)
|
|
|
|
def __str__(self):
|
|
return f"Real Estate Evaluation for {self.valuation}"
|
|
|
|
@classmethod
|
|
def _baker(cls):
|
|
return baker.make(cls)
|
|
|
|
class Meta:
|
|
db_table = "RealEstateEvaluation"
|
|
verbose_name = _("Real Estate Evaluation")
|
|
verbose_name_plural = _("Real Estate Evaluations")
|
|
|