class Decidim::Meetings::UpcomingMeetingNotificationJob

def self.generate_checksum(meeting)

def self.generate_checksum(meeting)
  Digest::MD5.hexdigest("#{meeting.id}-#{meeting.start_time}")
end

def perform(meeting_id, checksum)

def perform(meeting_id, checksum)
  meeting = Decidim::Meetings::Meeting.find(meeting_id)
  return if meeting.hidden? || meeting.withdrawn?
  return unless verify_checksum(meeting, checksum)
  send_notification(meeting)
end

def send_notification(meeting)

def send_notification(meeting)
  Decidim::EventsManager.publish(
    event: "decidim.events.meetings.upcoming_meeting",
    event_class: Decidim::Meetings::UpcomingMeetingEvent,
    resource: meeting,
    followers: meeting.followers
  )
end

def verify_checksum(meeting, checksum)

def verify_checksum(meeting, checksum)
  self.class.generate_checksum(meeting) == checksum
end