import os
from pathlib import Path

# Tests must never run against the production /data/familydashboard.db bind mount.
# This environment override happens before importing app.db.session, where the
# SQLAlchemy engine is created from FAMILYDASHBOARD_DATABASE_URL.
os.environ["FAMILYDASHBOARD_DATABASE_URL"] = "sqlite:////tmp/familydashboard-test.db"
Path("/tmp/familydashboard-test.db").unlink(missing_ok=True)

import pytest
from sqlmodel import SQLModel

from app.db.session import engine, seed_database


@pytest.fixture(autouse=True)
def reset_database():
    SQLModel.metadata.drop_all(engine)
    SQLModel.metadata.create_all(engine)
    seed_database()
    yield


def admin_headers(client):
    response = client.post("/api/admin/auth/login", json={"pin": "9999"})
    assert response.status_code == 200
    return {"X-Admin-Session": response.json()["token"]}
