class GatewayConfig < ActiveRecord::Base
  belongs_to :organisation
  serialize :config_hash, Hash
  include PublicActivity::Model
  GATEWAY_TYPE = {'1' => 'SMS','2' => 'Email'}
  SMS_TYPE = {'1' => 'Twilio' }
  EMAIL_TYPE = {'1' => 'SMTP'}

  tracked owner: ->(controller, model) {controller && controller.tracked_current_user}, params: {:attributes => proc {|controller, model_instance| {"gateway_config(#{model_instance.gateway_type == "1" ? "SMS" : "Email"})" => model_instance.changes}}}, organisation_id: -> (controller, model) {controller && controller.tracked_current_user.organisation_id}, :location_network_id => nil

  tracked assumed_by: proc {|controller, model| controller.user_assumed_by if controller}

  def update_status
  	if self.is_enabled
  	  enabled_status = GatewayConfig.where.not(id: self.id).where(:is_enabled =>true, :gateway_type =>self.gateway_type)
      enabled_status.each do |status|
        status.update_column(:is_enabled, false)
      end	
    end  
  end 

  after_save do |gateway|
    gateway.update_status
  end
end
