Files
TakeoutSaaS.AdminApi/src/Domain/TakeoutSaaS.Domain/Merchants/Repositories/IMerchantRepository.cs

74 lines
2.5 KiB
C#

using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using TakeoutSaaS.Domain.Merchants.Entities;
using TakeoutSaaS.Domain.Merchants.Enums;
namespace TakeoutSaaS.Domain.Merchants.Repositories;
/// <summary>
/// 商户聚合仓储契约,提供基础 CRUD 与查询能力。
/// </summary>
public interface IMerchantRepository
{
/// <summary>
/// 依据标识获取商户。
/// </summary>
Task<Merchant?> FindByIdAsync(long merchantId, long tenantId, CancellationToken cancellationToken = default);
/// <summary>
/// 按状态筛选商户列表。
/// </summary>
Task<IReadOnlyList<Merchant>> SearchAsync(long tenantId, MerchantStatus? status, CancellationToken cancellationToken = default);
/// <summary>
/// 获取指定商户的员工列表。
/// </summary>
Task<IReadOnlyList<MerchantStaff>> GetStaffAsync(long merchantId, long tenantId, CancellationToken cancellationToken = default);
/// <summary>
/// 获取指定商户的合同列表。
/// </summary>
Task<IReadOnlyList<MerchantContract>> GetContractsAsync(long merchantId, long tenantId, CancellationToken cancellationToken = default);
/// <summary>
/// 获取指定商户的资质文件列表。
/// </summary>
Task<IReadOnlyList<MerchantDocument>> GetDocumentsAsync(long merchantId, long tenantId, CancellationToken cancellationToken = default);
/// <summary>
/// 新增商户主体。
/// </summary>
Task AddMerchantAsync(Merchant merchant, CancellationToken cancellationToken = default);
/// <summary>
/// 新增商户员工。
/// </summary>
Task AddStaffAsync(MerchantStaff staff, CancellationToken cancellationToken = default);
/// <summary>
/// 新增商户合同。
/// </summary>
Task AddContractAsync(MerchantContract contract, CancellationToken cancellationToken = default);
/// <summary>
/// 新增商户资质文件。
/// </summary>
Task AddDocumentAsync(MerchantDocument document, CancellationToken cancellationToken = default);
/// <summary>
/// 持久化变更。
/// </summary>
Task SaveChangesAsync(CancellationToken cancellationToken = default);
/// <summary>
/// 更新商户信息。
/// </summary>
Task UpdateMerchantAsync(Merchant merchant, CancellationToken cancellationToken = default);
/// <summary>
/// 删除商户。
/// </summary>
Task DeleteMerchantAsync(long merchantId, long tenantId, CancellationToken cancellationToken = default);
}