from rest_framework import serializers
from .models import Persona, Contacto, Comuna, Region


class ComunaSerializer(serializers.ModelSerializer):
    class Meta:
        model = Comuna
        fields = '__all__'

class RegionSerializer(serializers.ModelSerializer):
    comunas = ComunaSerializer(many=True, read_only=True)

    class Meta:
        model = Region
        fields = ['codigo', 'nombre', 'comunas']
        


class ContactoSerializer(serializers.ModelSerializer):
    class Meta:
        model = Contacto
        fields = '__all__'


class PersonaSerializer(serializers.ModelSerializer):
    contactos = ContactoSerializer(many=True, read_only=True)
    comuna_nombre = serializers.CharField(source='comuna.nombre', read_only=True)
    region_nombre = serializers.CharField(source='comuna.region.nombre', read_only=True)

    class Meta:
        model = Persona
        fields = [field.name for field in Persona._meta.fields] + ['comuna_nombre', 'region_nombre', 'contactos']

