from django.contrib import admin

from .models import (
    Channel,
    ChannelMember,
    Message,
    MessageAttachment,
    MessageReadReceipt,
    UserPresence,
)


@admin.register(Channel)
class ChannelAdmin(admin.ModelAdmin):
    list_display = ['name', 'channel_type', 'visibility', 'message_count', 'is_archived', 'created_at']
    list_filter = ['channel_type', 'visibility', 'is_archived']
    search_fields = ['name', 'description']


@admin.register(ChannelMember)
class ChannelMemberAdmin(admin.ModelAdmin):
    list_display = ['channel', 'user', 'role', 'status', 'unread_count', 'joined_at']
    list_filter = ['role', 'status']


@admin.register(Message)
class MessageAdmin(admin.ModelAdmin):
    list_display = ['channel', 'sender', 'message_type', 'is_edited', 'is_deleted', 'created_at']
    list_filter = ['message_type', 'is_edited', 'is_deleted']
    search_fields = ['content']


@admin.register(MessageAttachment)
class MessageAttachmentAdmin(admin.ModelAdmin):
    list_display = ['file_name', 'mime_type', 'file_size', 'message', 'created_at']


@admin.register(MessageReadReceipt)
class MessageReadReceiptAdmin(admin.ModelAdmin):
    list_display = ['message', 'user', 'read_at']


@admin.register(UserPresence)
class UserPresenceAdmin(admin.ModelAdmin):
    list_display = ['user', 'status', 'last_seen', 'custom_status']
    list_filter = ['status']
