from django.contrib import admin
from .models import Country, State, District, Mandal, Pincode, FranchiseStore, FranchiseAssignment, StoreTransferLedger


@admin.register(Country)
class CountryAdmin(admin.ModelAdmin):
    list_display = ('id', 'name', 'code')
    search_fields = ('name', 'code')


@admin.register(State)
class StateAdmin(admin.ModelAdmin):
    list_display = ('id', 'name', 'country')
    search_fields = ('name', 'country__name')


@admin.register(District)
class DistrictAdmin(admin.ModelAdmin):
    list_display = ('id', 'name', 'state')
    search_fields = ('name', 'state__name')


@admin.register(Pincode)
class PincodeAdmin(admin.ModelAdmin):
    list_display = ('id', 'code', 'location', 'country', 'state', 'district')
    search_fields = ('code', 'location', 'country__name', 'state__name', 'district__name')


@admin.register(Mandal)
class MandalAdmin(admin.ModelAdmin):
    list_display = ('id', 'name', 'district')
    search_fields = ('name', 'district__name')


@admin.register(FranchiseStore)
class FranchiseStoreAdmin(admin.ModelAdmin):
    list_display = ('id', 'code', 'name', 'state', 'district', 'mandal', 'is_active')
    search_fields = ('code', 'name', 'contact_name', 'contact_mobile')
    list_filter = ('is_active', 'state', 'district')


@admin.register(FranchiseAssignment)
class FranchiseAssignmentAdmin(admin.ModelAdmin):
    list_display = ('id', 'user', 'territory_level', 'state', 'district', 'mandal', 'store', 'is_active')
    search_fields = ('user__mobile', 'user__email', 'role_title', 'assignment_reason')
    list_filter = ('territory_level', 'is_active')


@admin.register(StoreTransferLedger)
class StoreTransferLedgerAdmin(admin.ModelAdmin):
    list_display = ('id', 'order', 'store', 'transfer_type', 'transfer_status', 'created_at')
    search_fields = ('order__reference_id', 'store__name', 'remarks')
    list_filter = ('transfer_type', 'transfer_status')
