from django.contrib import admin
from django.utils.translation import gettext_lazy as _
from .models import Offer


@admin.register(Offer)
class OfferAdmin(admin.ModelAdmin):
    """Offer Admin"""
    list_display = ['id', 'place', 'title', 'discount', 'start_date', 'end_date', 'is_active', 'created_at']
    list_filter = ['is_active', 'start_date', 'end_date', 'created_at']
    search_fields = ['place__name', 'title', 'description']
    raw_id_fields = ['place']
    readonly_fields = ['created_at', 'updated_at']
    date_hierarchy = 'start_date'
    ordering = ['-created_at']
    
    fieldsets = (
        (_('Offer Information'), {
            'fields': ('place', 'title', 'description', 'discount', 'image', 'terms')
        }),
        (_('Dates'), {
            'fields': ('start_date', 'end_date')
        }),
        (_('Status'), {
            'fields': ('is_active',)
        }),
        (_('Timestamps'), {
            'fields': ('created_at', 'updated_at')
        }),
    )
    
    actions = ['activate_offers', 'deactivate_offers']
    
    def activate_offers(self, request, queryset):
        queryset.update(is_active=True)
    activate_offers.short_description = _('Activate selected offers')
    
    def deactivate_offers(self, request, queryset):
        queryset.update(is_active=False)
    deactivate_offers.short_description = _('Deactivate selected offers')
