from django import forms
from django.contrib import admin
from .models import SupportTicket, SupportTicketImage
from .choices import SupportTicketStatus


class SupportTicketAdminForm(forms.ModelForm):
    status = forms.ChoiceField(
        choices=SupportTicketStatus.model_choices()
    )

    class Meta:
        model = SupportTicket
        fields = "__all__"

@admin.register(SupportTicket)
class SupportTicketAdmin(admin.ModelAdmin):

    form = SupportTicketAdminForm

    list_display = (
        "id",
        "user",
        "status",
        "created_at",
        "updated_at",
    )
    list_display_links = ("user",)
    list_filter = ("status", "created_at")
    search_fields = ("id", "user__email", "user__username")
    readonly_fields = ("created_at", "updated_at")
    ordering = ("-created_at",)

    fieldsets = (
        ("Ticket Info", {
            "fields": ("user", "description", "status")
        }),
        ("Timestamps", {
            "fields": ("created_at", "updated_at")
        }),
    )

@admin.register(SupportTicketImage)
class SupportTicketImageAdmin(admin.ModelAdmin):
    list_display = ("id", "ticket", "created_at")
    list_filter = ("created_at",)
    search_fields = ("ticket__id",)
    readonly_fields = ("created_at",)
    list_display_links = ("ticket",)
