package com.reading.platform.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.reading.platform.dto.response.ResourceStatsResponse;
import com.reading.platform.entity.ResourceItem;
import com.reading.platform.entity.ResourceLibrary;

import java.util.List;

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

    /**
     * 获取资源库列表（不区分租户）
     */
    List<ResourceLibrary> getLibraries(String tenantId);

    /**
     * 获取租户资源库列表
     */
    List<ResourceLibrary> getTenantLibraries(String tenantId);

    /**
     * 根据 ID 获取资源库
     */
    ResourceLibrary getLibraryById(String id);

    /**
     * 创建资源库
     */
    ResourceLibrary createLibrary(ResourceLibrary library);

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

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

    /**
     * 获取资源项分页
     */
    Page<ResourceItem> getItems(int pageNum, int pageSize, String libraryId, String keyword);

    /**
     * 获取租户资源项分页
     */
    Page<ResourceItem> getItemsByTenant(String tenantId, int pageNum, int pageSize, String libraryId, String keyword, String type);

    /**
     * 根据 ID 获取资源项
     */
    ResourceItem getItemById(String id);

    /**
     * 创建资源项
     */
    ResourceItem createItem(ResourceItem item);

    /**
     * 更新资源项
     */
    ResourceItem updateItem(String id, ResourceItem item);

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

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

    /**
     * 获取资源统计（按租户）
     */
    List<ResourceStatsResponse> getStats(String tenantId);

    /**
     * 获取全平台资源统计
     */
    List<ResourceStatsResponse> getAdminStats();
}
