from controle.models import Cidade, Email, Endereco, Estado, Notas, Pessoa, Telefone from rest_framework import serializers # Serializers define the API representation. class EstadoSerializer(serializers.ModelSerializer): class Meta: model = Estado fields = '__all__' class CidadeSerializer(serializers.HyperlinkedModelSerializer): id = serializers.IntegerField() url = serializers.HyperlinkedIdentityField( view_name="controle:cidade-detail") estado = serializers.HyperlinkedRelatedField( read_only=True, view_name="controle:estado-detail") label = serializers.ReadOnlyField() class Meta: model = Cidade fields = '__all__' class NestedEnderecosSerializer(serializers.ModelSerializer): id = serializers.IntegerField(required=False) class Meta: model = Endereco fields = '__all__' read_only_fields = ['pessoa'] class NestedTelefonesSerializer(serializers.ModelSerializer): id = serializers.IntegerField(required=False) class Meta: model = Telefone fields = '__all__' read_only_fields = ['pessoa'] class NestedEmailsSerializer(serializers.ModelSerializer): id = serializers.IntegerField(required=False) class Meta: model = Email fields = '__all__' read_only_fields = ['pessoa'] class NestedNotasSerializer(serializers.ModelSerializer): id = serializers.IntegerField(required=False) class Meta: model = Notas fields = '__all__' read_only_fields = ['pessoa'] class PessoaSerializer(serializers.ModelSerializer): enderecos = NestedEnderecosSerializer(many=True, required=False) telefones = NestedTelefonesSerializer(many=True, required=False) emails = NestedEmailsSerializer(many=True, required=False) notas = NestedNotasSerializer(many=True, required=False) label = serializers.ReadOnlyField() class Meta: model = Pessoa fields = '__all__'