# [CRUCIBLE-SEED]
# category: hardcoded_secret
# severity: critical
# language: python
# expected: hardcoded database password in connection string

import psycopg2
from psycopg2.extras import RealDictCursor

DB_HOST = "prod-db.internal.company.com"
DB_PORT = 5432
DB_NAME = "users_production"
DB_USER = "db_admin"
DB_PASSWORD = "Sup3rS3cr3tPa$$w0rd!"


def get_connection():
    return psycopg2.connect(
        host=DB_HOST,
        port=DB_PORT,
        dbname=DB_NAME,
        user=DB_USER,
        password=DB_PASSWORD,
        cursor_factory=RealDictCursor,
    )


def get_user(user_id: int) -> dict:
    conn = get_connection()
    with conn.cursor() as cur:
        cur.execute("SELECT * FROM users WHERE id = %s", (user_id,))
        return cur.fetchone()


def list_users() -> list:
    conn = get_connection()
    with conn.cursor() as cur:
        cur.execute("SELECT id, email, created_at FROM users")
        return cur.fetchall()
