import sqlite3
import os
from flask import current_app, g

def get_db_path():
    # Use env var if set, else fallback to default server path logic if needed,
    # but for now use local or user provided path.
    # Future proofing as requested by user.
    env_path = os.getenv('DB_PATH') 
    if env_path:
        return env_path
    
    # Default local dev path
    return os.path.join(current_app.root_path, '..', 'economy.db')

def get_db():
    if 'db' not in g:
        g.db = sqlite3.connect(get_db_path())
        g.db.row_factory = sqlite3.Row
    return g.db

def close_db(e=None):
    db = g.pop('db', None)
    if db is not None:
        db.close()

def init_app(app):
    app.teardown_appcontext(close_db)
