from django.contrib import admin
from webhooks.models import ShopifyStore, ShopifyRefundEvent, ShopifyFulfillmentEvent

@admin.register(ShopifyStore)
class ShopifyStoreAdmin(admin.ModelAdmin):
    list_display = ("shop_domain", "created_at", "updated_at")
    readonly_fields = ("shop_domain", "access_token", "created_at", "updated_at")
    search_fields = ("shop_domain",)

    def has_add_permission(self, request):
        return False

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

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


@admin.register(ShopifyRefundEvent)
class ShopifyRefundEventAdmin(admin.ModelAdmin):
    list_display = (
        "created_at",
        "webhook_id",
        "shopify_order_id",
        "digistore_order_id",
        "refund_type",
        "refund_amount",
        "processed",
    )
    search_fields = ("webhook_id", "shopify_order_id", "digistore_order_id")
    readonly_fields = (
        "topic",
        "webhook_id",
        "shopify_order_id",
        "digistore_order_id",
        "refund_amount",
        "refund_type",
        "payload",
        "processed",
        "error",
        "created_at",
        "updated_at",
    )

    def has_add_permission(self, request):
        return False

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

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


@admin.register(ShopifyFulfillmentEvent)
class ShopifyFulfillmentEventAdmin(admin.ModelAdmin):
    list_display = (
        "created_at",
        "webhook_id",
        "shopify_order_id",
        "digistore_order_id",
        "tracking_number",
        "parcel_service",
        "notify_via_email",
        "processed",
    )
    search_fields = (
        "webhook_id",
        "shopify_order_id",
        "digistore_order_id",
        "tracking_number",
    )
    readonly_fields = (
        "topic",
        "webhook_id",
        "shopify_order_id",
        "digistore_order_id",
        "tracking_number",
        "parcel_service",
        "tracking_url",
        "notify_via_email",
        "payload",
        "processed",
        "error",
        "created_at",
        "updated_at",
    )

    def has_add_permission(self, request):
        return False

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

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