from django.contrib import admin

from .models import NutritionSelectionEvent, PlayerNutritionProfile


class ReadOnlyNutritionAdmin(admin.ModelAdmin):
    def has_add_permission(self, request):
        return False

    def has_delete_permission(self, request, obj=None):
        return False

    def get_readonly_fields(self, request, obj=None):
        return tuple(field.name for field in self.model._meta.fields)


@admin.register(PlayerNutritionProfile)
class PlayerNutritionProfileAdmin(ReadOnlyNutritionAdmin):
    list_display = ("player", "level", "revision", "policy_version", "updated_at")
    list_filter = ("level", "policy_version")


@admin.register(NutritionSelectionEvent)
class NutritionSelectionEventAdmin(ReadOnlyNutritionAdmin):
    list_display = (
        "player",
        "revision",
        "previous_level",
        "new_level",
        "multiplier_snapshot",
        "created_at",
    )
    list_filter = ("new_level", "policy_version")
