from django.contrib import admin
from .models import Cart, CartItem, Order, OrderItem, VendorOrder


class CartItemInline(admin.TabularInline):
    model = CartItem
    extra = 0
    readonly_fields = ["product", "quantity", "added_at"]


@admin.register(Cart)
class CartAdmin(admin.ModelAdmin):
    list_display = ["id", "user", "session_key", "created_at"]
    inlines = [CartItemInline]


class OrderItemInline(admin.TabularInline):
    model = OrderItem
    extra = 0
    readonly_fields = [
        "vendor", "product", "product_name", "product_price",
        "currency", "quantity", "subtotal",
    ]


class VendorOrderInline(admin.TabularInline):
    model = VendorOrder
    extra = 0
    readonly_fields = ["vendor", "total_amount", "status", "created_at"]


@admin.register(Order)
class OrderAdmin(admin.ModelAdmin):
    list_display = [
        "id", "customer_name", "customer_email", "total_amount",
        "status", "created_at",
    ]
    list_filter = ["status"]
    search_fields = ["customer_name", "customer_email"]
    readonly_fields = ["created_at", "updated_at"]
    inlines = [OrderItemInline, VendorOrderInline]


@admin.register(VendorOrder)
class VendorOrderAdmin(admin.ModelAdmin):
    list_display = ["id", "vendor", "order", "total_amount", "status", "created_at"]
    list_filter = ["status", "vendor"]
    readonly_fields = ["created_at", "updated_at"]
