from rest_framework import serializers from profiles.models import ProfileModel from .models import ChatChannelModel, ChatMessageModel class ChatChannelSerializer(serializers.ModelSerializer): members_id = serializers.ListField(child = serializers.IntegerField()) class Meta: model = ChatChannelModel fields = ["members_id", "pk"] def validate_members_id(self, value): members_id: [int] = value if len(members_id) < 2: raise serializers.ValidationError('Not enought members to create the channel') if len(set(members_id)) != len(members_id): raise serializers.ValidationError('Same member') for member_id in members_id: if not ProfileModel.objects.filter(pk = member_id).exists(): raise serializers.ValidationError(f"The profile {member_id} doesn't exists.") return members_id class ChatMessageSerializer(serializers.Serializer): class Meta: model = ChatMessageModel fields = ["channel_id", "author_id", "content", "time"]