from django.contrib import admin
from .models import ChatRoom, Message, SupportTicket, RoomMember, MessageReadStatus


@admin.register(ChatRoom)
class ChatRoomAdmin(admin.ModelAdmin):
    list_display = ['name', 'room_type', 'status', 'priority', 'created_by', 'created_at']
    list_filter = ['room_type', 'status', 'priority', 'created_at']
    search_fields = ['name', 'subject', 'description']
    readonly_fields = ['created_at', 'updated_at']
    raw_id_fields = ['created_by', 'organisation', 'branch']


@admin.register(Message)
class MessageAdmin(admin.ModelAdmin):
    list_display = ['user', 'room', 'message_type', 'is_edited', 'is_deleted', 'created_at']
    list_filter = ['message_type', 'is_edited', 'is_deleted', 'created_at']
    search_fields = ['content', 'user__username', 'room__name']
    readonly_fields = ['created_at', 'updated_at']
    raw_id_fields = ['user', 'room']


@admin.register(SupportTicket)
class SupportTicketAdmin(admin.ModelAdmin):
    list_display = ['ticket_id', 'subject', 'status', 'priority', 'customer', 'assigned_staff', 'created_at']
    list_filter = ['status', 'priority', 'created_at']
    search_fields = ['ticket_id', 'subject', 'description']
    readonly_fields = ['created_at', 'updated_at', 'resolved_at']
    raw_id_fields = ['customer', 'assigned_staff', 'chat_room']


@admin.register(RoomMember)
class RoomMemberAdmin(admin.ModelAdmin):
    list_display = ['user', 'room', 'is_admin', 'is_active', 'joined_at']
    list_filter = ['is_admin', 'is_active', 'joined_at']
    search_fields = ['user__username', 'room__name']
    raw_id_fields = ['user', 'room']


@admin.register(MessageReadStatus)
class MessageReadStatusAdmin(admin.ModelAdmin):
    list_display = ['user', 'message', 'read_at']
    list_filter = ['read_at']
    search_fields = ['user__username']
    raw_id_fields = ['user', 'message']
