diff --git a/app/controllers/tables_arrangements_controller.rb b/app/controllers/tables_arrangements_controller.rb index 75451ca..a1d7420 100644 --- a/app/controllers/tables_arrangements_controller.rb +++ b/app/controllers/tables_arrangements_controller.rb @@ -2,10 +2,15 @@ class TablesArrangementsController < ApplicationController def index - render json: TablesArrangement.all.order(discomfort: :asc).limit(10) + render json: TablesArrangement.all.order(discomfort: :asc).limit(3).as_json(only: %i[id discomfort]) end def show - render json: TablesArrangement.find(params[:id]) + Seat.joins(:guest).where(tables_arrangement_id: params[:id]) + .pluck(:table_number, Arel.sql("guests.first_name || ' ' || guests.last_name "), 'guests.id') + .group_by(&:first) + .transform_values { |table| table.map { |(_, name, id)| { id:, name: } } } + .map { |number, guests| { number:, guests: } } + .then { |result| render json: result } end end diff --git a/app/models/tables_arrangement.rb b/app/models/tables_arrangement.rb index c3c0797..0ceb0cd 100644 --- a/app/models/tables_arrangement.rb +++ b/app/models/tables_arrangement.rb @@ -2,4 +2,5 @@ class TablesArrangement < ApplicationRecord has_many :seats + has_many :guests, through: :seats end