import psycopg
import os

# --- ตั้งค่าการเชื่อมต่อ (สำคัญ: ต้องตรงกับค่าใน .env) ---
DB_HOST = os.environ.get("DB_HOST", "localhost")  # ใช้ localhost
DB_PORT = os.environ.get("DB_PORT", 26257)
DB_NAME = os.environ.get("DB_NAME", "my_db")
DB_USER = os.environ.get("DB_USER", "root")
DB_PASSWORD = os.environ.get("DB_PASSWORD", "")

print(f"Attempting to connect to CockroachDB at {DB_HOST}:{DB_PORT} to create database '{DB_NAME}'...")

try:
    # ต้องเชื่อมต่อไปยัง Database มาตรฐาน (defaultdb) ก่อน เพื่อให้มีสิทธิ์สร้าง Database ใหม่
    conn = psycopg.connect(
        host=DB_HOST,
        port=DB_PORT,
        dbname="defaultdb", # ใช้ defaultdb เพื่อสร้าง my_db
        user=DB_USER,
        password=DB_PASSWORD
    )
    conn.autocommit = True
    cur = conn.cursor()

    # คำสั่งสร้าง Database
    cur.execute(f"CREATE DATABASE IF NOT EXISTS {DB_NAME};")

    cur.close()
    conn.close()
    print(f"Database '{DB_NAME}' created or already exists successfully.")

except Exception as e:
    print(f"ERROR: Failed to connect to or create database: {e}")
    print("Ensure Docker Compose is running and environment variables (DB_HOST, DB_PORT) are set correctly.")