"""
Admin configuration for the enrollments app.
"""
from django.contrib import admin
from apps.enrollments.models import Enrollment


@admin.register(Enrollment)
class EnrollmentAdmin(admin.ModelAdmin):
    list_display = ('student', 'course', 'status', 'requested_at', 'approved_at', 'approved_by')
    list_filter = ('status', 'course')
    search_fields = ('student__username', 'course__title')
    readonly_fields = ('requested_at',)
    ordering = ('-requested_at',)

    def get_readonly_fields(self, request, obj=None):
        if getattr(request.user, 'role', None) == 'teacher':
            return self.readonly_fields + (
                'status', 'approved_by', 'approved_at',
                'payment_proof', 'payment_note', 'payment_method',
                'rejection_reason',
            )
        return self.readonly_fields

    def get_exclude(self, request, obj=None):
        if getattr(request.user, 'role', None) == 'teacher':
            return ('payment_proof', 'payment_note', 'payment_method', 'stripe_session_id', 'stripe_payment_intent')
        return None
