from datetime import datetime, timedelta
from sqlalchemy.orm import Session
from app.common.models import Settings

def convert_to_local_time(db: Session, utc_time: datetime) -> datetime:
    try:
        timezone_setting = db.query(Settings).filter(Settings.name == 'TIMEZONE_OFFSET').first()
        
        if not timezone_setting or timezone_setting.value is None:
            return utc_time
            
        offset_str = str(timezone_setting.value)
        offset_hours = int(offset_str.replace('+', '').replace('-', ''))
        if offset_str.startswith('-'):
            offset_hours = -offset_hours
            
        local_time = utc_time + timedelta(hours=offset_hours)
        return local_time
        
    except Exception as e:
        print(f"Error converting timezone: {str(e)}")
        return utc_time 