[package]
name = "thoughts-backend"
version = "0.1.0"
edition = "2021"
publish = false

# docs
authors = ["Gabriel Kaszewski <gabrielkaszewski@gmail.com>"]
description = "Thoughts backend"
license = "MIT"
readme = "README.md"

[workspace]
members = ["api", "app", "doc", "models", "migration", "utils"]

[workspace.dependencies]
tower = { version = "0.5.2", default-features = false }
axum = { version = "0.8.4", default-features = false }
sea-orm = { version = "1.1.12" }
sea-query = { version = "0.32.6" }                                      # Added sea-query dependency
serde = { version = "1.0.219", features = ["derive"] }
serde_json = { version = "1.0.140", features = ["raw_value"] }
tracing = "0.1.41"
utoipa = { version = "5.4.0", features = ["macros", "chrono", "uuid"] }
validator = { version = "0.20.0", default-features = false }
chrono = { version = "0.4.41", features = ["serde"] }
tokio = { version = "1.45.1", features = ["full"] }

[dependencies]
api = { path = "api" }
utils = { path = "utils" }
doc = { path = "doc" }

sea-orm = { workspace = true }

# logging
tracing = { workspace = true }
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }

# runtime
axum = { workspace = true, features = ["tokio", "http1", "http2"] }
prefork = { version = "0.6.0", default-features = false, optional = true }
tokio = { version = "1.45.1", features = ["full"] }

# shuttle runtime
shuttle-axum = { version = "0.55.0", optional = true }
shuttle-runtime = { version = "0.55.0", optional = true }
shuttle-shared-db = { version = "0.55.0", features = [
    "postgres",
], optional = true }

[dev-dependencies]
app = { path = "app" }
models = { path = "models" }

http-body-util = "0.1.3"
serde_json = { workspace = true }

[features]
default = ["prefork"]
prefork = ["prefork/tokio"]
shuttle = ["shuttle-axum", "shuttle-runtime", "shuttle-shared-db"]
