4e91c2acdf
git-subtree-dir: sample-front-end git-subtree-split: 0881bf1c045118585100360b2c47594cd94b89f1
64 lines
1.1 KiB
TypeScript
64 lines
1.1 KiB
TypeScript
|
|
export interface Track {
|
|
id: string;
|
|
title: string;
|
|
artist: string;
|
|
duration: number; // in seconds
|
|
}
|
|
|
|
export interface Playlist {
|
|
id: string;
|
|
title: string;
|
|
trackCount: number;
|
|
thumbnail?: string;
|
|
lastUpdated: string;
|
|
tracks?: Track[]; // Optional detailed track list
|
|
}
|
|
|
|
export enum ServerType {
|
|
LOCAL = 'LOCAL',
|
|
CLOUD = 'CLOUD'
|
|
}
|
|
|
|
export enum SyncStrategy {
|
|
LOCAL_OVERWRITE = 'LOCAL_OVERWRITE',
|
|
CLOUD_OVERWRITE = 'CLOUD_OVERWRITE',
|
|
MERGE_LOCAL = 'MERGE_LOCAL',
|
|
MERGE_CLOUD = 'MERGE_CLOUD'
|
|
}
|
|
|
|
export interface RegexReplacement {
|
|
id: string;
|
|
pattern: string;
|
|
replacement: string;
|
|
}
|
|
|
|
export interface PlexLibrary {
|
|
id: string;
|
|
title: string;
|
|
type: string;
|
|
}
|
|
|
|
export interface PlexServerConnection {
|
|
isConnected: boolean;
|
|
name?: string;
|
|
ip?: string;
|
|
port?: number;
|
|
libraryName?: string;
|
|
libraries?: PlexLibrary[];
|
|
}
|
|
|
|
export interface PlexConnectionSettings {
|
|
protocol: 'http' | 'https';
|
|
address: string;
|
|
port: string;
|
|
token: string;
|
|
username?: string;
|
|
password?: string;
|
|
}
|
|
|
|
export interface ApiResponse<T> {
|
|
data: T;
|
|
status: 'success' | 'error';
|
|
message?: string;
|
|
} |