namespace DocuMed.Repository.Handlers.Hospitals;

public class DeleteHospitalCommandHandler(IRepositoryWrapper repositoryWrapper) : IRequestHandler<DeleteHospitalCommand, Guid>
{

    public async Task<Guid> Handle(DeleteHospitalCommand request, CancellationToken cancellationToken)
    {
        var ent = await repositoryWrapper.SetRepository<Hospital>().TableNoTracking
            .FirstOrDefaultAsync(h => h.Id == request.Id, cancellationToken);
        if (ent == null)
            throw new BaseApiException(ApiResultStatusCode.NotFound, "Hospital not found");

        repositoryWrapper.SetRepository<Hospital>().Delete(ent);
        await repositoryWrapper.SaveChangesAsync(cancellationToken);

        return ent.Id;

    }
}