# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors Rails.application.routes.draw do mount LetterOpenerWeb::Engine, at: "/letter_opener" if Rails.env.development? get 'token' => 'tokens#show', as: :token get 'up' => 'rails/health#show', as: :rails_health_check resources :captcha, only: :create do get 'v2/media', to: 'captcha#media', on: :collection, as: :media end mount Rswag::Ui::Engine => '/api-docs' mount Rswag::Api::Engine => '/api-docs' scope ":slug", constraints: { slug: Wedding::SLUG_REGEX } do devise_for :users, skip: [:registration, :session, :confirmation] devise_scope :user do post 'users', to: 'users/registrations#create' post '/users/sign_in', to: 'users/sessions#create' delete '/users/sign_out', to: 'users/sessions#destroy' get '/users/confirmation', to: 'users/confirmations#show', as: :confirmation end resources :groups, only: %i[index create update destroy] do post 'affinities/reset', to: 'affinities#reset', on: :collection resources :affinities, only: %i[index] do put :bulk_update, on: :collection get :default, on: :collection end end resources :guests, only: %i[index create update destroy] do post :bulk_update, on: :collection end resources :expenses, only: %i[index create update destroy] do get :summary, on: :collection end resources :tables_arrangements, only: %i[index show] resources :summary, only: :index root to: redirect("/%{slug}") end end