package com.lesingle.edu.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lesingle.edu.entity.ResourceItem;
import com.lesingle.edu.entity.ResourceLibrary;

import java.util.List;
import java.util.Map;

/**
 * 资源库服务接口
 */
public interface ResourceLibraryService extends IService<ResourceLibrary> {

    /**
     * 分页查询资源库
     */
    Page<ResourceLibrary> findAllLibraries(String libraryType, String keyword, Integer page, Integer pageSize);

    /**
     * 查询资源库详情
     */
    ResourceLibrary findLibraryById(String id);

    /**
     * 查询资源库（不存在时返回 null）
     */
    ResourceLibrary findLibraryByIdOrNull(String id);

    /**
     * 创建资源库
     */
    ResourceLibrary createLibrary(String name, String type, String description, String tenantId);

    /**
     * 更新资源库
     */
    ResourceLibrary updateLibrary(String id, String name, String description);

    /**
     * 删除资源库
     */
    void deleteLibrary(String id);

    /**
     * 分页查询资源项目
     */
    Page<ResourceItem> findAllItems(String libraryId, String fileType, String keyword, Integer page, Integer pageSize);

    /**
     * 查询资源项目详情
     */
    ResourceItem findItemById(String id);

    /**
     * 创建资源项目（数字资源）
     */
    ResourceItem createItem(String libraryId, String title, String fileType, String filePath,
                           Long fileSize, String description, String tags, String tenantId);

    /**
     * 更新资源项目（数字资源）
     */
    ResourceItem updateItem(String id, String title, String description, String tags);

    /**
     * 删除资源项目
     */
    void deleteItem(String id);

    /**
     * 批量删除资源项目
     */
    void batchDeleteItems(List<String> ids);

    /**
     * 获取统计数据
     */
    Map<String, Object> getStats();
}
