55 lines
1.7 KiB
Python
55 lines
1.7 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.movable import (
|
|
MovablePropertyCategory,
|
|
MovablePropertyCondition,
|
|
)
|
|
|
|
|
|
class MovablePropertyEvaluationModel(AbstractBaseModel):
|
|
valuation = models.OneToOneField(
|
|
ValuationModel,
|
|
on_delete=models.CASCADE,
|
|
related_name="movable_property_detail",
|
|
verbose_name=_("valuation"),
|
|
)
|
|
property_name = models.CharField(verbose_name=_("property name"), max_length=255)
|
|
property_category = models.CharField(
|
|
verbose_name=_("property category"),
|
|
max_length=50,
|
|
choices=MovablePropertyCategory.choices,
|
|
default=MovablePropertyCategory.OTHER,
|
|
)
|
|
serial_number = models.CharField(
|
|
verbose_name=_("serial number"), max_length=100, blank=True, null=True
|
|
)
|
|
manufacture_year = models.IntegerField(
|
|
verbose_name=_("manufacture year"), blank=True, null=True
|
|
)
|
|
condition = models.CharField(
|
|
verbose_name=_("condition"),
|
|
max_length=50,
|
|
choices=MovablePropertyCondition.choices,
|
|
blank=True,
|
|
null=True,
|
|
)
|
|
quantity = models.IntegerField(verbose_name=_("quantity"), default=1)
|
|
|
|
def __str__(self):
|
|
return f"Movable Property Evaluation: {self.property_name} ({self.valuation})"
|
|
|
|
@classmethod
|
|
def _baker(cls):
|
|
return baker.make(cls)
|
|
|
|
class Meta:
|
|
db_table = "MovablePropertyEvaluation"
|
|
verbose_name = _("Movable Property Evaluation")
|
|
verbose_name_plural = _("Movable Property Evaluations")
|
|
|