from django.contrib import admin

from . import models
from .models import ProductComment


class ProductSpecItemInline(admin.TabularInline):
    model = models.ProductSpecItem
    extra = 1


class ProductSpecGroupInline(admin.StackedInline):
    model = models.ProductSpecGroup
    extra = 0
    show_change_link = True


@admin.register(models.Product)
class ProductAdmin(admin.ModelAdmin):
    list_display = ["title", "price", "condition", "is_active", "is_delete"]
    list_filter = ["condition", "category", "is_active"]
    list_editable = ["price", "condition", "is_active"]
    search_fields = ["title", "slug", "short_description"]
    inlines = [ProductSpecGroupInline]



@admin.register(models.ProductSpecGroup)
class ProductSpecGroupAdmin(admin.ModelAdmin):
    list_display = ["title", "product"]
    list_filter = ["product"]
    inlines = [ProductSpecItemInline]


@admin.register(ProductComment)
class ProductCommentAdmin(admin.ModelAdmin):
    list_display = ("user", "product", "is_active", "create_date")
    list_filter = ("is_active", "create_date")
    search_fields = ("text", "user__email", "product__title")


@admin.register(models.Color)
class ColorAdmin(admin.ModelAdmin):
    list_display = ("name", "hex_code", "is_active")
    list_editable = ("is_active",)
    search_fields = ("name", "slug")
    prepopulated_fields = {"slug": ("name",)}


admin.site.register(models.ProductCategory)
admin.site.register(models.ProductTag)
admin.site.register(models.ProductBrand)
admin.site.register(models.ProductVisit)
admin.site.register(models.ProductGallery)
admin.site.register(models.SubCategory)
