using MediatR; using TakeoutSaaS.Application.App.TenantPackages.Commands; using TakeoutSaaS.Domain.Tenants.Repositories; namespace TakeoutSaaS.Application.App.TenantPackages.Handlers; /// /// 删除租户套餐命令处理器(软删除)。 /// public sealed class DeleteTenantPackageCommandHandler(ITenantPackageRepository tenantPackageRepository) : IRequestHandler { /// public async Task Handle( DeleteTenantPackageCommand request, CancellationToken cancellationToken) { // 1. 查询套餐(带跟踪用于更新) var package = await tenantPackageRepository.GetByIdForUpdateAsync(request.TenantPackageId, cancellationToken); // 2. 如果不存在,返回 false if (package is null) { return false; } // 3. 软删除 await tenantPackageRepository.SoftDeleteAsync(package, cancellationToken); // 4. 保存变更 await tenantPackageRepository.SaveChangesAsync(cancellationToken); // 5. 返回成功 return true; } }