from rest_framework import serializers from django.utils import timezone from datetime import timedelta from .models import BrowsingHistory class BrowsingHistorySerializer(serializers.ModelSerializer): class Meta: model = BrowsingHistory fields = ['id', 'type', 'title', 'description', 'image', 'category', 'link', 'viewed_at'] read_only_fields = ['viewed_at'] class BrowsingHistoryCreateSerializer(serializers.ModelSerializer): class Meta: model = BrowsingHistory fields = ['type', 'title', 'description', 'image', 'category', 'link'] def create(self, validated_data): user = self.context['request'].user link = validated_data.get('link', '') today = timezone.now().date() existing = BrowsingHistory.objects.filter( user=user, link=link, viewed_at__date=today ).first() if existing: existing.save() return existing return BrowsingHistory.objects.create(user=user, **validated_data)