class Team < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable, :confirmable
  after_save :update_email_list

  validates_presence_of :login, :name, :email, :clen1_jmeno, :clen1_prijmeni, 
    :clen2_jmeno, :clen2_prijmeni, :zpusob_doruceni, :postup_doruceni
  validates_uniqueness_of :login, :case_sensitive => false
  
  has_many :entries
  
  def current_entry
    self.entries.current
  end

  def vs(year=Event.current_year)
   '4444'+year.to_s[2..3]+('%03d' % id.to_s )
  end

  def amount_paid
    Payment.amount_paid_by_vs(self.vs)
  end

  def date_paid
    Payment.date_paid_by_vs(self.vs)
  end

  def paid?
    if letosni_poplatek.nil?
      false
    else
      amount_paid >= letosni_poplatek
    end
  end

  def letosni_poplatek
    Event.current.poplatek
  end

  def zverejnit_jmena?
    zverejnit_jmena
  end

  def password_required? # see https://github.com/plataformatec/devise/wiki/How-To%3a-Allow-users-to-edit-their-account-without-providing-a-password
    new_record?
  end

  def update_email_list
    return
#     email_list = connection.select_values('SELECT email FROM ctyrpohar_reg.teams').join(', ')
#     connection.execute("UPDATE mailserver.forwardings SET destination = '#{email_list}' WHERE source='druzstva2022@4p.hrejsi.cz'")
  end

  def letos_prihlasen
    r2025 == 1
  end

  def prihlasit_na_letosek!
    self.r2025 = 1
    self.save(validate: false)
  end

  def self.allowed_params
    [ :name, :telefon, :login, :clen1_jmeno, :clen1_prijmeni, :clen2_jmeno, :clen2_prijmeni, :clen3_jmeno, :clen3_prijmeni, :clen4_jmeno, :clen4_prijmeni, 
    :zverejnit_jmena, :email, :password,
    :password_confirmation, :password_new, :remember_me, :zpusob_doruceni, :postup_doruceni, # :adresa,
    :vzkaz]
  end

  def clenove
    [
      {jmeno: clen1_jmeno, prijmeni: clen1_prijmeni},
      {jmeno: clen2_jmeno, prijmeni: clen2_prijmeni},
      {jmeno: clen3_jmeno, prijmeni: clen3_prijmeni},
      {jmeno: clen4_jmeno, prijmeni: clen4_prijmeni}
    ].reject{ |item| "#{item[:jmeno]}#{item[:prijmeni]}".strip.empty? }
  end

  def cela_jmena_clenu
    clenove.collect{ |clen| [clen[:jmeno], clen[:prijmeni]].join(' ') }
  end

  def seznam_clenu
    cela_jmena_clenu.join(', ')
  end

  # def self.find_first_by_auth_conditions warden_conditions
  #   conditions = warden_conditions.dup
  #   if (email = conditions.delete(:email)).present?
  #     where(email: email.downcase).first
  #   elsif conditions.has_key?(:reset_password_token)
  #     where(reset_password_token: conditions[:reset_password_token]).first
  #   end
  # end

  def self.find_for_authentication warden_conditions
    find_first_by_auth_conditions(warden_conditions)
  end
  
end
