from django.contrib import admin
from .models import City, Category, Place, PlaceCategory, PlaceImage, SimilarPlace, ImageFeature


@admin.register(City)
class CityAdmin(admin.ModelAdmin):
    list_display = ['name', 'slug', 'place_count']
    prepopulated_fields = {'slug': ('name',)}


@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
    list_display = ['name']
    search_fields = ['name']


class PlaceCategoryInline(admin.TabularInline):
    model = PlaceCategory
    extra = 0


class PlaceImageInline(admin.TabularInline):
    model = PlaceImage
    extra = 0


@admin.register(Place)
class PlaceAdmin(admin.ModelAdmin):
    list_display = ['name', 'city', 'interest_score', 'pagerank', 'tourism', 'historic']
    list_filter = ['city', 'tourism', 'historic', 'amenity']
    search_fields = ['name', 'wikidata_qid']
    ordering = ['-interest_score']
    inlines = [PlaceCategoryInline, PlaceImageInline]


@admin.register(SimilarPlace)
class SimilarPlaceAdmin(admin.ModelAdmin):
    list_display = ['main_place', 'similar_place', 'score', 'method']
    list_filter = ['method']


@admin.register(ImageFeature)
class ImageFeatureAdmin(admin.ModelAdmin):
    list_display = ['image_path', 'city', 'category_name', 'place']
    list_filter = ['city', 'category_name']
