from enum import Enum

from rest_framework import serializers


class AssignmentState(str, Enum):
    """ état d'affectation BMOB (lié au changement de BMOB) """

    # reste dans la même FE
    RESTANT = 'RESTANT'

    # entre dans une FE du périmètre du PCP
    ENTRANT = 'ENTRANT'

    # sort d'une FE du périmètre du PCP
    SORTANT = 'SORTANT'

    # ENTRANT + SORTANT (mais pas RESTANT car ce n'est pas la même FE)
    ENTRANT_SORTANT = 'ENTRANT_SORTANT'

    def __repr__(self):
        return "%s.%s" % (self.__class__.__name__, self._name_)


class ChoicesSerializer(serializers.Serializer):
    """ Représente un élément qui hérite de Choices sous forme {code, libelle} """

    code = serializers.ReadOnlyField(source='value')
    libelle = serializers.ReadOnlyField(source='label')
