# 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