import sqlite3
from pathlib import Path
from werkzeug.security import generate_password_hash

DB_PATH = Path("instance/inventory.sqlite3")

USERNAME = "admin"
NEW_PASSWORD = "ChangeThisPassword123!"

if not DB_PATH.exists():
    raise SystemExit(f"Database not found: {DB_PATH.resolve()}")

conn = sqlite3.connect(DB_PATH)
cur = conn.cursor()

cur.execute(
    """
    UPDATE users
    SET password_hash = ?,
        must_change_password = 0,
        is_active = 1,
        updated_at = datetime('now')
    WHERE username = ?
    """,
    (generate_password_hash(NEW_PASSWORD), USERNAME),
)

if cur.rowcount == 0:
    cur.execute(
        """
        INSERT INTO users (
            username, password_hash, email, role, is_active,
            must_change_password, created_at, updated_at
        )
        VALUES (?, ?, ?, 'admin', 1, 0, datetime('now'), datetime('now'))
        """,
        (USERNAME, generate_password_hash(NEW_PASSWORD), "admin@example.com"),
    )

conn.commit()
conn.close()

print(f"Admin password reset for username: {USERNAME}")
print(f"New password: {NEW_PASSWORD}")