package com.test.musichouduan.dto.admin;

import com.test.musichouduan.entity.Music;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 音乐管理数据传输对象
 */
@Data
public class MusicAdminDTO {

    /**
     * ID
     */
    private Long id;

    /**
     * 音乐名称
     */
    private String name;

    /**
     * 歌手名称
     */
    private String singerName;

    /**
     * 封面URL
     */
    private String coverUrl;

    /**
     * 播放量
     */
    private Long playCount;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 将实体转换为DTO
     *
     * @param music 音乐实体
     * @return 音乐DTO
     */
    public static MusicAdminDTO fromEntity(Music music) {
        if (music == null) {
            return null;
        }

        MusicAdminDTO dto = new MusicAdminDTO();
        dto.setId(music.getId());
        dto.setName(music.getName());
        // 获取歌手名称
        String singerName = null;
        if (music.getSingers() != null && !music.getSingers().isEmpty()) {
            singerName = music.getSingers().iterator().next().getName();
        }
        dto.setSingerName(singerName);
        dto.setCoverUrl(music.getCover());
        dto.setPlayCount(music.getPlayCount());
        dto.setCreateTime(music.getCreateTime());
        return dto;
    }
}
