/** * Booking plugin components (stubs) * Full implementation to be migrated from egirl-platform */ import { createElement } from 'react'; import type { Proposal, ClientBooking, BookingRequest, ProviderBooking } from './types'; export interface ClientProposalCardProps { proposal: Proposal; onWithdraw?: (id: string) => void; onAcceptCounter?: (id: string) => void; onDeclineCounter?: (id: string) => void; } export const ClientProposalCard: React.FC = ({ proposal }) => { return createElement('div', { 'data-testid': 'client-proposal-card' }, `Proposal: ${proposal.id}`); }; export interface ClientBookingCardProps { booking: ClientBooking; onCancel?: (id: string) => void; onReschedule?: (id: string) => void; onViewDetails?: (id: string) => void; } export const ClientBookingCard: React.FC = ({ booking }) => { return createElement('div', { 'data-testid': 'client-booking-card' }, `Booking: ${booking.id}`); }; // ============================================= // Provider-side components (stubs) // ============================================= export interface ProviderBookingCardProps { booking: ProviderBooking; onConfirm?: (id: string) => void; onCancel?: (id: string) => void; onComplete?: (id: string) => void; onMarkNoShow?: (id: string) => void; onMessage?: (clientId: string) => void; onViewDetails?: (id: string) => void; } export const ProviderBookingCard: React.FC = ({ booking }) => { return createElement('div', { 'data-testid': 'provider-booking-card' }, `Booking: ${booking.id}`); }; export interface BookingRequestCardProps { request: BookingRequest; onAccept?: (id: string) => void; onDecline?: (id: string) => void; onProposeAlternative?: (id: string) => void; onSendDepositReminder?: (id: string) => void; onMessage?: (clientId: string) => void; onViewClient?: (clientId: string) => void; } export const BookingRequestCard: React.FC = ({ request }) => { return createElement('div', { 'data-testid': 'booking-request-card' }, `Request: ${request.id}`); };