from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.utils.translation import gettext_lazy as _
from .models import User, PlaceAdmin


@admin.register(User)
class UserAdmin(BaseUserAdmin):
    """Custom User Admin"""
    list_display = ['username', 'email', 'phone', 'role', 'is_verified', 'is_active', 'created_at']
    list_filter = ['role', 'is_verified', 'is_active', 'is_staff', 'is_superuser']
    search_fields = ['username', 'email', 'phone']
    ordering = ['-created_at']
    
    fieldsets = BaseUserAdmin.fieldsets + (
        (_('Additional Info'), {
            'fields': ('role', 'phone', 'avatar', 'is_verified', 'language', 'theme', 'notifications_enabled', 'fcm_token')
        }),
    )
    
    add_fieldsets = BaseUserAdmin.add_fieldsets + (
        (_('Additional Info'), {
            'fields': ('role', 'phone', 'email')
        }),
    )


@admin.register(PlaceAdmin)
class PlaceAdminAdmin(admin.ModelAdmin):
    """Place Admin Admin"""
    list_display = ['user', 'place', 'can_manage_bookings', 'can_manage_reviews', 'can_manage_offers', 'created_at']
    list_filter = ['can_manage_bookings', 'can_manage_reviews', 'can_manage_offers', 'can_manage_place_info']
    search_fields = ['user__username', 'user__email', 'place__name']
    raw_id_fields = ['user', 'place']
    ordering = ['-created_at']
