# users/admin.py

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin # เปลี่ยนชื่อเป็น BaseUserAdmin เพื่อป้องกันการซ้ำซ้อน
from .models import CustomUser

# สร้าง Custom User Admin เพื่อจัดการฟิลด์เพิ่มเติม
class CustomUserAdmin(BaseUserAdmin):
    # 1. กำหนดฟิลด์ที่จะแสดงในหน้าลิสต์ผู้ใช้
    list_display = (
        'username',
        'email',
        'first_name',
        'last_name',
        'is_staff',
        'is_superuser',
        'role'
    )

    # 2. กำหนดโครงสร้างและการจัดกลุ่มฟิลด์ในหน้าแก้ไขผู้ใช้
    fieldsets = (
        (None, {'fields': ('username', 'password')}),
        ('Personal info', {'fields': ('first_name', 'last_name', 'email', 'phone_number')}),
        ('Role and Permissions', { # สร้างกลุ่มใหม่เพื่อจัดระเบียบ
            'fields': ('role', 'is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions'),
        }),
        ('Important dates', {'fields': ('last_login', 'date_joined')}),
    )

    # 3. กำหนดฟิลด์ที่ใช้ในการค้นหาในหน้าลิสต์ผู้ใช้
    search_fields = ('username', 'email', 'phone_number')

# ลงทะเบียน CustomUser ด้วย CustomUserAdmin ที่ถูกปรับแต่ง
admin.site.register(CustomUser, CustomUserAdmin)