# encoding: utf-8

class CreateCallCenterViolationTypes < ActiveRecord::Migration
  def up
    create_table :call_center_violation_types do |t|
      t.string :name
      t.references :violation_category
      t.timestamps
    end

    CallCenter::ViolationType.create name: 'ВЫБЕРИТЕ ТИП НАРУШЕНИЯ. ЖЕЛАТЕЛЬНО НЕ "ПРОЧИЕ".'

    ActiveRecord::Base.transaction do
      vc = CallCenter::ViolationCategory.find_by_name "0. Серьезные/часто встречающиеся нарушения"
      [  "0.1. Наблюдателя/члена комиссии выгоняют с участка (2.14 в типологии «Голоса»)",
      "0.2. Наблюдателю угрожают",
      "0.3. Вброс бюллетеней (2.8)",
      "0.4. Карусель (2.8)",
      "0.5. Массовое голосование вне помещения",
      "0.6. Ограничение на перемещение наблюдателей по участку (2.11)",
      "0.7. Запрет на фото/видеосъемку (2.12)",
      "0.8. Присутствие на участке посторонних лиц",
      "0.9. Члены УИК подписывали незаполненный протокол (3.21)",
      "0.10. При подсчете данные не заносились сразу в увеличенную форму после каждого этапа подсчета (3.12)",
      "0.11. Отказ в принятии жалобы (3.19)",
      "0.12. Не выдавали копию протокола (3.23)",
      "0.13. Прочие нарушения",
      "0.14 Голосование по допспискам"].each do |violation_name|
        CallCenter::ViolationType.create(name: violation_name , violation_category_id: vc.id)
      end

      vc = CallCenter::ViolationCategory.find_by_name "1. Нарушения при открытии участка"
      [ "1.1. Трудности при доступе на участок",
        "1.2. Председатель УИК не предъявил пустые ящики для голосования",
        "1.3. Наблюдателям и членам с ПСГ не дали ознакомится со списком избирателей",
        "1.4. Членам УИК бюллетени выдаются не под роспись",
        "1.5. Трудности в получении информации" ].each do |violation_name|
          CallCenter::ViolationType.create(name: violation_name, violation_category_id: vc.id)
      end

      vc = CallCenter::ViolationCategory.find_by_name "2. Нарушения при голосовании"
      [ "2.2. Есть агитационные материалы на участке",
        "2.3. Нет сводного плаката",
        "2.4. У наблюдателей нет возможности видеть места выдачи бюллетеней, избирательные ящики, кабинки для голосования",
        "2.5. Нарушена процедура выдачи бюллетеней",
        "2.6. Подвоз избирателей",
        "2.7. Списки избирателей не прошиты",
        "2.9. Групповое голосование по открепительным",
        "2.10. Давление на избирателей",
        "2.13. Переносные ящики не в поле зрения наблюдателей",
        "2.15. Для выездного голосования используются списки, составленные организациями",
        "2.16. Не дают ознакомиться с реестром на голосование вне помещения",
        "2.17. Не дают присутствовать при голосовании вне помещения"].each do |violation_name|
          CallCenter::ViolationType.create(name: violation_name, violation_category_id: vc.id)
      end

      vc = CallCenter::ViolationCategory.find_by_name "3. Нарушения при подсчете"
      [ "3.6. Не оглашались данные подсчета по каждой книге избирателей",
        "3.7. Наблюдателю отказали в возможности удостоверится в правильности подсчетов по спискам",
        "3.8. Не объявлялось количество заявлений на голосование вне помещения перед вскрытием каждого переносного ящика",
        "3.9, 3.10, 3.12, 3.13. Прочие нарушения при подсчете",
        "3.11. Наблюдатели не могли видеть отметки в бюллетенях при подсчете голосов"].each do |violation_name|
          CallCenter::ViolationType.create(name: violation_name, violation_category_id: vc.id)
      end
    end

  end

  def down
    drop_table :call_center_violation_types
  end
end
