"""
Notification Service Admin Configuration.
"""
from django.contrib import admin

from .models import (
    NotificationCategory,
    NotificationTemplate,
    Notification,
    NotificationLog,
    UserNotificationPreference,
)


@admin.register(NotificationCategory)
class NotificationCategoryAdmin(admin.ModelAdmin):
    list_display = ['name', 'label', 'tenant', 'is_active', 'created_at']
    list_filter = ['is_active', 'tenant']
    search_fields = ['name', 'label']
    ordering = ['name']


@admin.register(NotificationTemplate)
class NotificationTemplateAdmin(admin.ModelAdmin):
    list_display = ['name', 'title', 'channel', 'category', 'tenant', 'is_active', 'created_at']
    list_filter = ['channel', 'is_active', 'category', 'tenant']
    search_fields = ['name', 'title', 'content']
    ordering = ['-created_at']


@admin.register(Notification)
class NotificationAdmin(admin.ModelAdmin):
    list_display = ['id', 'title', 'user', 'channel', 'status', 'priority', 'is_read', 'created_at']
    list_filter = ['channel', 'status', 'priority', 'is_read', 'tenant']
    search_fields = ['title', 'content', 'user__email']
    readonly_fields = ['id', 'created_at', 'sent_at', 'read_at']
    ordering = ['-created_at']


@admin.register(NotificationLog)
class NotificationLogAdmin(admin.ModelAdmin):
    list_display = ['id', 'notification', 'channel', 'status', 'retry_count', 'created_at']
    list_filter = ['channel', 'status', 'tenant']
    search_fields = ['notification__title', 'error_message']
    readonly_fields = ['created_at']
    ordering = ['-created_at']


@admin.register(UserNotificationPreference)
class UserNotificationPreferenceAdmin(admin.ModelAdmin):
    list_display = ['user', 'category', 'sms_enabled', 'email_enabled', 'panel_enabled']
    list_filter = ['sms_enabled', 'email_enabled', 'panel_enabled', 'tenant']
    search_fields = ['user__email', 'category__name']
