from django.utils import timezone
from rest_framework import serializers

from .models import StudyPrayerSession


class StudyPrayerSessionSerializer(serializers.ModelSerializer):
    class Meta:
        model = StudyPrayerSession
        fields = (
            "id",
            "reminder",
            "title",
            "category",
            "status",
            "started_at",
            "completed_at",
            "duration_minutes",
            "notes",
            "created_at",
            "updated_at",
        )
        read_only_fields = ("id", "created_at", "updated_at")

    def validate(self, attrs):
        status = attrs.get("status", getattr(self.instance, "status", None))
        if status == StudyPrayerSession.Status.COMPLETED and not attrs.get("completed_at"):
            attrs["completed_at"] = timezone.now()
        return attrs
