
from django.contrib import admin
from .models import Invoice, BillingCycle

@admin.register(Invoice)
class InvoiceAdmin(admin.ModelAdmin):
    list_display = ['invoice_number', 'customer', 'total_amount', 'status', 'due_date', 'created_at']
    list_filter = ['status', 'due_date', 'created_at']
    search_fields = ['invoice_number', 'customer__full_name']
    readonly_fields = ['invoice_number', 'created_at', 'updated_at']
    
    fieldsets = (
        ('Invoice Details', {
            'fields': ('invoice_number', 'customer', 'package')
        }),
        ('Amounts', {
            'fields': ('package_amount', 'installation_fee', 'penalty_amount', 'total_amount')
        }),
        ('Dates', {
            'fields': ('issue_date', 'due_date', 'billing_period_start', 'billing_period_end')
        }),
        ('Status & Notes', {
            'fields': ('status', 'notes')
        }),
        ('Timestamps', {
            'fields': ('created_at', 'updated_at'),
            'classes': ('collapse',)
        })
    )

@admin.register(BillingCycle)
class BillingCycleAdmin(admin.ModelAdmin):
    list_display = ['customer', 'next_billing_date', 'is_active']
    list_filter = ['is_active', 'next_billing_date']
    search_fields = ['customer__full_name']
