from django.contrib import admin
from .models import (
    DistributorLevelProgress,
    FranchiseMonthlyIncentive,
    UserBonanzaCounter,
    RewardAchievement,
    Service,
    ServiceClaim,
    Gift,
    GiftClaim,
)

@admin.register(DistributorLevelProgress)
class DistributorLevelProgressAdmin(admin.ModelAdmin):
    list_display = ('distributor', 'current_level', 'last_completed_level', 'total_positions_after', 'last_calculated_at')


@admin.register(UserBonanzaCounter)
class UserBonanzaCounterAdmin(admin.ModelAdmin):
    list_display = ('user', 'category', 'quantity', 'amount', 'is_active', 'updated_at')
    list_filter = ('category', 'is_active')
    search_fields = ('user__mobile', 'user__email', 'notes')


@admin.register(FranchiseMonthlyIncentive)
class FranchiseMonthlyIncentiveAdmin(admin.ModelAdmin):
    list_display = ('user', 'period_month', 'amount', 'is_active', 'updated_at')
    list_filter = ('period_month', 'is_active')
    search_fields = ('user__mobile', 'user__email', 'notes')


@admin.register(RewardAchievement)
class RewardAchievementAdmin(admin.ModelAdmin):
    list_display = ('user', 'level', 'reward_name', 'supercoin_amount', 'status', 'claimed_at', 'created_at')
    list_filter = ('level', 'status', 'created_at')
    search_fields = ('user__mobile', 'user__email', 'reward_name')
    readonly_fields = ('created_at', 'updated_at')


@admin.register(Service)
class ServiceAdmin(admin.ModelAdmin):
    list_display = ('service_name', 'level', 'category', 'quota', 'claimed_count', 'is_active')
    list_filter = ('level', 'category', 'is_active')
    search_fields = ('service_name', 'service_description')
    readonly_fields = ('created_at', 'updated_at')


@admin.register(ServiceClaim)
class ServiceClaimAdmin(admin.ModelAdmin):
    list_display = ('user', 'service', 'status', 'approved_by', 'created_at')
    list_filter = ('status', 'created_at')
    search_fields = ('user__mobile', 'user__email', 'service__service_name')
    readonly_fields = ('created_at', 'updated_at', 'approved_at')


@admin.register(Gift)
class GiftAdmin(admin.ModelAdmin):
    list_display = ('gift_name', 'level', 'gift_category', 'quota', 'claimed_count', 'value', 'is_active')
    list_filter = ('level', 'gift_category', 'is_active')
    search_fields = ('gift_name', 'gift_description')
    readonly_fields = ('created_at', 'updated_at')


@admin.register(GiftClaim)
class GiftClaimAdmin(admin.ModelAdmin):
    list_display = ('user', 'gift', 'status', 'approved_by', 'created_at')
    list_filter = ('status', 'created_at')
    search_fields = ('user__mobile', 'user__email', 'gift__gift_name')
    readonly_fields = ('created_at', 'updated_at', 'approved_at')
