Files
backend-v1/core/apps/evaluation/models/real_estate.py
2026-03-02 12:31:16 +05:00

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")