Files
k-tv/crates/presentation/Cargo.toml
Gabriel Kaszewski f21d70c559 MediaRole auto-detection + manual role API + sync wiring (#7)
role_detector: classify items as Interstitial by collection name/tag patterns.
Wire chapter extraction + role detection into sync adapter (worker + presentation).
SQLite: persist/read role column, migration.
PUT /library/items/{id}/role endpoint for manual override.
2026-07-12 14:00:28 +02:00

52 lines
1.4 KiB
TOML

[package]
name = "presentation"
version = "0.1.0"
edition = "2024"
[[bin]]
name = "k-tv"
path = "src/main.rs"
[features]
default = ["sqlite", "auth-jwt", "jellyfin"]
sqlite = ["dep:adapter-sqlite", "infra-wiring/sqlite"]
auth-jwt = ["adapter-auth/jwt"]
jellyfin = ["dep:adapter-jellyfin"]
local-files = ["dep:adapter-local-files", "dep:tokio-util"]
[dependencies]
domain = { workspace = true }
application = { workspace = true }
api-types = { workspace = true }
infra-wiring = { workspace = true }
adapter-common = { workspace = true }
adapter-auth = { workspace = true }
adapter-event-publisher = { workspace = true }
# Feature-gated adapters
adapter-sqlite = { workspace = true, optional = true }
adapter-jellyfin = { workspace = true, optional = true }
adapter-local-files = { workspace = true, optional = true }
# Framework
axum = { workspace = true }
axum-extra = { workspace = true, features = ["typed-header"] }
tower = { workspace = true }
tower-http = { workspace = true }
tokio = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
# Utils
serde = { workspace = true }
serde_json = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
thiserror = { workspace = true }
async-trait = { workspace = true }
anyhow = "1"
dotenvy = "0.15"
# Local-files streaming
tokio-util = { version = "0.7", features = ["io"], optional = true }