resource :user, only: [:show, :update], controller: :user

resources :iso_countries, only: :index
resources :permissions, only: [:show, :update]
resources :titles, only: :index
resources :tokens, only: :create
resources :users, except: [:new, :edit]

resources :sessions, only: :create do
  delete :destroy, on: :collection
end

namespace :sites do
  resource :freshdesk, only: :show, controller: :freshdesk

  namespace :edfi do
    namespace :wisconsin do
      resource :config, only: [:show, :update]
    end
  end

  resources :connection_logs, only: :index
  resources :snapshots, only: :index
  resources :storages, only: :index

  resources :school_district, only: [:index, :show], controller: :school_district do
    post :attach, on: :collection
    delete :detach, on: :collection
  end

  resources :schools, except: [:edit, :new] do
    patch :district_type, on: :member
    delete :revoke_tokens, on: :member

    scope module: :schools do
      resource :storage, only: :show
      resource :ed_fi, only: [:show, :update, :destroy], controller: :ed_fi do
        post :test_connection, on: :member
      end

      resources :employees, only: [:index, :show, :update]
      resources :snapshots, only: :index
      resources :years, only: [:index, :update]

      resources :ed_fi_errors, only: [:index, :show], controller: :ed_fi_errors do
        delete :batch_destroy, on: :collection
      end

      namespace :clever do
        resource :config, only: [:show, :update]
      end

      namespace :communication do
        resource :config, only: :show
      end

      namespace :financial_aid do
        resources :answers, only: :index, concerns: :batch_update
        resources :documents, only: :index
        resources :school_questions, only: :index

        resources :applications, only: [:index, :show, :update] do
          post :credit_report_pdf, on: :member

          resources :contacts, only: :index
        end
      end

      namespace :freshdesk do
        resources :companies, only: [:index, :create]
      end

      namespace :sparkpost do
        resources :domains, only: [:index, :create, :destroy]
      end

      namespace :twilio do
        resources :lookups, only: :show do
          get :profile, on: :collection
          get :brands, on: :collection
          get :messaging_services, on: :collection
          get :campaigns, on: :collection
          get :phone_numbers, on: :collection
          get :twiml, on: :collection
          get :toll_free_verifications, on: :collection
        end
      end

      namespace :edfi do
        namespace :indiana do
          resource :config, only: [:show, :update]
        end
      end

      namespace :import do
        resource :student_names, only: :update
      end

      namespace :paya do
        resource :config, only: [:show, :update]
      end

      namespace :payjunction do
        resource :config, only: [:show, :update]
      end

      namespace :restores do
        resources :students, only: [:index, :update]
      end
    end
  end
end

namespace :training do
  resources :categories, except: [:new, :edit]
  resources :help_cards, except: [:new, :edit, :destroy]
  resources :notifications
  resources :videos, except: [:new, :edit]

  namespace :pathwright do
    resources :categories, except: [:new, :edit]
    resources :courses, except: [:new, :edit]
  end
end
