from django.contrib import admin
from .models import Profile, Company, Skill, Project, Education, Service, Testimonial, Brand, ContactMessage

@admin.register(Profile)
class ProfileAdmin(admin.ModelAdmin):
    list_display = ('name', 'email', 'phone', 'birth_date')
    fieldsets = (
        ('Basic Information', {
            'fields': ('name', 'birth_date', 'bio', 'email', 'phone')
        }),
        ('Social Links', {
            'fields': ('github', 'linkedin', 'facebook', 'whatsapp')
        }),
        ('SEO Optimization', {
            'fields': ('meta_title', 'meta_description', 'og_image'),
            'classes': ('collapse',),
        }),
    )

@admin.register(Company)
class CompanyAdmin(admin.ModelAdmin):
    list_display = ('name', 'role', 'location', 'established_date')
    prepopulated_fields = {'slug': ('name',)}
    search_fields = ('name', 'role', 'description')
    fieldsets = (
        ('Corporate Identity', {
            'fields': ('name', 'slug', 'role', 'location', 'established_date', 'website_url', 'description')
        }),
        ('SEO Settings', {
            'fields': ('meta_title', 'meta_description'),
            'classes': ('collapse',),
        }),
    )

@admin.register(Skill)
class SkillAdmin(admin.ModelAdmin):
    list_display = ('name', 'category', 'proficiency', 'color')
    list_filter = ('category',)
    search_fields = ('name',)

@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
    list_display = ('title', 'featured', 'order')
    list_filter = ('featured', 'tech_stack')
    search_fields = ('title', 'description', 'tech_stack')
    prepopulated_fields = {'slug': ('title',)}

@admin.register(Education)
class EducationAdmin(admin.ModelAdmin):
    list_display = ('degree', 'institution', 'period')
    search_fields = ('degree', 'institution')

@admin.register(Service)
class ServiceAdmin(admin.ModelAdmin):
    list_display = ('title', 'order', 'icon')
    ordering = ('order',)

@admin.register(Testimonial)
class TestimonialAdmin(admin.ModelAdmin):
    list_display = ('client_name', 'country_name', 'tagline')
    search_fields = ('client_name', 'quote')

@admin.register(Brand)
class BrandAdmin(admin.ModelAdmin):
    list_display = ('name', 'order')
    ordering = ('order',)

@admin.register(ContactMessage)
class ContactMessageAdmin(admin.ModelAdmin):
    list_display = ('name', 'email', 'phone', 'subject', 'created_at')
    readonly_fields = ('name', 'email', 'phone', 'subject', 'message', 'created_at')
    search_fields = ('name', 'email', 'subject', 'message')
    list_filter = ('created_at',)
    
    def has_add_permission(self, request):
        return False  # Messages are only created via the website
