from django.contrib import admin
from .models import Permission, Role, UserCompanyRole

@admin.register(Permission)
class PermissionAdmin(admin.ModelAdmin):
    list_display = ['id', 'name', 'codename', 'is_active', 'created_at']
    list_filter = ['is_active', 'created_at']
    search_fields = ['name', 'codename']
    readonly_fields = ['created_at', 'updated_at']

@admin.register(Role)
class RoleAdmin(admin.ModelAdmin):
    list_display = ['id','name', 'company', 'is_active', 'created_at']
    list_filter = ['is_active', 'company', 'created_at']
    search_fields = ['name', 'company__name']
    filter_horizontal = ['permissions']  # Easy to select permissions
    readonly_fields = ['created_at', 'updated_at']
    
    fieldsets = (
        ('Basic Information', {
            'fields': ('name', 'company', 'description')
        }),
        ('Settings', {
            'fields': ('is_active',)
        }),
        ('Permissions', {
            'fields': ('permissions',)
        }),
        ('Timestamps', {
            'fields': ('created_at', 'updated_at'),
            'classes': ('collapse',)
        }),
    )

@admin.register(UserCompanyRole)
class UserCompanyRoleAdmin(admin.ModelAdmin):
    list_display = ['id', 'user', 'company', 'role', 'is_active', 'created_at']
    list_filter = ['is_active', 'company', 'role', 'created_at']
    search_fields = ['user__username', 'user__email', 'company__name', 'role__name']
    readonly_fields = ['created_at', 'updated_at']
    
    fieldsets = (
        ('User & Company', {
            'fields': ('user', 'company')
        }),
        ('Role Assignment', {
            'fields': ('role', 'is_active')
        }),
        ('Timestamps', {
            'fields': ('created_at', 'updated_at'),
            'classes': ('collapse',)
        }),
    )
