Coverage for users\serializers\client.py: 94%

16 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-10-13 15:18 +0200

1""" 

2Sérialiseur pour le profil client. 

3 

4Ce module définit la sérialisation/désérialisation des objets ClientProfile 

5pour l'API REST. 

6""" 

7 

8from rest_framework import serializers 

9from users.models.client import ClientProfile 

10from users.serializers import UserSerializer 

11 

12 

13class ClientSerializer(serializers.ModelSerializer): 

14 """ 

15 Sérialiseur pour le modèle ClientProfile. 

16 

17 :ivar id: Identifiant unique du profil client (lecture seule) 

18 :vartype id: int 

19 :ivar user: Utilisateur associé au profil client (lecture seule) 

20 :vartype user: User 

21 :ivar nom: Nom de famille du client 

22 :vartype nom: str 

23 :ivar prenom: Prénom du client 

24 :vartype prenom: str 

25 :ivar telephone: Numéro de téléphone du client 

26 :vartype telephone: str 

27 """ 

28 class Meta: 

29 model = ClientProfile 

30 fields = ['id', 'user', 'nom', 'prenom', 'telephone'] 

31 read_only_fields = ['id', 'user'] 

32 

33 def create(self, validated_data): 

34 """ 

35 Crée un nouveau profil client. 

36 

37 :param validated_data: Données validées du serializer 

38 :type validated_data: dict 

39 :return: Instance ClientProfile créée 

40 :rtype: ClientProfile 

41 """ 

42 return super().create(validated_data) 

43 

44 

45class ClientFullSerializer(serializers.ModelSerializer): 

46 """ 

47 Sérialiseur pour le modèle ClientProfile. 

48 

49 :ivar id: Identifiant unique du profil client (lecture seule) 

50 :vartype id: int 

51 :ivar user: Utilisateur associé au profil client (lecture seule) 

52 :vartype user: User 

53 :ivar nom: Nom de famille du client 

54 :vartype nom: str 

55 :ivar prenom: Prénom du client 

56 :vartype prenom: str 

57 :ivar telephone: Numéro de téléphone du client 

58 :vartype telephone: str 

59 """ 

60 user = UserSerializer(read_only=True) 

61 class Meta: 

62 model = ClientProfile 

63 fields = ['id', 'user', 'nom', 'prenom', 'telephone', 'cle_chiffree'] 

64 read_only_fields = ['id', 'user', 'cle_chiffree']