

from car.models import Car
from car_brand.models import CarBrand
from car_model.models import CarModel
from rest_framework import serializers

from car_brand.serializers import CarBrandSerializer
from car_model.serializers import CarModelSerializer


class CarSerializer(serializers.ModelSerializer):
    # write-only IDs for create/update
    model_id = serializers.PrimaryKeyRelatedField(
        queryset=CarModel.objects.all(), source='model', write_only=True
    )
    brand_id = serializers.PrimaryKeyRelatedField(
        queryset=CarBrand.objects.all(), source='brand', write_only=True
    )

    # read-only nested objects for responses
    model = CarModelSerializer(read_only=True)
    brand = CarBrandSerializer(read_only=True)

    class Meta:
        model = Car
        fields = [
            'id', 'customer_name', 'customer_phone', 'company', 'car_type',
            'license_plate', 'date_created',
            'model_id', 'brand_id',  # write
            'model', 'brand',        # read
        ]