import type { Song } from '../types/song';

/** 将毫秒转换为 MM:SS 格式 */
export function formatDuration(ms: number): string {
    const totalSeconds = Math.floor(ms / 1000);
    const minutes = Math.floor(totalSeconds / 60);
    const seconds = totalSeconds % 60;
    return `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
}

/**
 * 将 PC 原版插件搜索结果转换为 Web 版 Song 格式
 * 兼容 PC 版 songUtils.ts 的 transformSearchSong
 * 
 * PC 原版搜索结果字段：
 * - songmid: 歌曲 ID
 * - name: 歌曲名
 * - singer: 歌手名
 * - img / m_img / s_img: 封面图
 * - interval: 时长（毫秒）
 * - source: 来源标识
 * - albumId: 专辑 ID
 * - albumName: 专辑名
 * - types: 音质映射
 */
export function transformSearchSong(raw: any): Song {
    return {
        id: String(raw.songmid || raw.id || ''),
        name: raw.name || '未知歌曲',
        artist: raw.singer || raw.artist || '未知歌手',
        picUrl: raw.img || raw.m_img || raw.s_img || raw.picUrl || '',
        url: '',
        duration: formatDuration(raw.interval ? Number(raw.interval) : 0),
        source: raw.source || '',
        albumId: raw.albumId ? String(raw.albumId) : null,
        albumName: raw.albumName || null,
        type: 'Remote',
        quality: 'auto',
        types: raw.types || undefined,
    };
}

/** 批量转换搜索结果 */
export function transformSearchResults(results: any[]): Song[] {
    return results.map(item => transformSearchSong(item));
}
