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", ] class VehicleApplicationSerializer(serializers.Serializer): person_name = serializers.CharField() property_owner = serializers.CharField(max_length=100) address = serializers.CharField(max_length=255) marka = serializers.CharField(max_length=100) model = serializers.CharField(max_length=100) configuration = serializers.CharField(max_length=100) auto_number = serializers.CharField(max_length=100) date_created = serializers.DateTimeField() mileage = serializers.IntegerField() vehicle_identification = serializers.CharField(max_length=100) engine_number = serializers.CharField(max_length=100) colour = serializers.CharField(max_length=100) registration_certificate_series = serializers.CharField(max_length=100) tec_passport_number = serializers.CharField(max_length=100) tec_passport_date = serializers.DateTimeField() tec_passport_place = serializers.CharField(max_length=255) body_type = serializers.CharField(max_length=100) chassis = serializers.CharField(max_length=100) plate = serializers.CharField(max_length=100) value_type = serializers.CharField(max_length=100) evaluation_purpose = serializers.CharField(max_length=100) personal_id_number = serializers.IntegerField() id_number = serializers.CharField(max_length=9)