package cn.reghao.tnb.file.app.zdisk.db.repository;

import cn.reghao.tnb.file.app.zdisk.db.mapper.DiskAlbumMapper;
import cn.reghao.tnb.file.app.zdisk.model.po.DiskAlbumFile;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import java.util.Collection;
import java.util.List;

/**
 * @author reghao
 * @date 2025-09-02 22:42:28
 */
@Repository
public class DiskAlbumRepository {
    private final DiskAlbumMapper diskAlbumMapper;

    public DiskAlbumRepository(DiskAlbumMapper diskAlbumMapper) {
        this.diskAlbumMapper = diskAlbumMapper;
    }

    @Transactional(rollbackFor = Exception.class)
    public void saveDiskAlbum(long albumId, String coverFileId, int num, List<DiskAlbumFile> list) {
        diskAlbumMapper.updateDiskAlbum(albumId, coverFileId, num);
        diskAlbumMapper.saveAlbumFiles(list);
    }

    @Transactional(rollbackFor = Exception.class)
    public void deleteDiskAlbumFiles(long albumId, int num, Collection<String> sha256sumList) {
        diskAlbumMapper.deleteDiskAlbumFiles(albumId, sha256sumList);
        diskAlbumMapper.updateDiskAlbumNum(albumId, num);
    }
}
