# from django.contrib import admin
# from .models import CustomUser

# class CustomUserAdmin(admin.ModelAdmin):
#     list_display = ('mobile_number', 'first_name', 'last_name', 'user_type', 'role')
#     list_filter = ('role', 'user_type', 'kyc_status')

# admin.site.register(CustomUser, CustomUserAdmin)


from django.contrib import admin
from users.models import CustomUser

@admin.register(CustomUser)
class CustomUserAdmin(admin.ModelAdmin):
    list_display = ('mobile_number', 'first_name', 'last_name', 'user_type', 'role')
    list_filter  = ('role', 'user_type', 'kyc_status')

    # icontains by default; use prefixes for behavior tweaks:
    # '=' exact match, '^' startswith
    # search_fields = ('first_name', 'mobile_number','referred_by')
    search_fields = ('first_name', 'mobile_number')

    # search_fields = (
    #     '=mobile_number',      # exact phone match (fast)
    #     '^first_name',         # startswith
    #     '^last_name',
    #     'email',               # contains
    #     # 'username',            # if you have it
    #     'referred_by',            # if you have it
    # )

    # ordering = ('first_name', 'last_name')
from django.contrib import admin
from .models import State, District


class DistrictInline(admin.TabularInline):
    model = District
    extra = 1
    show_change_link = True
    autocomplete_fields = ('state',)
    fields = ('name',)
    ordering = ('name',)


@admin.register(State)
class StateAdmin(admin.ModelAdmin):
    list_display = ('name', 'state_type', 'district_count')
    list_filter = ('state_type',)
    search_fields = ('name',)
    ordering = ('name',)
    inlines = [DistrictInline]

    def district_count(self, obj):
        return obj.district_set.count()
    district_count.short_description = 'Districts'


@admin.register(District)
class DistrictAdmin(admin.ModelAdmin):
    list_display = ('name', 'state')
    list_filter = ('state',)
    search_fields = ('name', 'state__name')
    ordering = ('state__name', 'name')
    autocomplete_fields = ('state',)
