# Goście w Rezerwacjach - Przypomnienie w rezerwacji - review - markietyng ReservationGuest - email:string - ReservationGuest has_many Reservation - polimorficzny Reviewerable do `reviews` - cap, na ilość slotów w rezerwacje po stworzeniu opłaconej rezerwacji (confirmation) - > generuj link do podejrzenia - CustomerIO `send_review_reminder_email` po upływie czasu przed Rezerwacją -> przypomnienie CustomerIO - moje rezerwacje - znika możliwość oceniania wielu dań na raz m jak kliknie linka - kontrola ilości slotów (czy full) - rejestracja powinna dostać dodatkowe pole że jest sparowany z tym rezerwacją ## Nowa koncepcja 2.0 Krzaczka #### Encja ReservationGuest - params: email - confirmed:bool ```plantuml @startuml class ReservationGuest { + reservation_id FK + email:string + confirmed_at:datetime + user_id FK } @enduml ``` #### Open-link do rezerwacji - każdy mający link może się zapisać, co tworzy ReservationGuest - [x] link ma token generowany per rezerwacja (nie per rezerwacja i user - to niepotrzebne) [x] TEST stworzyć nowego ReservationGuest można jeśli nie jest przekroczona ilość slotów (max tylu POTWIERDZONYCH ReservationGuest per rezerwacja co ilość slotów) #### TODO implikacje dla oceniania <--------------------------------------------------- - można oceniać tylko jedno menu - oceniać mogą "właściciele" rezerwacji lub potwierdzeni goście #### implikacje dla "Moje rezerwacje" - [x] query ma zwracać rezerwacje: - [x] które założyłem - [x] TEST lub których jestem/byłem potwierdzonym uczestnikiem #### Todosy - [x] stworzyć tabelkę - [x] generowanie tokenu na obiekcie rezerwacji - [x] i Create|Read ReservationGuest - -------> [ ] (create w ramach UpdateReservation, emails[] - [x] a read w formie pola na ReservationType - [x] i metodę na ReservationType i metodę w modelu która zwróci open-link do dodawania gości - [x] mutacja addReservationGuest - create reservation guest (just email) - [x] event do customer.io - [x] mutacja acceptReservationGuest - ustawia user_id (wiąże z userem z sesji) - ustawia confirmed_at na Time.zone.now - [x] relacja w rezerwacji - [x] fabrykator - [x] rozszerzenie eventu do customer.io - [x] read na rezerwacji na podstawie tokena - [x] acceptReservationGuest