a6558e15b2
kill LibraryItem, unify to MediaItem; decouple schedule engine from providers
...
ADR-0001: MediaItem absorbs LibraryItem fields (provider_id, external_id,
collection_name, collection_type, synced_at, role/MediaRole).
LibraryItem + LibraryItemRow deleted. All ports/adapters/tests updated.
ADR-0002: schedule engine takes LibraryQuery instead of IProviderRegistry.
Algorithmic blocks query library via search(), manual blocks via get_by_id().
get_stream_url removed from engine; provider_registry moved to ScheduleDeps
for playback-time stream URL resolution in application layer.
BlockContent provider_id field removed (meaningless when querying library).
2026-07-12 07:02:08 +02:00
773e228e21
rename RecyclePolicy→RotationPolicy, collapse AccessMode, clean OIDC refs
2026-07-12 06:50:25 +02:00
33b440d297
fix(presentation): extract 12 handler violations to use cases
...
- TokenService port + JwtTokenService adapter; login/refresh return LoginResult
- delete get_token (dup of login); create_tokens helper removed
- type UpdateChannelRequest schedule_config/recycle_policy (no serde_json::Value)
- update_settings returns updated Vec; handler calls one use case
- config use case in application::config; handler maps DTO only
- SyncStatusEntry moved to api-types w/ From<LibrarySyncLogEntry>
- trigger_sync: Conflict error, drop sync_trigger.send from handler
- UpsertProviderCommand.config accepts Value; serialization in use case
- get_current_broadcast returns BroadcastWithChannel; one call
- get_stream_url resolves broadcast internally; handler single call
2026-07-12 05:28:49 +02:00
c0e685a4ee
refactor(domain): Row structs for from_persistence, ID newtypes, kill clippy.toml
...
- delete clippy.toml (too-many-arguments-threshold=20 hack)
- ChannelRow/MediaItemRow/LibraryItemRow structs for from_persistence
- SnapshotId/ActivityEventId/PlaybackRecordId newtypes
- DomainError variants use ChannelId/UserId instead of Uuid
- ActivityEvent.channel_id: Option<ChannelId> not Option<Uuid>
- InMemory repos key on newtype IDs
- AlgorithmicParams struct for schedule engine
- update all adapters/application/presentation callers
2026-07-12 05:00:49 +02:00
9dcd169689
refactor(application): strip comments, DRY ownership check + parse_content_type
2026-07-12 04:10:58 +02:00
466d34b5d0
application: config_snapshots, admin, providers, iptv
2026-07-12 02:14:07 +02:00
ebf0614fdf
application: library bounded context
2026-07-12 02:08:04 +02:00
ef86a967cd
application: schedule bounded context
2026-07-12 02:02:23 +02:00
6fd47f2d93
application: channels bounded context
...
CQRS use cases (create/update/delete/get/list/list_by_owner),
ownership checks, auto-snapshot on config change.
Channel setters added to domain model.
2026-07-12 01:57:38 +02:00
2976600d12
application: auth bounded context (register, login)
2026-07-12 01:49:34 +02:00