from django.contrib import admin
from apps.accounts.admin_utils import CompanyScopedAdminMixin
from .models import Company, Branch, Department, Designation, Shift, Holiday, CompanyPolicy

class CompanyAdmin(CompanyScopedAdminMixin, admin.ModelAdmin): company_lookup = "pk"
class BranchAdmin(CompanyScopedAdminMixin, admin.ModelAdmin): company_lookup = "company"
class DepartmentAdmin(CompanyScopedAdminMixin, admin.ModelAdmin): company_lookup = "company"
class DesignationAdmin(CompanyScopedAdminMixin, admin.ModelAdmin): company_lookup = "company"
class ShiftAdmin(CompanyScopedAdminMixin, admin.ModelAdmin): company_lookup = "company"
class HolidayAdmin(CompanyScopedAdminMixin, admin.ModelAdmin): company_lookup = "company"
class CompanyPolicyAdmin(CompanyScopedAdminMixin, admin.ModelAdmin):
    company_lookup = "company"

    def has_change_permission(self, request, obj=None):
        allowed = super().has_change_permission(request, obj)
        if not allowed or obj is None or request.user.is_superuser:
            return allowed
        from django.utils import timezone
        return obj.effective_from > timezone.localdate()

admin.site.register(Company, CompanyAdmin)
admin.site.register(Branch, BranchAdmin)
admin.site.register(Department, DepartmentAdmin)
admin.site.register(Designation, DesignationAdmin)
admin.site.register(Shift, ShiftAdmin)
admin.site.register(Holiday, HolidayAdmin)
admin.site.register(CompanyPolicy, CompanyPolicyAdmin)
