‫-: Creiamo ora, molto velocemente, il modello
‫per le nostre prenotazioni in modo che poi, nel
‫prossimo video, possiamo effettivamente iniziare a creare delle vere prenotazioni.
‫Quindi, chiudiamo
‫qui alcuni di questi file, anche queste cartelle.
‫Ecco la cartella dei modelli e quindi il modello di prenotazione. js.
‫E quindi questo, ovviamente, sarà molto simile a
‫quello che abbiamo già fatto prima, quindi
‫lo farò abbastanza velocemente.
‫Quindi, come sempre, abbiamo bisogno della mangusta e creiamo il
‫nostro schema di prenotazione mangusta. Schema, e ora, ricorda
‫come abbiamo detto prima che avremmo
‫usato i riferimenti di paragrafo
‫qui sulle prenotazioni, quindi fondamentalmente mantenendo un riferimento al
‫tour e anche all'utente che ha prenotato il tour.
‫Quindi è molto facile.
‫Lo abbiamo fatto molte volte prima.
‫Quindi mangusta. Schema. ID oggetto, giusto?
‫E poi il riferimento, e questo
‫indicherà il modello del tour.
‫Poi diciamo anche che questi
‫sono obbligatori, la prenotazione deve appartenere a un Tour.
‫Ora prendiamo questo
‫e creiamo la stessa cosa per un utente, ok?
‫Quindi è quello che abbiamo appena detto che
‫avremmo fatto mantenendo un riferimento
‫sia al tour che viene acquistato sia all'utente che effettua l'acquisto.
‫Poi vogliamo anche sapere il
‫prezzo a cui è effettivamente avvenuto l'acquisto,
‫e questo perché il prezzo potrebbe
‫cambiare in futuro, quindi non sapremmo più quanto un
‫certo utente ha pagato per un tour.
‫E quindi è importante avere anche questo
‫qui nella prenotazione, quindi questo sarà un numero,
‫e richiediamo anche questo,
‫la prenotazione deve avere un prezzo.
‫Successivamente, creiamo anche il nostro timestamp createAt, che è una data,
‫e quindi
‫aggiungiamo semplicemente il valore predefinito in
‫modo da non dover fare nulla.
‫Infine, voglio anche creare una proprietà a pagamento e
‫questa verrà automaticamente impostata su true, ma questo è solo nel
‫caso in cui, ad esempio, un
‫amministratore desideri creare una prenotazione al
‫di fuori di Stripe.
‫Quindi, ad esempio, se un cliente non ha una carta di
‫credito e vuole pagare direttamente, come in un negozio con contanti,
‫o qualcosa del genere.
‫E in questo caso, un amministratore potrebbe quindi
‫utilizzare la nostra API di prenotazione per
‫creare sostanzialmente manualmente un tour e quindi potrebbe essere pagato o
‫non ancora pagato.
‫Quindi solo un piccolo
‫dettaglio qui, pensando a questo, e ho pensato
‫che potrebbe essere interessante includerlo anche qui.
‫Ma ovviamente, per impostazione predefinita, sarà vero in
‫modo che non dovremo fare nulla.
‫Ora, finalmente, creiamo un modello da questo, quindi la
‫prenotazione è uguale alla mangusta. modello, e quindi, ovviamente,
‫il nostro bookingSchema e quindi esportando
‫il tutto,
‫è uguale a Booking.
‫Ora quello che vogliamo
‫fare anche qui è popolare il tour e l'utente automaticamente ogni
‫volta che c'è una query, va bene?
‫Quindi ricorda come lo facevamo usando il
‫middleware di query.
‫Quindi, proprio sullo schema. pre, e poi
‫qui o come al solito espressione regolare e
‫qualunque cosa inizi con find.
‫Quindi qui dopo, e
‫poi questo. popola, e lo facciamo in
‫realtà automaticamente sia
‫per l'utente che per i tour.
‫E in questo caso non
‫è assolutamente un problema per le prestazioni,
‫perché non ci saranno molte chiamate alle prenotazioni, perché solo le
‫guide e gli amministratori potranno effettivamente farle, va bene?
‫Quindi, in pratica, per una guida
‫da controllare è stato effettivamente prenotato il loro tour.
‫Quindi questo è uno dei
‫casi d'uso che vedo per questa parte dell'API, ok?
‫Quindi, ancora una volta, questa query non accadrà così spesso,
‫quindi possiamo facilmente popolare tutto questo
‫senza alcun problema.
‫Popoliamo quindi anche il tour, ma qui
‫in realtà voglio selezionare solo il nome del tour.
‫Quindi diciamo percorso, tour e seleziona solo il nome, ok?
‫Ora qui abbiamo un qualche tipo di errore, va bene,
‫quindi dovrebbe essere una mangusta, non un'oca lunare.
‫Quindi, ancora una volta, ESLint ci ha salvati qui.
‫Oh, e in realtà ce ne sono di più.
‫Salvalo ancora una volta e ora siamo a posto.
‫Quindi è davvero così.
‫Questo è il nostro modello di
‫prenotazione che ora possiamo iniziare a utilizzare nel prossimo video.