Rails.application.routes.draw do
  resources :downloads, only: [:index, :show] 
  namespace :audit_log do
    resources :logs, only: [:index, :show]
  end

  # User login / sign up / passwoard
  post "sign_up", to: "users#create"
  get "sign_up", to: "users#new"
  put "account", to: "users#update"
  get "account", to: "users#edit"
  delete "account", to: "users#destroy"
  resources :confirmations, only: [:create, :edit, :new], param: :confirmation_token
  post "login", to: "sessions#create"
  delete "logout", to: "sessions#destroy"
  get "login", to: "sessions#new"
  resources :passwords, only: [:create, :edit, :new, :update], param: :password_reset_token
  resources :active_sessions, only: [:destroy] do
    collection do
      delete "destroy_all"
    end
  end

  mount Medialib::Engine => "/" if defined?(Medialib::Engine)

  resources :posts, only: [:index, :show]
  resources :subscriptions, except: [:index]
  get "link_handlers/mail_to", to: "link_handlers#mail_to", as: :mail_to_link
  get "pages/partner"
  get "pages/team"
  get "pages/contact"
  post "pages/contact", to: "pages#save_contact"

  resources :users, only: [:show], path: "/u", param: :username
  # scope ':username' do
  #   resources :articles
  # end

  namespace :admin do
    resources :downloads
    resources :newsletters
    resources :subscriptions, except: [:new, :create] do
      collection do
        delete :archive
      end
    end
    resources :contact_forms, except: [:new, :create]
    resources :sites, only: [:update]
    get "settings/:section", to: "sites#section", as: "settings", defaults: {section: "basic"}
    root to: "home#index"
    get "components", to: "components#index"
    get "components/:name", to: "components#show", as: "component"
    resources :posts
    resources :post_categories
    resources :users do
      collection do
        get :trashed
      end
      member do
        get :edit_role
        put :save_role
      end
    end

    namespace :account_settings do
      get "account", to: "account#index"
      post "account", to: "account#update"

      get "profile", to: "profile#index"
      post "profile", to: "profile#update"
      post "profile_avatar", to: "profile#update_avatar"
    end
  end

  get "blocks/sections/photonicat/:name", to: "welcome#lazyload_turbo_frame"
  get "locale", to: "locales#select"
  root to: "welcome#index"
end
