from django.contrib import admin
from .models import (
    CommissionSplit,
    CommissionSummary,
    WalletHeadAssignment,
    Vertical,
    VendorCodeMapping,
    GeoLocation
)

@admin.register(CommissionSplit)
class CommissionSplitAdmin(admin.ModelAdmin):
    list_display = (
        'order_id', 'operator', 'transaction_amount', 'commission_percent', 'commission_amount',
        'pincode', 'district', 'state', 'vertical',
        'company_amount', 'tnm_amount', 'credited_on'
    )
    list_filter = ('operator', 'credited_on', 'state', 'vertical')
    search_fields = ('order_id', 'vendor_code__vendor_code', 'pincode', 'district', 'state', 'vertical')


@admin.register(CommissionSummary)
class CommissionSummaryAdmin(admin.ModelAdmin):
    list_display = ('date', 'role_type', 'location_name', 'location_code', 'total_amount')
    list_filter = ('role_type', 'date')
    search_fields = ('location_name', 'location_code')


@admin.register(WalletHeadAssignment)
class WalletHeadAssignmentAdmin(admin.ModelAdmin):
    list_display = ('role_type', 'location_code', 'user', 'from_date', 'to_date')
    list_filter = ('role_type',)
    search_fields = ('location_code', 'user__username', 'user__first_name')


@admin.register(Vertical)
class VerticalAdmin(admin.ModelAdmin):
    list_display = ('name', 'description', 'created_at')
    search_fields = ('name',)


@admin.register(VendorCodeMapping)
class VendorCodeMappingAdmin(admin.ModelAdmin):
    list_display = ('vendor_code', 'user', 'vertical', 'mapped_at', 'active')
    list_filter = ('active', 'vertical')
    search_fields = ('vendor_code', 'user__username', 'user__first_name')


@admin.register(GeoLocation)
class GeoLocationAdmin(admin.ModelAdmin):
    list_display = ('pincode', 'location_name', 'district', 'state')
    search_fields = ('pincode', 'location_name', 'district', 'state')
