Files
backend-v1/core/apps/evaluation/serializers/vehicle/Vehicle.py
Husanjonazamov 5c2fe032d0 feat(auto-evaluation): to'liq CRUD API va 4 bosqichli forma qo'shildi
- 10 ta yangi choice klass qo'shildi: ObjectOwnerType, PropertyRights,
  FormOwnership, LocationHighways, LocationConvenience, AutoCarType, AutoCarWheel
- AutoEvaluationModel ga ~30 ta yangi field qo'shildi (4 bosqich):
  1-bosqich: ro'yxatga olish raqami, sanalar, ob'ekt turi
  2-bosqich: egasi ma'lumotlari (jismoniy/yuridik), mulk huquqi, egalik shakli
  3-bosqich: manzil (viloyat, tuman, shahar, mahalla, ko'cha, uy)
  4-bosqich: avtomobil (tex passport, marka, model, raqam, rang, dvigatel)
- CreateSerializer ga validatsiya qo'shildi:
  passport formati (AA 1234567), tex passport formati (AAA 1234567),
  egasi turiga qarab majburiy fieldlar (jismoniy yoki yuridik)
- View ReadOnlyModelViewSet dan ModelViewSet ga o'zgartirildi
- Admin 4 bosqichli fieldset bilan yangilandi
- Yangi filterlar: object_owner_type, property_rights, form_ownership
- VehicleModel fieldlari FK → ReferenceitemModel ga o'tkazildi
- Migratsiyalar: 0015, 0016, 0017
2026-03-10 12:10:28 +05:00

90 lines
2.7 KiB
Python

from rest_framework import serializers
from core.apps.evaluation.models import VehicleModel
class BaseVehicleSerializer(serializers.ModelSerializer):
brand_name = serializers.CharField(source="brand.name", read_only=True, default=None)
model_name = serializers.CharField(source="model.name", read_only=True, default=None)
color_name = serializers.CharField(source="color.name", read_only=True, default=None)
fuel_type_name = serializers.CharField(source="fuel_type.name", read_only=True, default=None)
body_type_name = serializers.CharField(source="body_type.name", read_only=True, default=None)
condition_display = serializers.CharField(source="get_condition_display", read_only=True)
position_name = serializers.CharField(source="position.name", read_only=True, default=None)
class Meta:
model = VehicleModel
fields = [
"id",
"brand",
"brand_name",
"model",
"model_name",
"license_plate",
"manufacture_year",
"color",
"color_name",
"fuel_type_name",
"condition_display",
]
class ListVehicleSerializer(BaseVehicleSerializer):
class Meta(BaseVehicleSerializer.Meta):
pass
class RetrieveVehicleSerializer(BaseVehicleSerializer):
class Meta(BaseVehicleSerializer.Meta):
fields = [
"id",
"tech_passport_series",
"tech_passport_number",
"tech_passport_issued_date",
"tech_passport_issued_by",
"license_plate",
"brand",
"brand_name",
"model",
"model_name",
"manufacture_year",
"vin_number",
"engine_number",
"color",
"color_name",
"mileage",
"fuel_type",
"fuel_type_name",
"body_type",
"body_type_name",
"condition",
"condition_display",
"position",
"position_name",
"created_at",
"updated_at",
]
class CreateVehicleSerializer(serializers.ModelSerializer):
class Meta:
model = VehicleModel
fields = [
"tech_passport_series",
"tech_passport_number",
"tech_passport_issued_date",
"tech_passport_issued_by",
"license_plate",
"brand",
"model",
"manufacture_year",
"vin_number",
"engine_number",
"color",
"mileage",
"fuel_type",
"body_type",
"condition",
"position",
]