"""
Analytics Service — Admin.
"""
from django.contrib import admin
from .models import (
    AggregationDefinition, AggregationSnapshot,
    KPIRollup,
    ReportTemplate, GeneratedReport,
)


@admin.register(AggregationDefinition)
class AggregationDefinitionAdmin(admin.ModelAdmin):
    list_display = ("name", "source_module", "source_entity", "aggregation_type", "is_active", "created_at")
    list_filter = ("source_module", "aggregation_type", "is_active")
    search_fields = ("name", "source_entity")
    readonly_fields = ("id", "created_at", "updated_at")


@admin.register(AggregationSnapshot)
class AggregationSnapshotAdmin(admin.ModelAdmin):
    list_display = ("definition", "snapshot_date", "record_count", "execution_time_ms", "created_at")
    list_filter = ("snapshot_date",)
    readonly_fields = ("id", "created_at", "updated_at")


@admin.register(KPIRollup)
class KPIRollupAdmin(admin.ModelAdmin):
    list_display = ("kpi_code", "kpi_name", "level", "period", "value", "target_value", "trend")
    list_filter = ("level", "trend", "period")
    search_fields = ("kpi_code", "kpi_name")
    readonly_fields = ("id", "created_at", "updated_at")


@admin.register(ReportTemplate)
class ReportTemplateAdmin(admin.ModelAdmin):
    list_display = ("name", "default_format", "is_scheduled", "is_active", "created_at")
    list_filter = ("default_format", "is_scheduled", "is_active")
    search_fields = ("name",)
    readonly_fields = ("id", "created_at", "updated_at")


@admin.register(GeneratedReport)
class GeneratedReportAdmin(admin.ModelAdmin):
    list_display = ("template", "title", "format", "status", "generated_at", "file_size")
    list_filter = ("format", "status")
    search_fields = ("title",)
    readonly_fields = ("id", "created_at", "updated_at")
