from django.contrib import admin
from .models import NotificationType, UserNotificationPreference, Notification

@admin.register(NotificationType)
class NotificationTypeAdmin(admin.ModelAdmin):
    list_display = ('key', 'label', 'enabled_inapp', 'enabled_email', 'enabled_sms', 'enabled_whatsapp', 'is_active')
    search_fields = ('key', 'label')

@admin.register(UserNotificationPreference)
class UserNotificationPreferenceAdmin(admin.ModelAdmin):
    list_display = ('user', 'notification_type', 'inapp', 'email', 'sms', 'whatsapp')
    list_filter = ('notification_type',)

@admin.register(Notification)
class NotificationAdmin(admin.ModelAdmin):
    # list_display = ('user', 'type', 'created_at', 'is_read')
    list_display = ('user_display', 'type', 'created_at', 'is_read')

    list_filter = ('is_read', 'type')
    search_fields = ('user__first_name', 'user__mobile_number', 'user__email', 'message')

    def user_display(self, obj):
        return obj.user.first_name or obj.user.mobile_number or obj.user.email

    user_display.short_description = 'User'

