Files
backend-v1/core/apps/evaluation/models/movable.py

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