Feat: [#41] notification 앱 생성 및 알림 조회 구현

This commit is contained in:
sm4640
2025-05-02 22:07:09 +09:00
parent dd67f7a18b
commit 9f046073c5
9 changed files with 122 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
from .models import *
from projects.models import *
from rest_framework import serializers
class NotificationSerializer(serializers.ModelSerializer):
meta = serializers.SerializerMethodField()
class Meta:
model = Notification
fields = ['id', 'content', 'note_type', 'is_read', 'meta']
def get_meta(self, obj):
REL_SERIALIZER_MAP = {
'project_invitation' : ProjectInvitationMetaSerializer,
}
for rel_name, serializer_cls in REL_SERIALIZER_MAP.items():
rel_obj = getattr(obj, rel_name, None)
if rel_obj is not None:
return serializer_cls(rel_obj).data
return None
class ProjectInvitationMetaSerializer(serializers.ModelSerializer):
project_invitation_id = serializers.CharField(source='id')
project_title = serializers.CharField(source='project.title')
from_user_nickname = serializers.CharField(source='from_user.nickname')
class Meta:
model = ProjectInvitation
fields = ['project_invitation_id', 'project_title', 'from_user_nickname', 'status']