from django.contrib import admin

from .models import Supporter, SustainerOrder, SustainerPayment


@admin.register(Supporter)
class SupporterAdmin(admin.ModelAdmin):
    list_display = ('display_name', 'display_until_date')


class SustainerPaymentInline(admin.TabularInline):
    model = SustainerPayment
    fields = [
        'paid_time',
        'amount',
        'stripe_payment_intent_ref',
        'stripe_invoice_ref',
    ]
    can_delete = False
    readonly_fields = [
        'paid_time',
        'amount',
        'stripe_payment_intent_ref',
        'stripe_invoice_ref',
    ]

    def has_add_permission(self, request, obj=None):
        return False

    def has_change_permission(self, request, obj=None):
        return False



@admin.register(SustainerOrder)
class SustainerOrderAdmin(admin.ModelAdmin):
    fields = [
        'created_time',
        'paid_time',
        'payment_method',
        'stripe_customer_ref',
        'stripe_subscription_ref',
        'recurring',
        'name',
        'email',
        'amount',
        'acknowledge_publicly',
        'add_to_mailing_list',
        'tshirt_size',
        'street',
        'city',
        'state',
        'zip_code',
        'country',
    ]
    inlines = [SustainerPaymentInline]
    readonly_fields = ['created_time', 'paid_time', 'payment_method', 'stripe_customer_ref', 'stripe_subscription_ref', 'recurring']
    list_display = ['created_time', 'name', 'email', 'amount', 'recurring', 'paid_time']
    list_filter = ['paid_time']


@admin.register(SustainerPayment)
class SustainerPaymentAdmin(admin.ModelAdmin):
    fields = [
        'order',
        'paid_time',
        'amount',
        'stripe_invoice_ref',
        'stripe_payment_intent_ref',
    ]
    readonly_fields = ['order', 'paid_time', 'amount', 'stripe_invoice_ref', 'stripe_payment_intent_ref']
    list_display = ['order', 'paid_time', 'amount']
    list_filter = ['paid_time']