from django.contrib import admin

from .models import (
    FeeSchedule,
    IdempotencyKey,
    PaymentAttempt,
    Payout,
    ProviderWebhookEvent,
    Refund,
)


@admin.register(FeeSchedule)
class FeeScheduleAdmin(admin.ModelAdmin):
    list_display = ("name", "percent_bps", "flat_fee", "min_fee", "currency", "effective_from", "effective_to", "is_active")
    list_filter = ("is_active", "currency")


@admin.register(PaymentAttempt)
class PaymentAttemptAdmin(admin.ModelAdmin):
    list_display = ("id", "deal", "amount", "status", "provider", "provider_ref", "created_at")
    list_filter = ("status", "provider")
    search_fields = ("provider_ref", "deal__code")


@admin.register(Payout)
class PayoutAdmin(admin.ModelAdmin):
    list_display = ("id", "deal", "seller", "amount", "status", "retry_count", "created_at")
    list_filter = ("status",)
    search_fields = ("provider_ref", "deal__code")


@admin.register(Refund)
class RefundAdmin(admin.ModelAdmin):
    list_display = ("id", "deal", "buyer", "amount", "status", "created_at")
    list_filter = ("status",)
    search_fields = ("provider_ref", "deal__code")


@admin.register(ProviderWebhookEvent)
class ProviderWebhookEventAdmin(admin.ModelAdmin):
    list_display = ("provider", "event_id", "event_type", "signature_valid", "processed", "received_at")
    list_filter = ("provider", "processed", "signature_valid")
    search_fields = ("event_id",)


@admin.register(IdempotencyKey)
class IdempotencyKeyAdmin(admin.ModelAdmin):
    list_display = ("key", "scope", "reference", "created_at")
    search_fields = ("key", "reference")
