from django.contrib import admin

from .models import (
    Credit,
    DiscountCode,
    Invoice,
    InvoiceItem,
    Payment,
    PaymentGatewayConfig,
    PaymentReminder,
    RecurringBilling,
    Refund,
    Subscription,
    SubscriptionPackage,
    TaxRate,
)

admin.site.register(Invoice)
admin.site.register(InvoiceItem)
admin.site.register(Payment)
admin.site.register(Refund)
admin.site.register(RecurringBilling)
admin.site.register(PaymentReminder)
admin.site.register(DiscountCode)
admin.site.register(Credit)
admin.site.register(TaxRate)
admin.site.register(PaymentGatewayConfig)


@admin.register(Subscription)
class SubscriptionAdmin(admin.ModelAdmin):
    list_display = ["user", "package_name", "amount", "billing_cycle", "status", "paid_at"]
    list_filter = ["status", "billing_cycle"]
    ordering = ["-created_at"]


@admin.register(SubscriptionPackage)
class SubscriptionPackageAdmin(admin.ModelAdmin):
    list_display = ["name", "price", "billing_cycle", "member_limit", "is_popular", "is_active", "sort_order"]
    list_filter = ["is_active", "is_popular", "billing_cycle"]
    list_editable = ["is_active", "is_popular", "sort_order"]
    ordering = ["sort_order", "price"]
