11from rest_framework import serializers
22
33from domain .entities .offer import Offer
4+ from domain .interfaces .mapper_interface import ISerializerToDomainMapper
45from domain .value_objects .area import GeographicalArea
56from domain .value_objects .category import Category
67from domain .value_objects .contract_type import ContractKind , ContractType
@@ -103,7 +104,7 @@ class DescriptionInputSerializer(serializers.Serializer):
103104 additionnal = serializers .CharField (max_length = 1500 , allow_blank = True )
104105
105106
106- class LocalisationInputSerializer (serializers .Serializer ):
107+ class LocalisationInputSerializer (serializers .Serializer , ISerializerToDomainMapper ):
107108 area_code = serializers .ChoiceField (
108109 choices = [(a .name , a .value ) for a in GeographicalArea ]
109110 )
@@ -127,6 +128,9 @@ def validate(self, data):
127128 )
128129 return data
129130
131+ def to_domain (self ) -> Localisation :
132+ return self .to_domain_from_validated (self .validated_data )
133+
130134 @staticmethod
131135 def to_domain_from_validated (data : dict ) -> Localisation :
132136 return Localisation (
@@ -188,7 +192,7 @@ class PublicationInputSerializer(serializers.Serializer):
188192 vacancy_start_date = serializers .DateTimeField (allow_null = True )
189193
190194
191- class OffersInputSerializer (serializers .Serializer ):
195+ class OffersInputSerializer (serializers .Serializer , ISerializerToDomainMapper ):
192196 identity = IdentityInputSerializer ()
193197
194198 # general infos
0 commit comments