- ¿Qué responsabilidad tiene cada capa (Controller, Service, Repository)? ¿Qué pasa si se pone lógica de negocio en el controller?
- Si necesitaras agregar una nueva entidad (por ejemplo,
Waiter), ¿qué archivos crearías y en qué carpetas?
- ¿Qué código HTTP devolvés cuando se intenta crear una reserva para una mesa OUT_OF_SERVICE? ¿Por qué ese y no otro?
- ¿Qué diferencia hay entre un 400 (Bad Request) y un 409 (Conflict)? ¿En qué casos usaste cada uno?
- Si el cliente envía un JSON con campos faltantes, ¿qué código devolvés y qué mensaje?
- ¿Cómo manejás los errores inesperados (por ejemplo, la base de datos se cae)? ¿Devolvés el stack trace al cliente?
- ¿Dónde validás que la capacidad de una mesa sea mayor a 0? ¿En el controller, en el service, o en la entidad? ¿Por qué ahí?
- ¿Cómo implementaste la validación de solapamiento de turnos? Explicá la query o la lógica que usaste.
- ¿Qué pasa si dos requests intentan reservar la misma mesa y turno al mismo tiempo? ¿Cómo prevenís esa condición de carrera?
- ¿Qué tipo de relaciones definiste entre las entidades (ManyToOne, OneToMany)? ¿Por qué elegiste esas?
- ¿Qué es
synchronize: trueen TypeORM y por qué no se recomienda en producción? - ¿Qué pasa si ejecutás
migration:rundos veces seguidas?
- ¿Cómo lograste que el seed sea idempotente?