# Copyright (C) 2024 Manuel Bustillo

require 'swagger_helper'

RSpec.describe 'summary', type: :request do
  path '/{slug}/summary' do
    get('list summaries') do
      tags 'Summary'
      produces 'application/json'
      consumes 'application/json'
      parameter Swagger::Schema::SLUG
      response(200, 'successful') do
        schema type: :object,
               required: %i[expenses guests],
               properties: {
                 expenses: {
                   type: :object,
                   required: %i[projected confirmed status],
                   properties: {
                     projected: {
                       type: :object,
                       required: %i[total guests],
                       properties: {
                         total: { type: :number },
                         guests: { type: :number }
                       }
                     },
                     confirmed: {
                       type: :object,
                       required: %i[total guests],
                       properties: {
                         total: { type: :number },
                         guests: { type: :number }
                       }
                     },
                     status: {
                       type: :object,
                       required: [:paid],
                       properties: {
                         paid: { type: :number }
                       }
                     }
                   }
                 },
                 guests: {
                   type: :object,
                   required: %i[total confirmed declined tentative invited],
                   properties: {
                     total: { type: :number },
                     confirmed: { type: :number },
                     declined: { type: :number },
                     tentative: { type: :number },
                     invited: { type: :number }
                   }
                 }
               }
        xit
      end
    end
  end
end