import os
from django.utils import timezone


def study_material_upload_path(instance, filename):
    """
    study_materials/subject/{subject_id}/{teacher_id}/{timestamp}_{filename}
    """
    ext = os.path.splitext(filename)[1]
    base = os.path.splitext(filename)[0]
    base = "".join(c for c in base if c.isalnum() or c in "._-")
    timestamp = timezone.now().strftime("%Y%m%d_%H%M%S")
    subject_id = getattr(instance, "subject_id", "default")
    teacher_id = getattr(instance, "uploaded_by_id", "default")
    new_name = f"{base}_{timestamp}{ext}" if ext else f"{base}_{timestamp}"
    return f"study_materials/subject/{subject_id}/{teacher_id}/{new_name}"


def previous_year_paper_upload_path(instance, filename):
    """
    study_materials/pyq/{standard_id}/{subject_id}/{year}/{timestamp}_{filename}
    """
    ext = os.path.splitext(filename)[1]
    base = os.path.splitext(filename)[0]
    base = "".join(c for c in base if c.isalnum() or c in "._-")
    timestamp = timezone.now().strftime("%Y%m%d_%H%M%S")
    standard_id = getattr(instance, "standard_id", "default")
    subject_id = getattr(instance, "subject_id", "default")
    year = getattr(instance, "year", "default")
    new_name = f"{base}_{timestamp}{ext}" if ext else f"{base}_{timestamp}"
    return f"study_materials/pyq/{standard_id}/{subject_id}/{year}/{new_name}"
