# attendance/utils/upload_paths.py

import os
from django.utils import timezone


def leave_document_upload_path(instance, filename):
    """
    Generate upload path for leave documents:
    attendance/leaves/{school_id}/{academic_year_id}/{student_id}/{filename}
    """
    # Get file extension
    ext = filename.split('.')[-1] if '.' in filename else ''
    
    # Create unique filename with timestamp
    timestamp = timezone.now().strftime('%Y%m%d_%H%M%S')
    student_id = instance.student.id if instance.student else 'unknown'
    new_filename = f"leave_{student_id}_{timestamp}.{ext}" if ext else f"leave_{student_id}_{timestamp}"
    
    # Get school and academic year info
    school_id = 'default'
    academic_year_id = 'default'
    
    try:
        if instance.enrollment and instance.enrollment.academic_class:
            academic_year = instance.enrollment.academic_class.academic_year
            if academic_year:
                # If academic_year has school_id field
                if hasattr(academic_year, 'school_id'):
                    school_id = academic_year.school_id
                academic_year_id = academic_year.id
    except:
        pass
    
    return f"attendance/leaves/{school_id}/{academic_year_id}/{student_id}/{new_filename}"