from django.contrib import admin
from .models import CreditEnquiry, CreditReport, KYCEnquiry, KYCReport


@admin.register(CreditEnquiry)
class CreditEnquiryAdmin(admin.ModelAdmin):
    list_display = (
        'id', 'organisation', 'identifier', 'entity_type',
        'identification_type', 'reason', 'created_at'
    )
    list_filter = ('entity_type', 'organisation', 'created_at')
    search_fields = ('identifier', 'organisation__name')
    readonly_fields = ('created_at', 'updated_at', 'api_response')
    fieldsets = (
        ('Basic Information', {
            'fields': ('organisation', 'identifier', 'entity_type')
        }),
        ('Request Details', {
            'fields': (
                'identification_type', 'reason', 'client_consented',
                'sector', 'format', 'pi_code'
            )
        }),
        ('API Response', {
            'fields': ('api_response',)
        }),
        ('Timestamps', {
            'fields': ('created_at', 'updated_at'),
            'classes': ('collapse',)
        }),
    )


@admin.register(CreditReport)
class CreditReportAdmin(admin.ModelAdmin):
    list_display = (
        'id', 'organisation', 'enquiry_id', 'identifier',
        'entity_type', 'format', 'created_at'
    )
    list_filter = ('entity_type', 'organisation', 'created_at')
    search_fields = ('enquiry_id', 'identifier', 'organisation__name')
    readonly_fields = ('created_at', 'updated_at', 'api_response')
    fieldsets = (
        ('Basic Information', {
            'fields': ('organisation', 'enquiry_id', 'identifier', 'entity_type')
        }),
        ('Request Details', {
            'fields': ('format', 'individual_id', 'non_individual_id')
        }),
        ('API Response', {
            'fields': ('api_response',)
        }),
        ('Timestamps', {
            'fields': ('created_at', 'updated_at'),
            'classes': ('collapse',)
        }),
    )


@admin.register(KYCEnquiry)
class KYCEnquiryAdmin(admin.ModelAdmin):
    list_display = (
        'id', 'organisation', 'identifier', 'entity_type',
        'identification_type', 'reason', 'created_at'
    )
    list_filter = ('entity_type', 'organisation', 'created_at')
    search_fields = ('identifier', 'organisation__name')
    readonly_fields = ('created_at', 'updated_at', 'api_response')
    fieldsets = (
        ('Basic Information', {
            'fields': ('organisation', 'identifier', 'entity_type')
        }),
        ('Request Details', {
            'fields': (
                'identification_type', 'reason', 'client_consented',
                'sector', 'format', 'pi_code'
            )
        }),
        ('API Response', {
            'fields': ('api_response',)
        }),
        ('Timestamps', {
            'fields': ('created_at', 'updated_at'),
            'classes': ('collapse',)
        }),
    )


@admin.register(KYCReport)
class KYCReportAdmin(admin.ModelAdmin):
    list_display = (
        'id', 'organisation', 'enquiry_id', 'identifier',
        'entity_type', 'format', 'created_at'
    )
    list_filter = ('entity_type', 'organisation', 'created_at')
    search_fields = ('enquiry_id', 'identifier', 'organisation__name')
    readonly_fields = ('created_at', 'updated_at', 'api_response')
    fieldsets = (
        ('Basic Information', {
            'fields': ('organisation', 'enquiry_id', 'identifier', 'entity_type')
        }),
        ('Request Details', {
            'fields': ('format', 'individual_id', 'non_individual_id')
        }),
        ('API Response', {
            'fields': ('api_response',)
        }),
        ('Timestamps', {
            'fields': ('created_at', 'updated_at'),
            'classes': ('collapse',)
        }),
    )