import type { Payment, Prisma, Booking } from "@prisma/client"; import type { CalendarEvent } from "@calcom/types/Calendar"; export interface IAbstractPaymentService { create( payment: Pick, bookingId: Booking["id"] ): Promise; update(paymentId: Payment["id"], data: Partial): Promise; refund(paymentId: Payment["id"]): Promise; getPaymentPaidStatus(): Promise; getPaymentDetails(): Promise; afterPayment( event: CalendarEvent, booking: { user: { email: string | null; name: string | null; timeZone: string } | null; id: number; startTime: { toISOString: () => string }; uid: string; }, paymentData: Payment ): Promise; deletePayment(paymentId: Payment["id"]): Promise; }