|
|
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 |
|
|
|
848d4752e2
|
domain testing: InMemory repos + Noops behind test-helpers
|
2026-07-12 01:41:23 +02:00 |
|
|
|
7ddf94c75f
|
domain services: schedule engine, fill strategies, IPTV
|
2026-07-12 01:35:01 +02:00 |
|
|
|
87e7d85239
|
domain events: DomainEvent enum w/ ID-only variants
|
2026-07-12 01:29:40 +02:00 |
|
|
|
6d12ac4c5e
|
fix domain ports: add EventConsumer, use ID newtypes
|
2026-07-12 01:27:38 +02:00 |
|
|
|
0166e829c1
|
domain ports: CQRS-split traits for all bounded contexts
|
2026-07-12 01:23:38 +02:00 |
|
|
|
616c60e213
|
domain models: schedule, library, config_snapshot, activity, provider_config
|
2026-07-12 01:17:44 +02:00 |
|
|
|
528b155327
|
domain models: User, Channel, ScheduleConfig, MediaItem, PlaybackRecord
|
2026-07-12 01:11:11 +02:00 |
|
|
|
b2e71403d8
|
domain value objects: auth, scheduling, channel, oidc, search
|
2026-07-12 01:05:31 +02:00 |
|
|
|
3ff146615f
|
scaffold workspace + domain crate (errors, ids, uuid_id macro)
|
2026-07-12 01:00:50 +02:00 |
|
|
|
e3a65d8052
|
fix: use StdRng for shuffling indices in fill_block function
|
2026-03-20 23:12:44 +01:00 |
|
|
|
f45ca77b79
|
fix: format code for improved readability and consistency
|
2026-03-20 01:57:22 +01:00 |
|
|
|
a5c31ef8a9
|
fix(frontend): restore plain type labels in grouped sidebar
|
2026-03-20 01:56:11 +01:00 |
|
|
|
3662a5ab9e
|
fix(frontend): suppress shows when type filter active; clarify grouped type labels
|
2026-03-20 01:53:13 +01:00 |
|
|
|
137251fe37
|
fix(frontend): restore ALL sentinel in sidebar to fix hydration mismatch
|
2026-03-20 01:33:27 +01:00 |
|
|
|
8101734c63
|
feat(frontend): add useLibraryShows and useLibrarySeasons hooks
|
2026-03-20 01:29:55 +01:00 |
|
|
|
6cf8a6d5e3
|
feat(frontend): implement grouped/drilldown view in library grid
|
2026-03-20 01:23:33 +01:00 |
|
|
|
c5317cb639
|
feat(frontend): add viewMode/drilldown state to library page
|
2026-03-20 01:21:54 +01:00 |
|
|
|
5f66493558
|
feat(api): add /library/shows and /library/shows/:name/seasons routes + season filter
|
2026-03-20 01:19:31 +01:00 |
|
|
|
5cc4cde223
|
feat(frontend): add ShowTile, SeasonTile, BreadcrumbNav components
|
2026-03-20 01:19:08 +01:00 |
|
|
|
5b89481104
|
feat(frontend): extend schedule dialog to support show/series selection
|
2026-03-20 01:19:00 +01:00 |
|
|
|
33338ac100
|
feat(frontend): make library sidebar drilldown-aware
|
2026-03-20 01:18:52 +01:00 |
|
|
|
66eef2c82e
|
feat(frontend): add useLibraryShows and useLibrarySeasons hooks
|
2026-03-20 01:18:34 +01:00 |
|
|
|
6f1a4e19d3
|
feat(infra): implement list_shows, list_seasons + season_number filter
|
2026-03-20 01:16:02 +01:00 |
|
|
|
dd69470ee4
|
feat(frontend): add ShowSummary, SeasonSummary types + library shows/seasons API methods
|
2026-03-20 01:14:43 +01:00 |
|
|
|
23722a771b
|
feat(domain): add ShowSummary, SeasonSummary types + ILibraryRepository methods
|
2026-03-20 01:13:00 +01:00 |
|
|
|
4cf7fdc1c2
|
feat(frontend): add library sync interval + sync now to admin settings panel
|
2026-03-20 00:38:04 +01:00 |
|
|
|
91271bd83c
|
feat(frontend): library page, components, and schedule/add-to-block dialogs (tasks 11-14)
|
2026-03-20 00:35:40 +01:00 |
|
|
|
49c7f7abd7
|
feat(frontend): add useLibrarySearch, useLibrarySyncStatus, useTriggerSync, useAdminSettings hooks
|
2026-03-20 00:30:44 +01:00 |
|
|
|
978ad1cdb0
|
feat(frontend): add library paged types, syncStatus/triggerSync/admin API methods
|
2026-03-20 00:30:03 +01:00 |
|
|
|
e1a885dcc9
|
fix(api): mount admin settings routes at /admin/settings (not /admin/library/settings)
|
2026-03-20 00:28:24 +01:00 |
|
|
|
e849548e9e
|
feat(api): replace live-provider library routes with DB-backed routes; add sync + admin settings endpoints
|
2026-03-20 00:27:06 +01:00 |
|
|
|
d92d629fbc
|
feat(api): wire library_repo, app_settings_repo, library_sync_adapter into AppState; start scheduler
|
2026-03-20 00:23:25 +01:00 |
|
|
|
aa5e3c28aa
|
feat(api): add library sync background task
|
2026-03-20 00:23:22 +01:00 |
|
|
|
64138b07e4
|
feat(infra): add FullSyncAdapter for library sync
|
2026-03-20 00:19:45 +01:00 |
|
|
|
6732576d06
|
feat(infra): add SqliteAppSettingsRepository
|
2026-03-20 00:17:05 +01:00 |
|
|
|
a3a421c0ac
|
feat(infra): add SqliteLibraryRepository
|
2026-03-20 00:15:01 +01:00 |
|
|
|
c6c93766c7
|
refactor(domain): remove redundant IAppSettingsRepository re-export; add TODO for Jellyfin enrichment
|
2026-03-20 00:11:30 +01:00 |
|
|
|
e101b44fa5
|
feat(domain): add library types, LibrarySyncAdapter, ILibraryRepository, IAppSettingsRepository; extend MediaItem with thumbnail_url and collection_id
|
2026-03-20 00:08:10 +01:00 |
|
|
|
666b1f2753
|
feat(db): add missing indexes to library migrations
|
2026-03-20 00:03:27 +01:00 |
|
|
|
a7c3f1f92e
|
feat(db): add library_items, library_sync_log, app_settings migrations
|
2026-03-20 00:01:34 +01:00 |
|
|
|
187cd064fb
|
docs: add library management implementation plan
|
2026-03-19 23:57:05 +01:00 |
|
|
|
4cc0e155bd
|
docs: add library management design spec
|
2026-03-19 23:43:37 +01:00 |
|
|
|
175d0bb0bb
|
fix(tests): add missing refresh_expiry_days param to JwtConfig::new in tests
|
2026-03-19 23:03:36 +01:00 |
|
|
|
311fdd4006
|
feat: multi-instance provider support
- provider_configs: add id TEXT PK; migrate existing rows (provider_type becomes id)
- local_files_index: add provider_id column + index; scope all queries per instance
- ProviderConfigRow: add id field; add get_by_id to trait
- LocalIndex:🆕 add provider_id param; all SQL scoped by provider_id
- factory: thread provider_id through build_local_files_bundle
- AppState.local_index: Option<Arc<LocalIndex>> → HashMap<String, Arc<LocalIndex>>
- admin_providers: restructured routes (POST /admin/providers create, PUT/DELETE /{id}, POST /test)
- admin_providers: use row.id as registry key for jellyfin and local_files
- files.rescan: optional ?provider=<id> query param
- frontend: add id to ProviderConfig, update api/hooks, new multi-instance panel UX
|
2026-03-19 22:54:41 +01:00 |
|
|
|
373e1c7c0a
|
fix: remove default-run entry from Cargo.toml
|
2026-03-19 22:34:09 +01:00 |
|