from django.contrib import admin
from .models import (
    Company, OfficeHours,
    SalesTiming, CatchPhrase,
    CompanyHistory, Holiday,
    CompanyBotSettings ,Dealership,
    DealershipDepartment,
    CallCatchPhrase,
    Service, ServicePrice
)


@admin.register(CompanyBotSettings)
class CompanyBotSettingsAdmin(admin.ModelAdmin):
    list_display = [
            'id', 'company', 'bot_name',
            'phone_number', 'is_active',
            'created_at', 'updated_at'
        ]
    list_filter = ['company', 'is_active']
    search_fields = ['company__name', 'bot_name']
    ordering = ['company']


@admin.register(Holiday)
class HolidayAdmin(admin.ModelAdmin):
    list_display = ['id', 'company', 'name', 'message', 'start_date', 'end_date']
    list_filter = ['company', 'start_date', 'end_date']
    search_fields = ['company__name', 'name']
    ordering = ['company', 'start_date']


@admin.register(OfficeHours)
class OfficeHoursAdmin(admin.ModelAdmin):
    list_display = ['id', 'company', 'day', 'is_open', 'start_time', 'end_time']
    list_filter = ['company', 'day', 'is_open']
    search_fields = ['company__name', 'day']
    ordering = ['company', 'day']


@admin.register(SalesTiming)
class SalesTimingAdmin(admin.ModelAdmin):
    list_display = ['id','company', 'bot', 'start_time', 'end_time', 'is_active']
    list_filter = ['company', 'is_active', 'bot']
    search_fields = ['company__name', 'bot']
    ordering = ['company', 'start_time']


@admin.register(CatchPhrase)
class CatchPhraseAdmin(admin.ModelAdmin):
    list_display = ['id','company', 'phrase']
    list_filter = ['company']
    search_fields = ['company__name', 'phrase']
    ordering = ['company', 'phrase']


@admin.register(CompanyHistory)
class CompanyHistoryAdmin(admin.ModelAdmin):
    list_display = ['id','company', 'updated_by', 'action', 'model_name', 'object_id', 'created_at']
    list_filter = ['company', 'action', 'model_name', 'created_at']
    search_fields = ['company__name', 'updated_by__username', 'model_name', 'details']
    ordering = ['-created_at']
    readonly_fields = ['created_at']
    list_per_page = 50


@admin.register(Company)
class CompanyAdmin(admin.ModelAdmin):
    list_display = ['id','name', 'phone', 'timezone', 'is_active']
    list_filter = ['is_active', 'timezone']
    search_fields = ['name', 'phone']
    inlines = []

@admin.register(Dealership)
class DealershipAdmin(admin.ModelAdmin):
    list_display = ['name', 'company', 'contact_person_name', 'id', 'contact_phone', 'created_at']
    search_fields = ['name', 'contact_person_name', 'contact_phone']
    ordering = ['-created_at']

@admin.register(DealershipDepartment)
class DealershipDepartmentAdmin(admin.ModelAdmin):
    list_display = ['name', 'dealership', 'id', 'created_at']
    search_fields = ['name', 'dealership__name']
    ordering = ['-created_at']

@admin.register(CallCatchPhrase)
class CallCatchPhraseAdmin(admin.ModelAdmin):
    list_display = ['phrase', 'company', 'detected_at', 'id']
    search_fields = ['phrase__phrase', 'phrase__company__name']
    ordering = ['-detected_at']

@admin.register(Service)
class ServiceAdmin(admin.ModelAdmin):
    list_display = ['name', 'company', 'is_active', 'id']
    ordering = ['-created_at']

@admin.register(ServicePrice)
class ServicePriceAdmin(admin.ModelAdmin):
    list_display = ['service', 'base_price', 'company']
    ordering = ['-created_at']
