import os
import uuid
from django.conf import settings
from django.core.exceptions import ValidationError

def validate_image_size(image, max_size_mb=2):
    if image:
        max_size = max_size_mb * 1024 * 1024
        if image.size > max_size:
            raise ValidationError(f"Image too large (max {max_size_mb} MB allowed).")
    return image


def validate_required_field(value, field_name):
    print(value,"value")    
    print("field",field_name)
    print('v',str(value).strip())
    if not value or str(value).strip() == "":
        raise ValidationError(f"{field_name.capitalize()} cannot be empty.")
    return value


def save_image_locally(image_file, path_prefix="uploads/"):
    if not image_file:
        return None
    upload_dir = os.path.join(settings.MEDIA_ROOT, path_prefix)
    os.makedirs(upload_dir, exist_ok=True)
    ext = image_file.name.split('.')[-1].lower()
    filename = f"{uuid.uuid4()}.{ext}"
    filepath = os.path.join(upload_dir, filename)
    with open(filepath, 'wb+') as dest:
        for chunk in image_file.chunks():
            dest.write(chunk)
    return os.path.join(path_prefix, filename)
