[package]
name = "pmomediaserver"
version = "0.1.0"
edition = "2024"

[dependencies]
pmoupnp = { path = "../pmoupnp" }
pmodidl = { path = "../pmodidl" }
pmosource = { path = "../pmosource" }
pmoserver = { path = "../pmoserver" }

once_cell = "1.20"
bevy_reflect = "0.17.1"
tokio = { version = "1", features = ["sync"] }
async-trait = "0.1"
tracing = "0.1"
quick-xml = { version = "0.38.3", features = ["serialize"] }
thiserror = "2.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
pmoutils = { path = "../pmoutils" }

# Optional dependencies
axum = { version = "0.8", optional = true }
utoipa = { version = "5.3", optional = true }
pmoqobuz = { path = "../pmoqobuz", optional = true }
pmoparadise = { path = "../pmoparadise", optional = true }
pmoconfig = { path = "../pmoconfig", optional = true }
anyhow = { version = "1.0", optional = true }
pmoaudiocache = { path = "../pmoaudiocache", optional = true }
pmocovers = { path = "../pmocovers", optional = true, features = ["pmoserver"] }
pmoplaylist = { path = "../pmoplaylist", optional = true }
tokio-util = { version = "0.7", features = ["io"], optional = true }

[features]
default = ["pmosource/server"]
# Feature pour activer l'API REST de gestion des sources
api = ["dep:axum", "dep:utoipa", "pmosource/server"]
# Feature pour activer le support Qobuz configuré
qobuz = ["api", "dep:pmoqobuz", "dep:pmoconfig", "pmoqobuz/server"]
# Feature pour activer le support Radio Paradise
paradise = [
    "api",
    "dep:pmoparadise",
    "pmoparadise/full",
    "dep:anyhow",
    "dep:pmoaudiocache",
    "dep:pmocovers",
    "pmocovers/pmoserver",
    "dep:pmoplaylist",
    "dep:tokio-util"
]
# Feature pour activer l'API REST de Radio Paradise (en plus de la source UPnP)
paradise-api = ["paradise", "pmoparadise/pmoserver"]
