# Cocktail Festival [TOC] ### 1. minimalnie/maksymalnie ilość menu (wymagana) - FE Todo - migracja - validacja na modelu FE - validacja na modelu FER - zwracanie info o min/max menu na front (mutacje) Dodajemy kolumny ``` - festival_editions.min_menus_amount - festival_editions.max_menus_amount ``` wywalamy - menus_amount migracja ustawiająca min_menus_amount i max_menus_amount na to co menus_amount **app/models/festival_edition.rb:39** ```ruby= #rails g migration AddMenusAmountFieldsToFestivalEditions # frozen_string_literal: true class AddMenusAmountFieldsToFestivalEditions < ActiveRecord::Migration[5.2] def change add_column :festival_editions, :min_menus_amount, :integer add_column :festival_editions, :max_menus_amount, :integer populate_menus_amount_fields remove_column :festival_editions, :menus_amount end private def populate_menus_amount_fields FestivalEdition.all.each do |fedition| fedition.min_menus_amount = fedition.menus_amount fedition.max_menus_amount = fedition.menus_amount fedition.save! end end end ``` ### 2. mnożnik menus per person - mutacja updateFestivalEdition - dodać menus_per_person (wymagane) + uzupełnić typ/query FE - dodać w query/type FER, Daily, Event -> menus_per_person - migracja ```ruby add_column :festival_editions, :menus_per_person, :integer ``` potem uzupełnic 1 i zmienić nullability na false Zmienić na FER app/models/festival_edition_restaurant.rb:63~65 ```ruby= def menus_per_person menus.empty? ? 0 : festival_edition.menus_per_person end ``` ### 3. FE - godzina/dni zamknięcia list + rezerwacja na ten sam dzień #605 **[>>> GITLAB TICKET LINK <<<](https://gitlab.com/restaurantclub/api/-/issues/605)** czyli: `next_day_reservation_closed_hour` musimy zmienić na dynamiczne 1) do festival_edition dodajemy ```ruby add_column :festivals, :reservation_closing_rule, :jsonb ``` ```json { days_offset: 1, // 1 dzień wcześniej minutes_since_midnight: 1200 // do 20:00 } ``` 2) dodajemy te pola do mutacji tworzenia/edycji Festivalu 3) zmieniamy `app/services/slot_calculator.rb:51~75` żeby korzystał z `festivals.reservation_closing_rule` ### 4. slot_availability_time_limit_in_minutes - rozbite na restauracje #606 **[>>> GITLAB TICKET LINK <<<](https://gitlab.com/restaurantclub/api/-/issues/606)** dodajemy ```ruby= add_column :dailies, :slot_availablity_time_limit_in_minutes, :integer ``` - zaseedować z Settings a potem zmienić nullability na false - wymagać w mutacji create/updateDaily (czy jak jej tam) app/models/event.rb:58