from datetime import datetime, time
import pytz

def convert_to_ist_datetime(date_str: str, use_current_time: bool = False) -> datetime:
    india_tz = pytz.timezone("Asia/Kolkata")

    try:
        date_part = datetime.strptime(date_str, "%d/%m/%Y").date()
    except ValueError as e:
        raise ValueError(f"Invalid date format: {date_str}. Expected 'DD/MM/YYYY'.") from e

    if use_current_time:
        time_part = datetime.now(india_tz).time()
    else:
        time_part = time(0, 0, 0)

    combined = datetime.combine(date_part, time_part)
    localized = india_tz.localize(combined)

    return localized