# Copyright (C) 2024-2025 LibreWeddingPlanner contributors

# frozen_string_literal: true

require 'csv'

class GuestsController < ApplicationController
  def index
    render json: Guest.includes(:group)
                      .left_joins(:group)
                      .order('groups.name' => :asc, name: :asc)
                      .as_json(only: %i[id name status], include: { group: { only: %i[id name] } })
  end

  def create
    Guest.create!(guest_params)
    render json: {}, status: :created
  end

  def update
    Guest.find(params[:id]).update!(guest_params)
    render json: {}, status: :ok
  end

  def destroy
    Guest.find(params[:id]).destroy!
    render json: {}, status: :ok
  end

  private

  def guest_params
    params.expect(guest: %i[name group_id status])
  end
end