resource :notification_configs, only: [:show, :update]

resources :email_addresses, only: [:create, :update, :destroy]

resource :sycamore_blog, only: :show do
  get :recent_posts
end

resource :email_verification, only: [], path: :'/email' do
  post :verification
  patch :verify
end

namespace :address_book do
  resources :user_contacts, except: :update

  resources :companies, only: [:index, :show, :update] do
    scope module: :companies do
      resources :notes

      resources :additional_values, only: :index do
        patch :update, on: :collection
      end
    end
  end

  resources :contacts, except: :destroy do
    scope module: :contacts do
      resource :categories, only: [:show, :update]

      resources :call_notes
      resources :families, except: :show

      resources :additional_values, only: :index do
        patch :update, on: :collection
      end

      resources :email_addresses, only: [:create, :update, :destroy] do
        patch :remove_suppression, on: :member
      end
    end
  end

  resources :company_additional_fields
  resources :company_additional_groups
  resources :company_category_groups
  resources :company_categories
  resources :contact_additional_fields
  resources :contact_additional_groups
  resources :contact_category_groups
  resources :contact_categories
  resources :personal_contact_categories, only: :index
end

namespace :communication do
  namespace :smtp do
    resource :mailer, only: :create
  end
end

namespace :covid do
  resource :screening, only: [:show, :new, :create]
end

namespace :pathwright do
  resources :categories, only: [:index, :show]
  resources :courses, only: :show
  resources :employees, only: [:index, :create]
end

scope module: :legacy do
  resource :accounts, only: :show

  resources :class_grade_configs, only: :index
  resources :attendance_types, only: :index

  resources :classrooms, only: [:index, :show] do
    scope module: :classrooms do
      resource :attendance, only: [:show, :create], concerns: :batch_create

      resources :assignment_groups, only: :index
      resources :grade_categories, only: :index
      resources :lesson_plans, except: [:new, :edit, :destroy]
      resources :students, only: [:index, :show]
      resources :subjects, only: :index

      resources :student_habits, only: [:index, :show] do
        patch :batch_update, on: :member
      end

      resources :assignments, except: [:new, :edit, :destroy] do
        post :post, on: :member

        scope module: :assignments do
          namespace :grades do
            resources :students, only: [:index, :update], concerns: :batch_update
          end
        end
      end

      namespace :cafeteria do
        namespace :orders do
          resources :students, only: [:index, :show, :update], concerns: :batch_update
        end
      end
    end
  end

  namespace :discipline do
    resources :violations, only: :index
  end
end

namespace :organizer do
  resources :contacts, only: :index, concerns: [:batch_create, :batch_delete]
end

namespace :training do
  resources :categories, only: :index do
    resources :videos, only: :index
  end
end
