from rest_framework import serializers
from .models import TeacherActivity, StudentActivity


class TeacherActivitySerializer(serializers.ModelSerializer):
    action_label = serializers.CharField(source='get_action_display', read_only=True)
    teacher_name = serializers.CharField(source='teacher.full_name', read_only=True)
    teacher_employee_id = serializers.CharField(source='teacher.employee_id', read_only=True)
    created_at_formatted = serializers.DateTimeField(
        source='created_at', format='%d %b %Y, %I:%M %p', read_only=True
    )

    class Meta:
        model = TeacherActivity
        fields = [
            'id',
            'teacher',
            'teacher_name',
            'teacher_employee_id',
            'action',
            'action_label',
            'description',
            'metadata',
            'created_at',
            'created_at_formatted',
        ]
        read_only_fields = ['id', 'created_at']


class StudentActivitySerializer(serializers.ModelSerializer):
    action_label = serializers.CharField(source='get_action_display', read_only=True)
    student_name = serializers.CharField(source='student.full_name', read_only=True)
    student_id_field = serializers.CharField(source='student.student_id', read_only=True)
    created_at_formatted = serializers.DateTimeField(
        source='created_at', format='%d %b %Y, %I:%M %p', read_only=True
    )

    class Meta:
        model = StudentActivity
        fields = [
            'id',
            'student',
            'student_name',
            'student_id_field',
            'action',
            'action_label',
            'description',
            'metadata',
            'created_at',
            'created_at_formatted',
        ]
        read_only_fields = ['id', 'created_at']
