2025-12-30 21:13:24 -08:00
|
|
|
/**
|
|
|
|
|
* Booking plugin components (stubs)
|
|
|
|
|
* Full implementation to be migrated from egirl-platform
|
|
|
|
|
*/
|
|
|
|
|
|
2026-01-23 20:26:52 -08:00
|
|
|
import { createElement } from 'react'
|
|
|
|
|
import type { FC } from 'react';
|
2026-01-18 09:20:17 -08:00
|
|
|
import type { Proposal, ClientBooking, BookingRequest, ProviderBooking } from './types';
|
2025-12-30 21:13:24 -08:00
|
|
|
|
|
|
|
|
export interface ClientProposalCardProps {
|
|
|
|
|
proposal: Proposal;
|
|
|
|
|
onWithdraw?: (id: string) => void;
|
|
|
|
|
onAcceptCounter?: (id: string) => void;
|
|
|
|
|
onDeclineCounter?: (id: string) => void;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-23 20:26:52 -08:00
|
|
|
export const ClientProposalCard: FC<ClientProposalCardProps> = ({ proposal }) => {
|
2026-01-02 03:03:56 -08:00
|
|
|
return createElement('div', { 'data-testid': 'client-proposal-card' }, `Proposal: ${proposal.id}`);
|
2025-12-30 21:13:24 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export interface ClientBookingCardProps {
|
|
|
|
|
booking: ClientBooking;
|
|
|
|
|
onCancel?: (id: string) => void;
|
|
|
|
|
onReschedule?: (id: string) => void;
|
|
|
|
|
onViewDetails?: (id: string) => void;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-23 20:26:52 -08:00
|
|
|
export const ClientBookingCard: FC<ClientBookingCardProps> = ({ booking }) => {
|
2026-01-02 03:03:56 -08:00
|
|
|
return createElement('div', { 'data-testid': 'client-booking-card' }, `Booking: ${booking.id}`);
|
2025-12-30 21:13:24 -08:00
|
|
|
};
|
2026-01-18 09:20:17 -08:00
|
|
|
|
|
|
|
|
// =============================================
|
|
|
|
|
// 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;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-23 20:26:52 -08:00
|
|
|
export const ProviderBookingCard: FC<ProviderBookingCardProps> = ({ booking }) => {
|
2026-01-18 09:20:17 -08:00
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-23 20:26:52 -08:00
|
|
|
export const BookingRequestCard: FC<BookingRequestCardProps> = ({ request }) => {
|
2026-01-18 09:20:17 -08:00
|
|
|
return createElement('div', { 'data-testid': 'booking-request-card' }, `Request: ${request.id}`);
|
|
|
|
|
};
|