@wallfar/ocd-studio-core-sdk
Version:
Helper SDK for our OneClick Studio modules
60 lines (55 loc) • 3.25 kB
TypeScript
import { Firestore } from 'firebase-admin/firestore';
import { B as BookerServerConfig, E as ReservationValidationInput, F as ReservationValidationResult, i as BookingOrderInput, C as CreateOrderResult, h as BookingOrder, w as ProcessBookingChangeOrder, x as ProcessBookingChangeReservation, v as ProcessBookingChangeOptions, P as PaymentLinkOptions, q as PaymentLinkResult, r as PaymentWebhookResult } from './shared/ocd-studio-core-sdk.ShBMfdE2.js';
export { e as BookingAdjustment, f as BookingMetadata, g as BookingMetadataValue, j as BookingOrderRequestData, k as BookingOrderReservation, m as BookingValidationError, n as BookingValidationErrorCode, o as BookingValidationErrorScope, p as CustomerInfo, s as ProcessBookingCancelledContext, t as ProcessBookingChangeCallbackContext, u as ProcessBookingChangeEvent, y as ProcessBookingChangeReservationContext, z as ProcessBookingConfirmedContext, V as ValidatedReservation } from './shared/ocd-studio-core-sdk.ShBMfdE2.js';
import 'vue';
import '@internationalized/date';
import 'firebase-functions/v2/firestore';
interface WebshopServerConfig {
defaultBrand?: string;
defaultCurrency?: string;
defaultLocale?: string;
provider: 'firebase';
firebase?: {
db: Firestore;
products: string;
collections: string;
shippingOptions: string;
promoCodes: string;
};
paymentProvider: 'stripe';
stripe?: {
key: string;
webhook_secret: string;
};
}
interface PromoCodeDto {
id?: string;
code: string;
type: string;
value?: number;
minOrderAmount?: number;
}
declare class WebshopServer {
private config;
constructor(config: WebshopServerConfig);
validatePromoCode(code: string): Promise<{
valid: boolean;
promo?: PromoCodeDto;
error?: string;
}>;
createPaymentLink(checkoutData: any): Promise<string>;
}
declare class BookerServer {
private config;
constructor(config: BookerServerConfig);
validateReservation(input: ReservationValidationInput): Promise<ReservationValidationResult>;
validateReservations(inputs: ReservationValidationInput[]): Promise<ReservationValidationResult[]>;
createOrder(input: BookingOrderInput): Promise<CreateOrderResult>;
getOrder(orderId: string): Promise<BookingOrder | null>;
updateOrderStatus(orderId: string, status: BookingOrder['status'], paymentStatus?: BookingOrder['paymentStatus'], amountPaid?: number): Promise<void>;
processBookingChange<Order extends ProcessBookingChangeOrder<ProcessBookingChangeReservation> = BookingOrder, Params = Record<string, string>>(options: ProcessBookingChangeOptions<Order, Params>): Promise<void>;
createPaymentLink(orderId: string, options: PaymentLinkOptions): Promise<PaymentLinkResult>;
handleWebhook(payload: string | Buffer, signature: string): Promise<PaymentWebhookResult>;
}
export { BookerServer, BookerServerConfig, BookingOrder, BookingOrderInput, CreateOrderResult, PaymentLinkOptions, PaymentLinkResult, PaymentWebhookResult, ProcessBookingChangeOptions, ProcessBookingChangeOrder, ProcessBookingChangeReservation, ReservationValidationInput, ReservationValidationResult, WebshopServer };
export type { WebshopServerConfig };