Rails.application.routes.draw do

  locales = Site.find_by(site_active: true).in_use_locales rescue I18n.available_locales
  scope "(:locale)", locale: ::Regexp.new(locales.join("|")) do
    namespace :admin do
      # get "client_managements/completed_requests", to: 'client_managements#completed_requests'
      # get "client_managements/contracts", to: 'client_managements#contracts'

      match 'plow' => 'plow#index', via: [:get, :post, :put, :patch, :delete]
      get 'plow/setting' => 'plow#setting'
      patch 'plow/save_setting' => 'plow#save_setting'
      match 'plow/*path' => 'plow#show', via: [:get, :post, :put, :patch, :delete]
      resources :client_managements do
        member do
          get "make_contract"
          post "create_contract"
          get "edit_contract"
          get "see_contract"
          patch "update_contract"
          get "confirm_contract"
          get "make_timeline"
          get "edit_timeline"
          post "create_timeline"
          post "update_timeline"
          get "make_purchase"
          patch "add_sites"
          get "complete_request"
          get "receipts"
          get "add_receipt"
          get "edit_receipt"
          post "create_receipt"
          patch "update_receipt"
          get "project_dashboard"
          patch "update_site_request"
          post "create_project_post"
          post "timeline_update"
        end
        collection do 
          get "completed_requests"
          get "contracts"
        end
      end
      get "site_panel/setting" => "site_panel#setting"
      patch "site_panel/update_setting" => "site_panel#update_setting"
      get "site_panel/edit_site" => "site_panel#edit_site"
      post "site_panel/edit_site" => "site_panel#edit_site"
      get "site_panel/site_infos" => "site_panel#site_infos"
      post "site_panel/site_infos" => "site_panel#site_infos"
      post "site_panel/create_site" => "site_panel#create_site"
      post "site_panel/create" => "site_panel#create"
      patch "site_panel/create" => "site_panel#create"
      get "site_panel" => "site_panel#index"
      get "site_panel/sites_list" => "site_panel#sites_list"
      get "site_panel/server_manager" => "site_panel#server_manager"
      get "site_panel/edit_server_info" => "site_panel#edit_server_info"
      post "site_panel/edit_server_info" => "site_panel#edit_server_info"
      get "site_panel/install_certbot" => "site_panel#install_certbot"
      post "site_panel/install_certbot" => "site_panel#install_certbot"
      
      post "site_panel/update_cert_setting" => "site_panel#update_cert_setting"
      post "site_panel/update_nginx_settings" => "site_panel#update_nginx_settings"
      resources :site_panel do
        delete 'destroy_cert'
        get 'edit_cert'
        post 'update_cert'
        patch 'update_cert'
        collection do
          get 'cert_management'
          get 'upload_cert'
          get 'get_certs_for_site'
          post 'create_cert'
          patch 'create_cert'
        end
        member do
          get 'backup_setting'
          post 'update_backup_setting'
          patch 'update_backup_setting'
          get "super_manager_management"
          patch "update_super_manager_management"
          get "super_manager_management_for_site" 
          patch "update_super_manager_management_for_site"
        end
      end

    end

    scope :cpanel do 
      get "sites" => "client_managements#index"
      get "site/:site_uid" => "client_managements#show", as: "cpanel_site_show"
      get "site/:site_uid/tickets" => "client_managements#site_tickets"
      get "dofirstrun" => "client_managements#dofirstrun"
      get "user_sites" => "client_managements#user_sites"
      get "addsite" => "client_managements#addsite", as: "cpanel_add_site"
      post "addsitestouser" => "client_managements#addsitestouser"
      get "addnewsite" => "client_managements#addnewsite", as: "cpanel_add_new_site"
      post "requestsite" => "client_managements#requestsite"

      # profile
      get "myprofile" => "client_managements#myprofile", as: "cpanel_myprofile"
      patch "update_member_profile" => "client_managements#update_member_profile"
      get "myprofilepassword" => "client_managements#myprofilepassword", as: "cpanel_myprofilepassword"
      patch "update_member_profile_password" => "client_managements#update_member_profile_password"

      # history
      get "history" => "client_managements#history", as: "cpanel_myhistory"
      get "contracts" => "client_managements#contracts", as: "cpanel_mycontracts"
      get "purchases" => "client_managements#purchases", as: "cpanel_mypurchases"
      get "request/:request_uid" => "client_managements#see_request"
      get "contract/:contract_uid" => "client_managements#see_contract", as: "cpanel_contract_show"
      patch "contract/:contract_uid/update_contract" => "client_managements#update_contract"
      get "request/:request_uid/cancel" => "client_managements#cancel_request", as: "cpanel_cancel_request"
      get "contract/:contract_uid/confirm" => "client_managements#confirm_contract"
      
      # ticket
      get "site/:site_uid/new_ticket" => "client_managements#new_ticket"
      post "site/:site_uid/create_ticket" => "client_managements#create_ticket"
      get "ticket/:ticket_id/close" => "client_managements#close_ticket"
      get "ticket/:ticket_id/reopen" => "client_managements#reopen_ticket"
      delete "ticket/:ticket_id/delete" => "client_managements#delete_ticket"
      get "ticket/:ticket_id" => "client_managements#show_ticket", as: "cpanel_show_ticket"
      post "ticket/:ticket_id/create_ticket_query" => "client_managements#create_ticket_query"

      get "signup" => "c_panel_sessions#signup", as: "cpanel_signup"
      post "create_user" => "c_panel_sessions#create_user"
      get "login" => "c_panel_sessions#login", as: "cpanel_login"
      get "logout" => "c_panel_sessions#logout", as: "cpanel_logout"
      get "requestpassword" => "c_panel_sessions#requestpassword", as: "requestpassword"
      post "instructions" => "c_panel_sessions#instructions"
      get "reset_password" => "c_panel_sessions#reset_password", as: "cpanel_reset_password"
      get "confirm_email" => "c_panel_sessions#confirm_email", as: "cpanel_confirm_email"
      post "update_password" => "c_panel_sessions#update_cpanel_user_password"
      post "loguserin" => "c_panel_sessions#loguserin"
      
    end

    get "/xhr/site_panel_api/get_list" => "site_panel_api#index"
    get "/xhr/site_panel_api/constructed/:site_id" => "site_panel_api#constructed"
  
  end
end
