"""CRM Django admin registrations."""

from __future__ import annotations

from django.contrib import admin

from simorgh.apps.crm.models import Contact, ContactAddress, ContactEmail, ContactPhone, ContactTag


class ContactPhoneInline(admin.TabularInline):
    model = ContactPhone
    extra = 0
    fields = ("type", "number", "is_default")


class ContactEmailInline(admin.TabularInline):
    model = ContactEmail
    extra = 0
    fields = ("type", "address", "is_default")


class ContactAddressInline(admin.TabularInline):
    model = ContactAddress
    extra = 0
    fields = ("type", "street", "city", "country", "is_default")


@admin.register(Contact)
class ContactAdmin(admin.ModelAdmin):
    list_display = ("name", "type", "tenant", "is_customer", "is_vendor", "deleted_at")
    list_filter = ("type", "is_customer", "is_vendor", "tenant")
    search_fields = ("name",)
    raw_id_fields = ("tenant", "organization_node", "parent_company")
    inlines = [ContactPhoneInline, ContactEmailInline, ContactAddressInline]
    filter_horizontal = ("tags",)


@admin.register(ContactTag)
class ContactTagAdmin(admin.ModelAdmin):
    list_display = ("name", "color", "tenant")
    list_filter = ("tenant",)
    search_fields = ("name",)
