#!/usr/bin/env ruby

environment = 'development'

puts "Initializing #{environment} environment..."
RAILS_ENV = environment

require File.dirname(__FILE__) + '/../config/boot'
require RAILS_ROOT + "/config/environment"


puts "Now we go..."

obs_request_create_id = MsgType.find_by_msgtype( 'OBS_SRCSRV_REQUEST_STATECHANGE' ).id

users_subscribed = Person.find( :all, :joins => :subscriptions, :conditions => ['subscriptions.msg_type_id = ?', obs_request_create_id],
  :select => 'distinct persons.id, stringid' )

author_parameter = Parameter.find_by_name('author')
delay = Delay.find_by_name('NO_DELAY')
delivery = Delivery.find_by_name('Mail')

users_subscribed.each do |u|
  subs_exists = u.subscriptions.find( :all, 
      :joins => :filters, 
      :conditions => ['subscriptions.msg_type_id=? AND 
                       subscription_filters.parameter_id=? AND 
                       subscription_filters.filterstring=?', obs_request_create_id, author_parameter.id, u.stringid ]
  )
  if subs_exists.blank?
    subscription = u.subscriptions.create( :delay => delay, :delivery => delivery, :msg_type_id => obs_request_create_id )

    subscription.filters.create( :parameter => author_parameter, :operator => "oneof", :filterstring => u.stringid )
    puts "Created subscription for #{u.stringid}"
  end
end

