[package]
name = "{{PROJECT_NAME}}"
version = "0.1.0"
edition = "2021"
authors = ["{{AUTHOR}}"]
description = "A Kegani web application"
license = "MIT OR Apache-2.0"

[lib]
name = "{{PROJECT_NAME_SNAKE}}"
path = "src/lib.rs"

[[bin]]
name = "{{PROJECT_NAME}}"
path = "src/main.rs"

[dependencies]
# Kegani framework (published on crates.io)
kegani = "0.1"

# Web framework (required by generated code)
actix-web = "4"

# Async runtime
tokio = { version = "1", features = ["full"] }

# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
serde_urlencoded = "0.7"

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }

# Database
sqlx = { version = "0.8", features = ["runtime-tokio", "postgres", "chrono", "uuid", "rust_decimal"] }

# Utilities
uuid = { version = "1", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
once_cell = "1"
regex = "1"
futures-util = "0.3"

# Redis (caching)
redis = { version = "0.27", features = ["tokio-comp", "connection-manager"] }

# OpenTelemetry (tracing)
opentelemetry = "0.26"

# JWT Authentication
jsonwebtoken = "9"

# WebSocket (optional — enable with kegani feature "websocket")
# actix-web-actors = "4"

# OpenAPI docs
utoipa = "4"
utoipa-swagger-ui = "6"
tap = "1"

[dev-dependencies]
actix-rt = "2"
tokio-test = "0.4"

[profile.release]
opt-level = 3
lto = true
codegen-units = 1