Files
iptvnator/libs/shared/interfaces/src/lib/portal-activity-item.interface.ts
T
4gray 7caa18308d feat: enhance unified collection with workspace commands and backdrop handling
- Added WorkspaceViewCommandService to UnifiedCollectionPageComponent for workspace layout commands.
- Implemented clear current view command for favorites and recent items.
- Updated unified favorites data service to use buildXtreamCollectionUid for UID generation.
- Enhanced unified recent data service to normalize timestamps and handle backdrop URLs.
- Introduced withRecentItems feature to manage recent item additions with backdrop support.
- Updated VodDetailsRouteComponent and SerialDetailsComponent to backfill content backdrops.
- Modified IXtreamDataSource interface to include backdrop URL handling for favorites and recent items.
- Added tests for recent items feature to ensure correct functionality and backdrop handling.
2026-04-22 22:23:50 +02:00

45 lines
1.4 KiB
TypeScript

import {
PortalActivityType,
StalkerPortalItem,
} from './stalker-portal-item.interface';
/**
* Base interface for cross-provider activity items (recently viewed,
* favorites) displayed on the dashboard and in global lists.
*/
export interface PortalActivityItem {
id: string | number;
title: string;
type: PortalActivityType;
playlist_id: string;
playlist_name?: string;
category_id: string | number;
xtream_id: string | number;
poster_url?: string;
/**
* Wide backdrop URL (typically 16:9), persisted when the user first views
* the detail page. Absent for stalker and for items that have never had
* their detail page opened. Dashboards should fall back to a blurred
* `poster_url` when undefined.
*/
backdrop_url?: string;
source?: 'xtream' | 'stalker' | 'm3u';
/** Original stalker item for navigation state; undefined for xtream. */
stalker_item?: StalkerPortalItem;
}
/** A recently-viewed item with a `viewed_at` timestamp. */
export interface PortalRecentItem extends PortalActivityItem {
viewed_at: string;
}
/** A favorite item with an `added_at` timestamp. */
export interface PortalFavoriteItem extends PortalActivityItem {
added_at: string;
}
/** A recently-added catalog item with an `added_at` timestamp. */
export interface PortalAddedItem extends PortalActivityItem {
added_at: string;
}