from django.urls import reverse

from rest_framework import serializers

from ..models import PostLike


__all__ = [
    'PostLikeSerializer',
]


class PostLikeSerializer(serializers.ModelSerializer):
    user_id = serializers.SerializerMethodField()
    username = serializers.SerializerMethodField()

    url = serializers.SerializerMethodField()

    class Meta:
        model = PostLike
        fields = (
            'id',
            'liked_on',

            'user_id',
            'username',

            'url',
        )

    def get_user_id(self, obj):
        return obj['user_id']

    def get_username(self, obj):
        return obj['user_name']

    def get_url(self, obj):
        if obj['user_id']:
            return reverse('misago:user', kwargs={
                'slug': obj['user_slug'],
                'pk': obj['user_id'],
            })
        else:
            return None