[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "notify-bridge-server"
version = "0.8.2"
description = "Standalone Notify Bridge server — FastAPI REST API with SQLite database"
requires-python = ">=3.12"
dependencies = [
    "notify-bridge-core>=0.1.0",
    "fastapi>=0.115",
    "uvicorn[standard]>=0.32",
    "sqlmodel>=0.0.22",
    "aiosqlite>=0.20",
    "pyjwt>=2.9",
    "bcrypt>=4.2",
    "apscheduler>=3.10,<4",
    "aiohttp>=3.9",
    "pydantic-settings>=2.0",
    "slowapi>=0.1.9",
    "cachetools>=5.3",
    "python-multipart>=0.0.9",
    "prometheus_client>=0.20",
]

[project.optional-dependencies]
dev = [
    "pytest>=8.0",
    "pytest-asyncio>=0.23",
    "httpx>=0.27",
    "aioresponses>=0.7",
]

[project.scripts]
notify-bridge = "notify_bridge_server.main:run"

[tool.hatch.build.targets.wheel]
packages = ["src/notify_bridge_server"]

[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
# The default filter doesn't let SQLAlchemy warnings fail the suite, which
# matters because our migrations emit a handful of deprecation warnings we
# don't want to suppress at source.
filterwarnings = [
    "ignore::DeprecationWarning:passlib",
    "ignore::DeprecationWarning:bcrypt",
]
