from django.contrib import admin
from .models import EmailTemplate,EmailLog
import pytz
from django.utils import timezone
IST = pytz.timezone('Asia/Kolkata')

@admin.register(EmailTemplate)
class EmailTemplateAdmin(admin.ModelAdmin):
    list_display    = ('name', 'subject', 'updated_at_in_ist')
    search_fields   = ('name', 'subject')
    readonly_fields = ('updated_at',)
    fieldsets = (
        (None, {
            'fields': ('name', 'subject')
        }),
        ('Content', {
            'fields': ('body_text', 'body_html'),
            'description': "Use placeholders like ##Name## or ##phone##."
        }),
    )
    
    def updated_at_in_ist(self, obj):
        if obj.updated_at:
            updated_at_ist = obj.updated_at.astimezone(IST)
            return updated_at_ist.strftime('%d-%m-%Y %I:%M %p')  # eg: 26-04-2025 04:30 PM
        return "-"
    updated_at_in_ist.short_description = 'Updated At (IST)'
    updated_at_in_ist.admin_order_field = 'updated_at'



@admin.register(EmailLog)
class EmailLogAdmin(admin.ModelAdmin):
    list_display = ('to_email', 'template_name', 'subject', 'status', 'created_at_in_ist')
    list_filter = ('template_name', 'status',)
    search_fields = ('template_name', 'to_email', 'subject', 'body_text', 'body_html', 'error_message')
    ordering = ('-created_at',)

    def created_at_in_ist(self, obj):
        if obj.created_at:
            created_at_ist = obj.created_at.astimezone(IST)
            return created_at_ist.strftime('%d-%m-%Y %I:%M %p')  # eg: 26-04-2025 04:30 PM
        return "-"
    created_at_in_ist.short_description = 'Created At (IST)'
    created_at_in_ist.admin_order_field = 'created_at'