from django.contrib import admin

from .models import Good


@admin.register(Good)
class GoodAdmin(admin.ModelAdmin):
    list_display = (
        "code",
        "name",
        "barcode",
        "item_type",
        "unit",
        "stock",
        "buy_price",
        "sell_price",
        "active",
        "tax_id",
    )
    list_filter = ("active", "item_type", "unit", "sub_unit", "tax_unit")
    search_fields = ("code", "name", "barcode", "product_code", "tax_id", "tag", "node_family")
    readonly_fields = ("created_at", "updated_at")
    fieldsets = (
        (
            "Identity",
            {
                "fields": (
                    "code",
                    "name",
                    "barcode",
                    "product_code",
                    "item_type",
                    "active",
                    "tag",
                )
            },
        ),
        (
            "Units",
            {
                "fields": (
                    "unit",
                    "sub_unit",
                    "conversion_factor",
                    "tax_unit",
                )
            },
        ),
        (
            "Inventory",
            {
                "fields": (
                    "stock",
                    "reorder_point",
                    "lead_time",
                    "minimum_order",
                    "warehousing_rate",
                    "first_period_balance",
                    "minimum_physical_inventory",
                )
            },
        ),
        (
            "Prices",
            {
                "fields": (
                    "buy_price",
                    "sell_price",
                    "price_list",
                )
            },
        ),
        (
            "Invoice Titles",
            {
                "fields": (
                    "purchases_title",
                    "sales_title",
                )
            },
        ),
        (
            "Tax and Category",
            {
                "fields": (
                    "tax_id",
                    "node_family",
                )
            },
        ),
        ("Description", {"fields": ("description",)}),
        ("Dates", {"fields": ("created_at", "updated_at")}),
    )
