# Copyright (C) 2018-2025 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later

from django.contrib import admin
from polymorphic.admin import PolymorphicChildModelAdmin, PolymorphicParentModelAdmin
from note_kfet.admin import admin_site

from .models import Allergen, Food, BasicFood, TransformedFood, QRCode


@admin.register(Allergen, site=admin_site)
class AllergenAdmin(admin.ModelAdmin):
    """
    Admin customisation for Allergen
    """
    ordering = ['name']


@admin.register(Food, site=admin_site)
class FoodAdmin(PolymorphicParentModelAdmin):
    """
    Admin customisation for Food
    """
    child_models = (Food, BasicFood, TransformedFood)
    list_display = ('name', 'expiry_date', 'owner', 'is_ready')
    list_filter = ('is_ready', 'end_of_life')
    search_fields = ['name']
    ordering = ['expiry_date', 'name']


@admin.register(BasicFood, site=admin_site)
class BasicFood(PolymorphicChildModelAdmin):
    """
    Admin customisation for BasicFood
    """
    list_display = ('name', 'expiry_date', 'date_type', 'owner', 'is_ready')
    list_filter = ('is_ready', 'date_type', 'end_of_life')
    search_fields = ['name']
    ordering = ['expiry_date', 'name']


@admin.register(TransformedFood, site=admin_site)
class TransformedFood(PolymorphicChildModelAdmin):
    """
    Admin customisation for TransformedFood
    """
    list_display = ('name', 'expiry_date', 'shelf_life', 'owner', 'is_ready')
    list_filter = ('is_ready', 'end_of_life', 'shelf_life')
    search_fields = ['name']
    ordering = ['expiry_date', 'name']


@admin.register(QRCode, site=admin_site)
class QRCodeAdmin(admin.ModelAdmin):
    """
    Admin customisation for QRCode
    """
    list_diplay = ('qr_code_number', 'food_container')
    search_fields = ['food_container__name']