"""
Localization Admin — Django admin for localization models.
"""
from django.contrib import admin

from .models import (
    CalendarSystem,
    City,
    Country,
    Currency,
    Language,
    Province,
    Timezone,
    UserLocalePreference,
)


@admin.register(Country)
class CountryAdmin(admin.ModelAdmin):
    list_display = ['name', 'name_en', 'iso2', 'phone_code', 'flag_emoji', 'is_active', 'sort_order']
    list_filter = ['is_active']
    search_fields = ['name', 'name_en', 'iso2', 'iso3', 'phone_code']
    ordering = ['sort_order', 'name']


@admin.register(Province)
class ProvinceAdmin(admin.ModelAdmin):
    list_display = ['name', 'name_en', 'country', 'code']
    list_filter = ['country']
    search_fields = ['name', 'name_en', 'code']


@admin.register(City)
class CityAdmin(admin.ModelAdmin):
    list_display = ['name', 'name_en', 'province', 'code']
    list_filter = ['province__country']
    search_fields = ['name', 'name_en']


@admin.register(Language)
class LanguageAdmin(admin.ModelAdmin):
    list_display = ['name', 'code', 'direction', 'number_format', 'font_family', 'is_active']
    list_filter = ['direction', 'is_active']


@admin.register(Currency)
class CurrencyAdmin(admin.ModelAdmin):
    list_display = ['name', 'code', 'symbol', 'position', 'decimal_places', 'is_active']
    list_filter = ['is_active']


@admin.register(Timezone)
class TimezoneAdmin(admin.ModelAdmin):
    list_display = ['name', 'identifier', 'utc_offset', 'country']
    search_fields = ['name', 'identifier']


@admin.register(CalendarSystem)
class CalendarSystemAdmin(admin.ModelAdmin):
    list_display = ['name', 'code', 'country', 'is_default']
    list_filter = ['is_default']


@admin.register(UserLocalePreference)
class UserLocalePreferenceAdmin(admin.ModelAdmin):
    list_display = ['user', 'language', 'timezone', 'calendar', 'currency']
    raw_id_fields = ['user']
