from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
import os

# 데이터베이스 URL (환경변수에서 읽거나 기본값 사용)
DATABASE_URL = os.getenv(
    "DATABASE_URL",
    "postgresql://tkbom_user:tkbom_password@tkeg-postgres:5432/tk_bom"
)

# SQLAlchemy 엔진 생성 (UTF-8 인코딩 설정)
engine = create_engine(
    DATABASE_URL,
    connect_args={
        "client_encoding": "utf8",
        "options": "-c client_encoding=utf8 -c timezone=UTC"
    },
    pool_pre_ping=True,
    echo=False
)

# 세션 팩토리 생성
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

# Base 클래스 생성
Base = declarative_base()

# 데이터베이스 의존성 함수
def get_db():
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()
