class Multiwoven::Integrations::Destination::Mailchimp::Client

def send_to_mailchimp(record, stream_name)

def send_to_mailchimp(record, stream_name)
  case stream_name
  when "Audience"
    @client.lists.set_list_member(@list_id, Digest::MD5.hexdigest(record[:email].downcase), {
                                    email_address: record[:email],
                                    status_if_new: "subscribed",
                                    merge_fields: {
                                      FNAME: record[:first_name],
                                      LNAME: record[:last_name]
                                    }
                                  })
  when "Tags"
    @client.lists.update_list_member_tags(@list_id, Digest::MD5.hexdigest(record[:email].downcase), {
                                            tags: record[:tags].map { |tag| { name: tag, status: "active" } }
                                          })
  when "Campaigns"
    campaign = @client.campaigns.create({
                                          type: "regular",
                                          recipients: { list_id: @list_id },
                                          settings: {
                                            subject_line: record[:subject],
                                            from_name: record[:from_name],
                                            reply_to: record[:reply_to]
                                          }
                                        })
    if @email_template_id
      @client.campaigns.set_content(campaign["id"], {
                                      template: { id: @email_template_id }
                                    })
    else
      @client.campaigns.set_content(campaign["id"], {
                                      plain_text: record[:content]
                                    })
    end
    @client.campaigns.send(campaign["id"])
  else
    raise "Unsupported stream type: #{stream_name}"
  end
end