from django.contrib import admin
from users.models import User, CloseFriend, RestrictedUser, ProfileLink, VerificationCode, BlockedUser


@admin.register(User)
class UserAdmin(admin.ModelAdmin):
    list_display = ['id', 'username', 'email', 'first_name', 'last_name', 'created_at']
    search_fields = ['username', 'email', 'first_name', 'last_name']
    list_filter = ['created_at', 'is_active', 'is_staff']
    ordering = ['-created_at']
    readonly_fields = ['created_at', 'updated_at']


@admin.register(CloseFriend)
class CloseFriendAdmin(admin.ModelAdmin):
    list_display = ['user', 'friend', 'created_at']
    search_fields = ['user__username', 'friend__username']
    list_filter = ['created_at']


@admin.register(RestrictedUser)
class RestrictedUserAdmin(admin.ModelAdmin):
    list_display = ['user', 'restricted', 'created_at']
    search_fields = ['user__username', 'restricted__username']
    list_filter = ['created_at']


@admin.register(ProfileLink)
class ProfileLinkAdmin(admin.ModelAdmin):
    list_display = ['user', 'link_type', 'is_enabled', 'created_at']
    list_filter = ['is_enabled', 'link_type']
    search_fields = ['user__username', 'display_name', 'url']


@admin.register(VerificationCode)
class VerificationCodeAdmin(admin.ModelAdmin):
    list_display = ['user', 'code', 'type', 'created_at', 'expires_at']
    list_filter = ['type', 'created_at']
    search_fields = ['user__username', 'code']


@admin.register(BlockedUser)
class BlockedUserAdmin(admin.ModelAdmin):
    list_display = ['blocker', 'blocked', 'created_at']
    search_fields = ['blocker__username', 'blocked__username']