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
9b18d3ff6d
remove OIDC/Postgres, replace ApiError w/ AppError, move params to api-types
2026-07-12 05:14:17 +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
98a54245b1
domain crate code quality cleanup
...
strip all comments, extract tests to tests/ dirs,
remove #[allow(clippy::...)], extract magic numbers to
constants, refactor schedule engine private methods to
use param structs, add Default impls, clippy.toml for
persistence constructors
2026-07-12 04:02:12 +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