新增基于lxserver的音乐功能
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
-- Music V2 schema
|
||||
CREATE TABLE IF NOT EXISTS music_v2_history (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
username TEXT NOT NULL,
|
||||
song_id TEXT NOT NULL,
|
||||
source TEXT NOT NULL,
|
||||
songmid TEXT,
|
||||
name TEXT NOT NULL,
|
||||
artist TEXT NOT NULL,
|
||||
album TEXT,
|
||||
cover TEXT,
|
||||
duration_text TEXT,
|
||||
duration_sec DOUBLE PRECISION,
|
||||
play_progress_sec DOUBLE PRECISION NOT NULL DEFAULT 0,
|
||||
last_played_at BIGINT NOT NULL,
|
||||
play_count INTEGER NOT NULL DEFAULT 0,
|
||||
last_quality TEXT,
|
||||
created_at BIGINT NOT NULL,
|
||||
updated_at BIGINT NOT NULL,
|
||||
UNIQUE(username, song_id),
|
||||
FOREIGN KEY (username) REFERENCES users(username) ON DELETE CASCADE
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_music_v2_history_username ON music_v2_history(username, last_played_at DESC);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS music_v2_playlists (
|
||||
id TEXT PRIMARY KEY,
|
||||
username TEXT NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
description TEXT,
|
||||
cover TEXT,
|
||||
song_count INTEGER NOT NULL DEFAULT 0,
|
||||
created_at BIGINT NOT NULL,
|
||||
updated_at BIGINT NOT NULL,
|
||||
FOREIGN KEY (username) REFERENCES users(username) ON DELETE CASCADE
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_music_v2_playlists_username ON music_v2_playlists(username, updated_at DESC);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS music_v2_playlist_items (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
playlist_id TEXT NOT NULL,
|
||||
username TEXT NOT NULL,
|
||||
song_id TEXT NOT NULL,
|
||||
source TEXT NOT NULL,
|
||||
songmid TEXT,
|
||||
name TEXT NOT NULL,
|
||||
artist TEXT NOT NULL,
|
||||
album TEXT,
|
||||
cover TEXT,
|
||||
duration_text TEXT,
|
||||
duration_sec DOUBLE PRECISION,
|
||||
sort_order INTEGER NOT NULL DEFAULT 0,
|
||||
added_at BIGINT NOT NULL,
|
||||
updated_at BIGINT NOT NULL,
|
||||
UNIQUE(playlist_id, song_id),
|
||||
FOREIGN KEY (playlist_id) REFERENCES music_v2_playlists(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (username) REFERENCES users(username) ON DELETE CASCADE
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_music_v2_playlist_items_playlist ON music_v2_playlist_items(playlist_id, sort_order ASC);
|
||||
Reference in New Issue
Block a user