Backend and frontend updates: auth, email, payments, events, tickets; carrousel images; mobile event detail layout; i18n

This commit is contained in:
Michilis
2026-02-02 20:58:21 +00:00
parent bafd1425c4
commit 4a84ad22c7
44 changed files with 1323 additions and 472 deletions

View File

@@ -124,9 +124,10 @@ export const ticketsApi = {
}),
// For manual payment methods (bank_transfer, tpago) - user marks payment as sent
markPaymentSent: (id: string) =>
markPaymentSent: (id: string, payerName?: string) =>
fetchApi<{ payment: Payment; message: string }>(`/api/tickets/${id}/mark-payment-sent`, {
method: 'POST',
body: JSON.stringify({ payerName }),
}),
adminCreate: (data: {
@@ -444,12 +445,14 @@ export interface Event {
export interface Ticket {
id: string;
bookingId?: string; // Groups multiple tickets from same booking
userId: string;
eventId: string;
attendeeFirstName: string;
attendeeLastName?: string;
attendeeEmail?: string;
attendeePhone?: string;
attendeeRuc?: string;
preferredLanguage?: string;
status: 'pending' | 'confirmed' | 'cancelled' | 'checked_in';
checkinAt?: string;
@@ -494,6 +497,7 @@ export interface Payment {
status: 'pending' | 'pending_approval' | 'paid' | 'refunded' | 'failed';
reference?: string;
userMarkedPaidAt?: string;
payerName?: string; // Name of payer if different from attendee
paidAt?: string;
paidByAdminId?: string;
adminNote?: string;
@@ -504,6 +508,7 @@ export interface Payment {
export interface PaymentWithDetails extends Payment {
ticket: {
id: string;
bookingId?: string;
attendeeFirstName: string;
attendeeLastName?: string;
attendeeEmail?: string;
@@ -560,6 +565,11 @@ export interface Contact {
createdAt: string;
}
export interface AttendeeData {
firstName: string;
lastName?: string;
}
export interface BookingData {
eventId: string;
firstName: string;
@@ -569,6 +579,8 @@ export interface BookingData {
preferredLanguage?: 'en' | 'es';
paymentMethod: 'bancard' | 'lightning' | 'cash' | 'bank_transfer' | 'tpago';
ruc?: string;
// For multi-ticket bookings
attendees?: AttendeeData[];
}
export interface DashboardData {