IMapResourceRepository.cs 2.24 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);
    }
}