-
-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mutación — Regalar Ticket #30
Comments
Inputs necesario: |
. |
@Benjvvp creo q no deberíamos hacer esta parte ahora al toke. Deberíamos implementar la API en las versiones más básicas primero. (onda...api sin frontend...niun brillo 😆 ) Dejo escrita la explicacion igual :) Esto es cuando yo tengo un ticket. (lo compré, o lo reservé) Entonces en ves de cancelarlo, se lo quiero regalar a alguien más. Estos flujos tienen 3 entidades principales. Flujo de aceptacion
Flujo de Cancelacion
Flujo de Rechazo
Esto quiere decir que tenemos que tener una tabla nueva de "UserTicketGifts", que tenga una referencia al |
Este PR implementa la funcionalidad de regalo de tickets (relacionado a #30, #31) y además incorpora optimizaciones de rendimiento propuestas en el PR #273. Se incluyen los siguientes cambios principales: 1. Nuevas tablas y relaciones: - `user_ticket_gifts`: Almacena información sobre los regalos de tickets. - Actualización de `user_tickets` con nuevos estados y relaciones. 2. Endpoints GraphQL: - Mutación `giftMyTicketToUser`: Permite a un usuario regalar su ticket. - Mutación `acceptGiftedTicket`: Permite al receptor aceptar un ticket regalado. - Query `myTicketGifts`: Obtiene los regalos de tickets enviados o recibidos por el usuario actual. 3. Lógica de negocio: - Implementación de validaciones para evitar auto-regalos y exceder límites de tickets. - Manejo de estados de regalo (pendiente, aceptado, rechazado, cancelado, expirado). - Cálculo de fechas de expiración para regalos. 4. Servicio de correo electrónico (solo para 9punto5, luego hay que extenderlo): - Nuevas plantillas de correo para notificaciones de regalo de tickets. - Implementación de métodos para enviar correos de confirmación de regalo y aceptación. 5. Actualizaciones en flujos existentes: - Modificación de `claimUserTicket` para manejar regalos de tickets durante la compra. 6. Pruebas: - Nuevos tests para cubrir los escenarios de regalo de tickets. ## Optimizaciones de rendimiento (del PR #273): Dado que estamos añadiendo más complejidad a la mutación `claim`, se han incorporado las optimizaciones propuestas en el PR #273. Estas incluyen: - Eliminación de verificaciones redundantes. - Paralelización de operaciones usando `Promise.all`. - Optimización de consultas a la base de datos, reemplazando múltiples consultas individuales por consultas en lote más eficientes. Estas optimizaciones, aunque no cruciales, son relevantes para mantener el rendimiento de la mutación `claim` a medida que se añade nueva funcionalidad. Cualquier feedback o sugerencia para mejorar la implementación es bienvenido.
Un usuario puede regalar un
userTicket
a otro usuario.Cuando un
userTicket
se regala a otro usuario, eluserTicket
queda en estado "pendiente de aceptación".este
userTicket
no puede ser redimido hasta que la invitación sea aceptada, rechazada, o retirada.Permisos:
The text was updated successfully, but these errors were encountered: