from django.contrib import admin
from django.utils.html import format_html
from .models import TShirtType, TShirtSize, ApparelRequest

@admin.register(TShirtType)
class TShirtTypeAdmin(admin.ModelAdmin):
    list_display = ('name', 'description', 'is_active', 'created_at')
    list_filter = ('is_active',)
    search_fields = ('name', 'description')
    list_editable = ('is_active',)
    date_hierarchy = 'created_at'

@admin.register(TShirtSize)
class TShirtSizeAdmin(admin.ModelAdmin):
    list_display = ('name', 'code', 'description', 'is_active', 'created_at')
    list_filter = ('is_active',)
    search_fields = ('name', 'code', 'description')
    list_editable = ('is_active',)
    date_hierarchy = 'created_at'

@admin.register(ApparelRequest)
class ApparelRequestAdmin(admin.ModelAdmin):
    list_display = ('get_user_name', 'event_name', 'tshirt_type', 'tshirt_size', 'is_fulfilled', 'created_at')
    list_filter = ('is_fulfilled', 'tshirt_type', 'tshirt_size', 'event_name')
    search_fields = ('registered_user__full_name', 'registered_user__email', 'registration_code', 'event_name')
    list_editable = ('is_fulfilled',)
    date_hierarchy = 'created_at'
    readonly_fields = ('created_at', 'updated_at')
    
    fieldsets = (
        ('User Information', {
            'fields': ('registered_user', 'event_name', 'registration_code')
        }),
        ('Apparel Details', {
            'fields': ('tshirt_type', 'tshirt_size', 'additional_notes')
        }),
        ('Status', {
            'fields': ('is_fulfilled',)
        }),
        ('Timestamps', {
            'fields': ('created_at', 'updated_at'),
            'classes': ('collapse',)
        }),
    )
    
    def get_user_name(self, obj):
        return obj.registered_user.full_name
    get_user_name.short_description = 'User'
    get_user_name.admin_order_field = 'registered_user__full_name'
    

