# frozen_string_literal: true

# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
module DeleteCampaignGiftOption
  def self.delete(campaign_gift_option)
    CampaignGiftOption.transaction do
      if campaign_gift_option.campaign_gifts.any?
        raise ParamValidation::ValidationError.new("#{campaign_gift_option&.id} already has campaign gifts. It can't be deleted for safety reasons.", key: :campaign_gift_option_id)
      end

      campaign_gift_option.destroy

      campaign_gift_option
    end
  end
end