"""
chat/admin.py

Admin configuration for Chat models.
"""

from django.contrib import admin

from chat.models import (
    ChatAttachment,
    ChatMessage,
    ChatRoom,
    ChatRoomMember,
    MessageReaction,
)


class ChatRoomMemberInline(admin.TabularInline):
    """Inline admin for chat room members."""

    model = ChatRoomMember
    extra = 1


@admin.register(ChatRoom)
class ChatRoomAdmin(admin.ModelAdmin):
    """Admin for ChatRoom model."""

    list_display = ["id", "name", "room_type", "company_id", "created_at", "is_active"]
    list_filter = ["room_type", "company_id", "is_active"]
    search_fields = ["name", "description"]
    inlines = [ChatRoomMemberInline]


@admin.register(ChatRoomMember)
class ChatRoomMemberAdmin(admin.ModelAdmin):
    """Admin for ChatRoomMember model."""

    list_display = ["id", "chat_room", "employee_id", "role", "is_muted"]
    list_filter = ["role", "is_muted"]
    search_fields = ["employee_id__employee_first_name", "chat_room__name"]


@admin.register(ChatMessage)
class ChatMessageAdmin(admin.ModelAdmin):
    """Admin for ChatMessage model."""

    list_display = ["id", "chat_room", "sender", "message_type", "created_at"]
    list_filter = ["message_type", "is_edited"]
    search_fields = ["content", "sender__employee_first_name"]


@admin.register(ChatAttachment)
class ChatAttachmentAdmin(admin.ModelAdmin):
    """Admin for ChatAttachment model."""

    list_display = ["id", "message", "file_name", "attachment_type", "file_size"]
    list_filter = ["attachment_type"]
    search_fields = ["file_name"]


@admin.register(MessageReaction)
class MessageReactionAdmin(admin.ModelAdmin):
    """Admin for MessageReaction model."""

    list_display = ["id", "message", "employee_id", "emoji"]
    search_fields = ["emoji", "employee_id__employee_first_name"]

