|
|
b93b14efe4
|
adapter-local-files: media provider, index, transcoder
|
2026-07-12 02:53:27 +02:00 |
|
|
|
e389e9e002
|
adapter-jellyfin: media provider
|
2026-07-12 02:47:13 +02:00 |
|
|
|
72ef9b9e1b
|
adapter-auth: JWT, OIDC, password hashing
|
2026-07-12 02:44:16 +02:00 |
|
|
|
0fe80b545e
|
adapter-postgres: all repository implementations
|
2026-07-12 02:39:56 +02:00 |
|
|
|
e8179d1f53
|
adapter-sqlite: all repo implementations + wire fn + migrations copy
|
2026-07-12 02:34:12 +02:00 |
|
|
|
1428f264bb
|
adapter-common: shared DB mapping helpers
|
2026-07-12 02:26:42 +02:00 |
|
|
|
4cdde568f6
|
infra-wiring: DbPool enum + Config from env
|
2026-07-12 02:23:20 +02:00 |
|
|
|
1410d3e6bb
|
api-types: HTTP DTOs with utoipa OpenAPI derives
|
2026-07-12 02:20:41 +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 |
|
|
|
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 |
|