# pharmacies_app/serializers.py

from rest_framework import serializers
from .models import Ville, Pharmacie


class VilleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Ville
        fields = '__all__'  # Inclut tous les champs du modèle Ville
        read_only_fields = ['nombreTotalDePharmacies',
                            'nombreTotalDePharmaciesOuvertes',
                            'nombreTotalDePharmaciesDeGarde']  # Ces champs sont gérés automatiquement


class PharmacieSerializer(serializers.ModelSerializer):
    # Pour afficher le nom de la ville au lieu de son ID lors de la lecture
    ville_nom = serializers.CharField(source='villePharmacie.nomVille', read_only=True)

    class Meta:
        model = Pharmacie
        # Utilisez '__all__' si vous voulez tous les champs, ou une liste spécifique
        fields = [
            'id', 'nomPharmacie', 'adressePharmacie', 'villePharmacie', 'ville_nom', 'quartierPharmacie',
            'codePostalPharmacie',
            'estDeGarde', 'estOuvert', 'telephonePharmacie', 'emailPharmacie', 'siteWebPharmacie',
            'latitudePharmacie', 'longitudePharmacie', 'photoUrlPharmacie'
        ]
        # Assurez-vous que 'ville' est writable pour pouvoir lier une pharmacie à une ville existante
        extra_kwargs = {
            'villePharmacie': {'write_only': True}  # 'ville' est utilisé pour l'écriture (ID de la ville)
        }
