IMapResourceRepository.cs 2.01 KB
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Rcs.Domain.Entities;

namespace Rcs.Domain.Repositories;

/// <summary>
/// 地图资源仓储接口
/// </summary>
public interface IMapResourceRepository : IRepository<MapResource>
{
    /// <summary>
    /// 根据地图ID获取所有资源
    /// </summary>
    Task<IEnumerable<MapResource>> GetByMapIdAsync(
        Guid mapId,
        CancellationToken cancellationToken = default);

    /// <summary>
    /// 根据节点ID获取所有资源
    /// </summary>
    Task<IEnumerable<MapResource>> GetByNodeIdAsync(
        Guid nodeId,
        CancellationToken cancellationToken = default);

    /// <summary>
    /// 根据资源类型获取资源列表
    /// </summary>
    Task<IEnumerable<MapResource>> GetByTypeAsync(
        MapResourcesTYPE type,
        CancellationToken cancellationToken = default);

    /// <summary>
    /// 根据地图ID和资源类型获取资源列表
    /// </summary>
    Task<IEnumerable<MapResource>> GetByMapIdAndTypeAsync(
        Guid mapId,
        MapResourcesTYPE type,
        CancellationToken cancellationToken = default);

    /// <summary>
    /// 根据资源名称获取资源
    /// </summary>
    Task<MapResource?> GetByResourceNameAsync(
        string resourceName,
        CancellationToken cancellationToken = default);

    /// <summary>
    /// 根据资源编码获取资源
    /// </summary>
    Task<MapResource?> GetByResourceCodeAsync(
        string resourceCode,
        CancellationToken cancellationToken = default);

    /// <summary>
    /// 根据地图ID和资源编码获取资源
    /// </summary>
    Task<MapResource?> GetByMapIdAndResourceCodeAsync(
        Guid mapId,
        string resourceCode,
        CancellationToken cancellationToken = default);

    /// <summary>
    /// 根据节点编码获取所有资源
    /// </summary>
    Task<IEnumerable<MapResource>> GetByNodeCodeAsync(
        string nodeCode,
        CancellationToken cancellationToken = default);
}