"""
Admin configuration for Cart
"""
from django.contrib import admin
from .models import Cart, CartItem


@admin.register(Cart)
class CartAdmin(admin.ModelAdmin):
    """Cart Admin"""
    
    list_display = ('id', 'user', 'session_key', 'total_items', 'total_display', 'created_at', 'updated_at')
    list_filter = ('created_at', 'updated_at')
    search_fields = ('user__email', 'session_key')
    readonly_fields = ('created_at', 'updated_at', 'total_items', 'subtotal', 'total')
    
    def total_items(self, obj):
        return obj.total_items
    total_items.short_description = 'Items'
    
    def total_display(self, obj):
        return f"₹{obj.total:.2f}"
    total_display.short_description = 'Total'


@admin.register(CartItem)
class CartItemAdmin(admin.ModelAdmin):
    """Cart Item Admin"""
    
    list_display = ('cart', 'product', 'variation', 'quantity', 'unit_price_display', 'total_price_display', 'created_at')
    list_filter = ('created_at',)
    search_fields = ('cart__user__email', 'product__name')
    readonly_fields = ('created_at', 'updated_at', 'unit_price', 'total_price')
    
    def unit_price_display(self, obj):
        return f"₹{obj.unit_price:.2f}"
    unit_price_display.short_description = 'Price'
    
    def total_price_display(self, obj):
        return f"₹{obj.total_price:.2f}"
    total_price_display.short_description = 'Total'
