from django.contrib import admin

# Register your models here.
from sniper.models import SniperOrder, SniperAccount, SniperTransfers, SniperTradeItemLog, DischargeUsableCard, \
    MuleDischargeMode2, DischargeMode2, DischargePerDay, HourlyAccountDischargeHistory, DischargeMode3SpecialPlayers, \
    StartDischargeBot


class SniperOrderAdmin(admin.ModelAdmin):
    list_display = ['create_time', 'file_name', 'status']


class SniperAccountAdmin(admin.ModelAdmin):
    search_fields = ['fifa_account__user_name']
    autocomplete_fields = ['fifa_account']
    list_display = ['sniper_order', 'fifa_account', 'transfer_amount']


class SniperTransfersAdmin(admin.ModelAdmin):
    autocomplete_fields = ['sender_account', 'receiver_account']
    list_display = ['sender_account', 'receiver_account', 'coins_taken', 'is_missed', 'transfer_time']


class SniperTradeItemLogAdmin(admin.ModelAdmin):
    search_fields = ['player_card__asset_id', ]
    autocomplete_fields = ['fifa_account', 'sniper_account', 'player_card']
    list_display = ['fifa_account', 'player_card', 'action_time', 'buy_now_price', 'price', 'status']
    list_filter = ['status', ]


class DischargeUsableCardAdmin(admin.ModelAdmin):
    list_display = ['player_name', 'asset_id', 'allowed_use_console_discharge', ]


class MuleDischargeMode2Admin(admin.ModelAdmin):
    search_fields = ['user_name', ]
    autocomplete_fields = ['last_fifa_account_used', ]
    list_display = ['user_name', 'priority', 'is_active', 'site_name', 'in_use', 'last_run_time',
                    'available_payment', 'progress_payment', 'pending_payment', 'address_payment']
    list_filter = ['is_active', ]


class DischargeMode2Admin(admin.ModelAdmin):
    search_fields = ['fifa_account__user_name__iexact', 'player_asset_id__iexact']
    autocomplete_fields = ['fifa_account', ]
    list_display = ['create_time', 'fifa_account', 'mule', 'player_name', 'player_rating', 'player_asset_id',
                    'start_price', 'end_price', 'avg_price', 'status']
    list_filter = ['mule__site_name', 'mule']


class DischargePerDayAdmin(admin.ModelAdmin):
    search_fields = ['fifa_account__user_name__iexact', ]
    autocomplete_fields = ['fifa_account', ]
    list_display = ['create_time', 'fifa_account', 'income_credit']


class HourlyAccountDischargeHistoryAdmin(admin.ModelAdmin):
    list_display = ['mode2_count', 'mode3_count']


class DischargeMode3SpecialPlayersAdmin(admin.ModelAdmin):
    list_display = ['player_name', 'futbin_id', 'first_price', 'update_time', 'bad_for_discharge_reason']

    actions = ['clear_bad_for_discharge_reason']

    @admin.action(description='Clear bad for discharge reason for selected accounts')
    def clear_bad_for_discharge_reason(self, request, queryset):
        queryset.update(bad_for_discharge_reason=None)
        self.message_user(request, "Bad for discharge reason cleared for selected accounts.")


class StartDischargeBotAdmin(admin.ModelAdmin):
    search_fields = ['fifa_account__user_name__iexact', ]
    list_display = ['create_time', 'fifa_account', 'discharge_mode']
    autocomplete_fields = ['fifa_account', ]
    list_filter = ['discharge_mode']


admin.site.register(SniperOrder, SniperOrderAdmin)
admin.site.register(SniperAccount, SniperAccountAdmin)
admin.site.register(SniperTransfers, SniperTransfersAdmin)
admin.site.register(SniperTradeItemLog, SniperTradeItemLogAdmin)
admin.site.register(DischargeUsableCard, DischargeUsableCardAdmin)
admin.site.register(MuleDischargeMode2, MuleDischargeMode2Admin)
admin.site.register(DischargeMode2, DischargeMode2Admin)
admin.site.register(DischargePerDay, DischargePerDayAdmin)
admin.site.register(HourlyAccountDischargeHistory, HourlyAccountDischargeHistoryAdmin)
admin.site.register(DischargeMode3SpecialPlayers, DischargeMode3SpecialPlayersAdmin)
admin.site.register(StartDischargeBot, StartDischargeBotAdmin)
