# -*- coding: utf-8 -*-
from django.contrib import admin
from .models import Brand, Agency, Campaign, Creative, AdSpot, AdBreakHistory, CampaignReport


@admin.register(Brand)
class BrandAdmin(admin.ModelAdmin):
    list_display = ('name', 'website', 'is_active')
    list_filter = ('is_active',)
    search_fields = ('name', 'description')
    readonly_fields = ('created_at', 'updated_at')


@admin.register(Agency)
class AgencyAdmin(admin.ModelAdmin):
    list_display = ('name', 'contact_person', 'email', 'phone', 'is_active')
    list_filter = ('is_active',)
    search_fields = ('name', 'contact_person', 'email')
    readonly_fields = ('created_at', 'updated_at')


@admin.register(Campaign)
class CampaignAdmin(admin.ModelAdmin):
    list_display = ('name', 'brand', 'agency', 'status', 'start_date', 'end_date')
    list_filter = ('status', 'start_date', 'end_date')
    search_fields = ('name', 'brand__name', 'agency__name')
    readonly_fields = ('created_at', 'updated_at')


@admin.register(Creative)
class CreativeAdmin(admin.ModelAdmin):
    list_display = ('name', 'creative_type', 'duration', 'is_approved')
    list_filter = ('creative_type', 'is_approved')
    search_fields = ('name', 'description')
    readonly_fields = ('created_at', 'updated_at')


@admin.register(AdSpot)
class AdSpotAdmin(admin.ModelAdmin):
    list_display = ('name', 'campaign', 'creative', 'position', 'is_active')
    list_filter = ('is_active', 'position')
    search_fields = ('name', 'campaign__name')
    readonly_fields = ('created_at', 'updated_at')


@admin.register(AdBreakHistory)
class AdBreakHistoryAdmin(admin.ModelAdmin):
    list_display = ('adspot', 'channel', 'executed_at', 'duration', 'impressions')
    list_filter = ('executed_at', 'channel')
    search_fields = ('adspot__name', 'channel')
    readonly_fields = ('created_at', 'updated_at')


@admin.register(CampaignReport)
class CampaignReportAdmin(admin.ModelAdmin):
    list_display = ('campaign', 'report_type', 'start_date', 'end_date', 'total_impressions')
    list_filter = ('report_type', 'start_date', 'end_date')
    search_fields = ('campaign__name', 'report_type')
    readonly_fields = ('created_at', 'updated_at')
