import {
Albums,
Songs,
Artists,
PlayLists,
Merage,
Pagination,
SongsDetail
} from '@/interface/index'
type LyricsList = Merage<
{
lyrics: {
txt: string
}
},
Songs
>
export interface SearchSuggest {
albums: Albums[]
artists: Artists[]
songs: Merage<{ album: Albums }, Songs>[]
order: string[]
playlists: PlayLists[]
lyrics: LyricsList[]
}
export const enum SearchType {
SONG = 1,
ALBUM = 10,
ARTIST = 100,
PLAY_LIST = 1000,
LYRICS = 1006
}
export type list<T> = {
data: T[]
total: number
loading: boolean
pagination: Pagination
}
export interface SearchState {
searchTitle: string
songList: list<Songs>
artistList: list<Artists>
playlist: list<PlayLists>
albumList: list<Albums>
lyriceList: list<LyricsList>
}
export const enum SearchActions {
GET_SONG_LIST = 'GET_SONG_LIST',
GET_ARTIST_LIST = 'GET_ARTIST_LIST',
GET_PLAYLIST_LIST = 'GET_PLAYLIST_LIST',
GET_ALBUM_LIST = 'GET_ALBUM_LIST',
GET_LYRICS_LIST = 'GET_LYRICS_LIST'
}
export const enum SearchMutations {
SET_SEARCH_TITLE = 'SET_SEARCH_TITLE',
CHANGE_SONG_PAGE_OFFSET = 'CHANGE_SONG_PAGE_OFFSET',
CHANGE_ARTIST_PAGE_OFFSET = 'CHANGE_ARTIST_PAGE_OFFSET',
CHANGE_PLAYLIST_PAGE_OFFSET = 'CHANGE_PLAYLIST_PAGE_OFFSET',
CHANGE_ALBUM_PAGE_OFFSET = 'CHANGE_ALBUM_PAGE_OFFSET',
CHANGE_LYRICS_PAGE_OFFSET = 'CHANGE_LYRICS_PAGE_OFFSET'
}