arky-sdk 0.4.38 → 0.4.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +15 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +15 -16
- package/dist/index.js.map +1 -1
- package/dist/types.cjs +2 -3
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +27 -37
- package/dist/types.d.ts +27 -37
- package/dist/types.js +2 -3
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/types.cjs
CHANGED
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
// src/types/index.ts
|
|
4
4
|
var PaymentMethodType = /* @__PURE__ */ ((PaymentMethodType2) => {
|
|
5
|
-
PaymentMethodType2["Cash"] = "
|
|
6
|
-
PaymentMethodType2["CreditCard"] = "
|
|
7
|
-
PaymentMethodType2["PayPal"] = "PAYPAL";
|
|
5
|
+
PaymentMethodType2["Cash"] = "cash";
|
|
6
|
+
PaymentMethodType2["CreditCard"] = "credit_card";
|
|
8
7
|
return PaymentMethodType2;
|
|
9
8
|
})(PaymentMethodType || {});
|
|
10
9
|
|
package/dist/types.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/index.ts"],"names":["PaymentMethodType"],"mappings":";;;AA4CO,IAAK,iBAAA,qBAAAA,kBAAAA,KAAL;AACN,EAAAA,mBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,mBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,mBAAA,QAAA,CAAA,GAAS,QAAA;AAHE,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA","file":"types.cjs","sourcesContent":["export * from './api';\n\nexport interface PaymentRefund {\n\tid: string;\n\tentity: string;\n\ttotal: number;\n\tproviderRefundId?: string;\n\tstatus: string;\n\tcreatedAt: number;\n}\n\nexport interface Payment {\n\tcurrency: string;\n\tmarket: string;\n\tsubtotal: number;\n\tshipping: number;\n\tdiscount: number;\n\ttotal: number;\n\tpaid: number;\n\ttax?: {\n\t\tamount: number;\n\t\tmodeSnapshot?: string;\n\t\trateBps: number;\n\t\tlines: Array<{ rateBps: number; amount: number; label?: string; scope?: string }>;\n\t};\n\tpromoCode?: {\n\t\tid: string;\n\t\tcode: string;\n\t\ttype: string;\n\t\tvalue: number;\n\t};\n\ttype: PaymentMethodType;\n\tprovider?: {\n\t\tcustomerId: string;\n\t\tpaymentIntentId?: string;\n\t\tsubscriptionId?: string;\n\t\tpriceId?: string;\n\t};\n\trefunds: PaymentRefund[];\n\tzoneId?: string;\n\tpaymentMethodId?: string;\n\tshippingMethodId?: string;\n}\n\nexport enum PaymentMethodType {\n\tCash = \"CASH\",\n\tCreditCard = \"CREDIT_CARD\",\n\tPayPal = \"PAYPAL\",\n\t// Free REMOVED - handled with logic: if total == 0, skip payment\n\t// NOTE: Apple Pay and Google Pay are NOT separate PaymentMethodTypes\n\t// They are handled automatically by Stripe's Payment Element\n}\n\nexport interface PromoCodeValidation {\n\tpromoCodeId: string;\n\tcode: string;\n\tdiscounts: any[];\n\tconditions: any[];\n}\n\nexport interface Quote {\n\tmarket: string;\n\tzone: Zone;\n\tsubtotal: number;\n\tshipping: number;\n\tdiscount: number;\n\ttax: number;\n\ttotal: number;\n\tshippingMethod: ShippingMethod | null;\n\tpaymentMethod: PaymentMethod | null;\n\tpromoCode: PromoCodeValidation | null;\n\tpayment: Payment;\n\tchargeAmount: number;\n\tid?: string;\n\texpiresAt?: number;\n}\n\n/** Price for products and services (market-based, no provider fields) */\nexport interface Price {\n\tcurrency: string;\n\tmarket: string;\n\tamount: number;\n\tcompareAt?: number;\n}\n\n/** Interval period for subscription pricing */\nexport type IntervalPeriod = 'MONTH' | 'YEAR';\n\n/** Subscription interval configuration */\nexport interface SubscriptionInterval {\n\tperiod: IntervalPeriod;\n\tcount: number;\n}\n\n/** Price provider configuration (e.g., Stripe) */\nexport interface PriceProvider {\n\ttype: string;\n\tid: string;\n}\n\n/** Price for audiences/subscriptions (provider-based with interval) */\nexport interface SubscriptionPrice {\n\tcurrency: string;\n\tamount: number;\n\tcompareAt?: number;\n\tinterval?: SubscriptionInterval;\n\tproviders: PriceProvider[];\n}\n\n/**\n * Unified Location type used for addresses, shipping, and geo locations.\n * All fields are optional to support various use cases.\n */\nexport interface Location {\n\t// Identity/Contact\n\tname?: string | null;\n\tcompany?: string | null;\n\temail?: string | null;\n\tphone?: string | null;\n\n\t// Address\n\tstreet1?: string | null;\n\tstreet2?: string | null;\n\tcity?: string | null;\n\tstate?: string | null;\n\tpostalCode?: string | null;\n\tcountry?: string | null;\n\n\t// Geo\n\tcoordinates?: { lat: number; lon: number } | null;\n}\n\nexport interface EshopCartItem {\n\tid: string;\n\tproductId: string;\n\tvariantId: string;\n\tproductName: string;\n\tproductSlug: string;\n\tvariantAttributes: Record<string, any>;\n\tprice: Price;\n\tquantity: number;\n\taddedAt: number;\n}\n\nexport interface ReservationCartItem {\n\tid: string;\n\tserviceId: string;\n\tserviceName: string;\n\tdate: string;\n\tfrom: number;\n\tto: number;\n\ttimeText: string;\n\tproviderId?: string;\n\tblocks: any[];\n}\n\n/** Card payment processor - business picks ONE\n * Handles: Credit/Debit Cards, Apple Pay, Google Pay\n * Note: Wallet payments are controlled via Stripe Dashboard and detected automatically\n */\nexport interface CardProvider {\n\ttype: \"STRIPE\";\n\taccountId: string;\n\tcurrency: string;\n}\n\n/** Alternative payment providers - multiple allowed */\nexport interface AlternativeProvider {\n\ttype: \"PAYPAL\";\n\tmerchantId: string;\n\tclientId: string;\n\tcurrency: string;\n}\n\n/** @deprecated Use CardProvider instead */\nexport interface PaymentProviderConfig {\n\ttype: \"STRIPE\";\n\tpublicKey: string;\n\tsecretKey: string;\n\twebhookSecret: string;\n}\n\nexport interface AnalyticsConfig {\n\ttype: \"GA4\";\n\tmeasurementId: string;\n}\n\nexport interface ShippingWeightTier {\n\tupToGrams: number;\n\tamount: number;\n}\n\nexport interface PaymentMethod {\n\tid: string;\n\tname: Record<string, string>;\n\ttype: PaymentMethodType;\n}\n\nexport interface ShippingMethod {\n\tid: string;\n\tname: Record<string, string>;\n\ttaxable: boolean;\n\tetaText: string;\n\tfulfillmentCenterId?: string;\n\tamount: number;\n\tfreeAbove?: number;\n\tweightTiers?: ShippingWeightTier[];\n}\n\nexport interface FulfillmentCenter {\n\tid: string;\n\tkey: string;\n\tname: Record<string, string>;\n\tlocation: Location;\n\tisPickupLocation: boolean;\n}\n\nexport interface InventoryLevel {\n\tfulfillmentCenterId: string;\n\tavailable: number;\n\treserved: number;\n}\n\nexport type ZoneScope = \"ALL\" | \"ORDER\" | \"RESERVATION\";\n\nexport interface Zone {\n\tid: string;\n\tname: string;\n\tmarketId: string;\n\tscope: ZoneScope;\n\tcountries: string[];\n\tstates: string[];\n\tpostalCodes: string[];\n\ttaxBps: number;\n\tpaymentMethods: PaymentMethod[];\n\tshippingMethods: ShippingMethod[];\n}\n\nexport interface Market {\n\tid: string;\n\tcurrency: string;\n\ttaxMode: \"EXCLUSIVE\" | \"INCLUSIVE\";\n}\n\nexport interface Language {\n\tid: string;\n}\n\nexport interface BusinessEmails {\n\tbilling: string;\n\tsupport: string;\n}\n\nexport interface BusinessConfig {\n\tlanguages: Language[];\n\tmarkets: Market[];\n\tzones: Zone[];\n\tfulfillmentCenters: FulfillmentCenter[];\n\tbuildHooks: string[];\n\twebhooks: any[];\n\t/** Card payment processor (handles cards + Apple Pay + Google Pay) */\n\tcardProvider?: CardProvider;\n\t/** Alternative payment providers (extensible for future) */\n\talternativeProviders?: AlternativeProvider[];\n\taiProvider?: any;\n\tanalytics?: AnalyticsConfig;\n\temails: BusinessEmails;\n}\n\nexport interface Subscription {\n\tid: string;\n\ttarget: string;\n\tplanId: string;\n\tpendingPlanId: string | null;\n\tpayment: any;\n\tstatus: SubscriptionStatus;\n\tendDate: number;\n\tusage: Record<string, any>;\n\ttoken: string;\n}\n\nexport interface Business {\n\tid: string;\n\tkey: string;\n\tnetworkKey: string | null;\n\ttimezone: string;\n\tconfigs?: BusinessConfig;\n\tsubscriptions?: Subscription[];\n\tstatus: Status;\n}\n\nexport interface EshopStoreState {\n\tbusinessId: string;\n\tselectedShippingMethodId: string | null;\n\tuserToken: string | null;\n\tprocessingCheckout: boolean;\n\tloading: boolean;\n\terror: string | null;\n}\n\nexport interface Block {\n\tid: string;\n\tkey: string;\n\ttype: string;\n\tproperties?: any;\n\tvalue?: any;\n}\n\nexport type BlockType =\n\t| \"TEXT\"\n\t| \"LOCALIZED_TEXT\"\n\t| \"NUMBER\"\n\t| \"BOOLEAN\"\n\t| \"BLOCK\"\n\t| \"RELATIONSHIP_ENTRY\"\n\t| \"RELATIONSHIP_MEDIA\"\n\t| \"MARKDOWN\"\n\t| \"EMAIL\"\n\t| \"PHONE\"\n\t| \"ADDRESS\";\n\nexport type AddressType = \"SHIPPING\" | \"BILLING\";\n\nexport interface EmailBlockProperties {}\n\nexport interface PhoneBlockProperties {}\n\nexport interface AddressBlockProperties {\n\taddressType: AddressType;\n}\n\n/** @deprecated Use Location instead */\nexport type GeoLocationValue = Location;\n\nexport interface EmailBlock extends Block {\n\ttype: \"EMAIL\";\n\tproperties: EmailBlockProperties;\n\tvalue: string | null;\n}\n\nexport interface PhoneBlock extends Block {\n\ttype: \"PHONE\";\n\tproperties: PhoneBlockProperties;\n\tvalue: string | null;\n}\n\nexport interface AddressBlock extends Block {\n\ttype: \"ADDRESS\";\n\tproperties: AddressBlockProperties;\n\tvalue: Location | null;\n}\n\nexport type Access = 'PUBLIC' | 'AUTHENTICATED' | 'PRIVATE';\n\nexport interface MediaResolution {\n\tid: string;\n\tsize: string;\n\turl: string;\n}\n\nexport interface Media {\n\tid: string;\n\tresolutions: { [key: string]: MediaResolution };\n\tmimeType: string;\n\ttitle?: string | null;\n\tdescription?: string | null;\n\talt?: string | null;\n\tentity: string;\n\tmetadata?: string | null;\n\tuploadedAt: string;\n\tslug: Record<string, string>;\n}\n\nexport interface ApiResponse<T> {\n\tsuccess: boolean;\n\tdata?: T;\n\terror?: string;\n\tcursor?: string;\n\ttotal?: number;\n}\n\nexport interface PaginatedResponse<T> {\n\tdata: T[];\n\tmeta?: {\n\t\ttotal: number;\n\t\tpage: number;\n\t\tper_page: number;\n\t};\n}\n\nexport interface ReservationStoreState {\n\tcurrentStep: number;\n\ttotalSteps: number;\n\tsteps: Record<number, { name: string; labelKey: string }>;\n\tweekdays: string[];\n\tmonthYear: string;\n\tdays: any[];\n\tcurrent: Date;\n\tselectedDate: string | null;\n\tslots: any[];\n\tselectedSlot: any | null;\n\tselectedProvider: any | null;\n\tproviders: any[];\n\tloading: boolean;\n\tstartDate: string | null;\n\tendDate: string | null;\n\tguestToken: string | null;\n\tservice: any | null;\n\tbusiness: Business | null;\n\tcurrency: string;\n\treservationBlocks: Block[];\n\tapiUrl: string;\n\tbusinessId: string;\n\ttimezone: string;\n\ttzGroups: any;\n\titems: ReservationCartItem[];\n\tallowedPaymentMethods: string[];\n\tpaymentConfig: {\n\t\tprovider: CardProvider | null;\n\t\tenabled: boolean;\n\t};\n}\n\nexport type Status = 'DRAFT' | 'ACTIVE' | 'ARCHIVED';\n\nexport type OrderStatus = 'CREATED' | 'PENDING' | 'AUTHORIZED' | 'CONFIRMED' | 'SHIPPED' | 'COMPLETED' | 'CANCELLED' | 'FAILED';\n\nexport type ReservationStatus = 'CREATED' | 'PENDING' | 'AUTHORIZED' | 'CONFIRMED' | 'COMPLETED' | 'CANCELLED' | 'FAILED';\n\nexport type SubscriptionStatus = 'PENDING' | 'ACTIVE' | 'CANCELLATION_SCHEDULED' | 'CANCELLED' | 'EXPIRED';\n\nexport interface ReservationItem {\n\tid: string;\n\tserviceId: string;\n\tproviderId: string;\n\tbusinessId: string;\n\treservationId: string;\n\tuserId: string;\n\tfrom: number;\n\tto: number;\n\tblocks: Block[];\n\tprice: Price;\n}\n\nexport interface Reservation {\n\tid: string;\n\tnumber: string;\n\tuserId: string;\n\tblocks: Block[];\n\tbusinessId: string;\n\tstatus: ReservationStatus;\n\tserviceIds: string[];\n\tproviderIds: string[];\n\tpayment: Payment;\n\tbusiness?: Business;\n\tuser?: any;\n\titems: ReservationItem[];\n\tcreatedAt: number;\n\tlastModified: number;\n}\n\nexport interface Node {\n\tid: string;\n\tkey: string;\n\tbusinessId: string;\n\tparentId?: string | null;\n\tblocks: Block[];\n\tstatus: Status;\n\tslug: Record<string, string>;\n\taccess: Access;\n\twriteAccess: Access;\n\temailSubject?: Record<string, string>;\n\tchildren: Node[];\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface ServiceDuration {\n\tduration: number;\n\tisPause?: boolean;\n}\n\nexport interface ServiceProvider {\n\tid: string;\n\tproviderId: string;\n\tworkingTime: {\n\t\tworkingDays: Array<{ day: string; workingHours: Array<{ from: number; to: number }> }>;\n\t\toutcastDates: Array<{ month: number; day: number; workingHours: Array<{ from: number; to: number }> }>;\n\t\tspecificDates: Array<{ date: number; workingHours: Array<{ from: number; to: number }> }>;\n\t};\n\tprovider?: Provider;\n}\n\nexport interface Service {\n\tid: string;\n\tkey: string;\n\tslug: Record<string, string>;\n\taccess: Access;\n\tbusinessId: string;\n\tprices: Price[];\n\tdurations: ServiceDuration[];\n\tblocks: Block[];\n\tnodeIds: string[];\n\tisApprovalRequired: boolean;\n\tproviders: ServiceProvider[];\n\tcreatedAt: number;\n\tupdatedAt: number;\n\tstatus: Status;\n}\n\nexport interface ProviderTimelinePoint {\n\ttimestamp: number;\n\tconcurrent: number;\n}\n\nexport interface Provider {\n\tid: string;\n\tkey: string;\n\tslug: Record<string, string>;\n\taccess: Access;\n\tbusinessId: string;\n\tstatus: Status;\n\tconcurrentLimit: number;\n\tnodeIds: string[];\n\tblocks: Block[];\n\ttimeline: ProviderTimelinePoint[];\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface Workflow {\n\tid: string;\n\tkey: string;\n\tbusinessId: string;\n\tsecret: string;\n\tstatus: Status;\n\tnodes: Record<string, WorkflowNode>;\n\tedges: WorkflowEdge[];\n\t\n\tschedule?: string;\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface WorkflowEdge {\n\tid: string;\n\tsource: string;\n\tsourceOutput: string;\n\ttarget: string;\n}\n\nexport type WorkflowNode =\n\t| WorkflowTriggerNode\n\t| WorkflowHttpNode\n\t| WorkflowIfNode\n\t| WorkflowLoopNode\n\t| WorkflowWaitNode;\n\nexport interface WorkflowTriggerNode {\n\ttype: 'trigger';\n\tevent?: string;\n}\n\nexport interface WorkflowHttpNode {\n\ttype: 'http';\n\tmethod: WorkflowHttpMethod;\n\turl: string;\n\theaders?: Record<string, string>;\n\tbody?: any;\n\ttimeoutMs?: number;\n}\n\nexport interface WorkflowIfNode {\n\ttype: 'if';\n\tcondition: string;\n}\n\nexport interface WorkflowLoopNode {\n\ttype: 'loop';\n\tarray: string;\n}\n\nexport interface WorkflowWaitNode {\n\ttype: 'wait';\n\tduration: string;\n}\n\nexport type WorkflowHttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n\nexport type ExecutionStatus = 'PENDING' | 'RUNNING' | 'COMPLETED' | 'FAILED' | 'WAITING';\n\nexport interface WorkflowExecution {\n\tid: string;\n\tworkflowId: string;\n\tbusinessId: string;\n\tstatus: ExecutionStatus;\n\tinput: Record<string, any>;\n\tnodeOutputs: Record<string, any>;\n\tcurrentNode?: string;\n\terror?: string;\n\tscheduledAt: number;\n\tstartedAt: number;\n\tcompletedAt?: number;\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface Audience {\n\tid: string;\n\tbusinessId: string;\n\tkey: string;\n\taccess: Access;\n\tnodeIds: string[];\n\tprices: SubscriptionPrice[];\n\tstatus: Status;\n}\n\nexport interface AudienceAccessResponse {\n\thasAccess: boolean;\n\tsubscription?: Subscription;\n}\n\nexport interface AudienceSubscribeResponse {\n\tcheckoutUrl?: string;\n\tsubscription?: Subscription;\n}\n\nexport type BusinessEventAction =\n\t\n\t| { action: 'order_created' }\n\t| { action: 'order_status_changed'; data: { from: string; to: string } }\n\t| { action: 'order_payment_received'; data: { amount: number } }\n\t| { action: 'order_payment_failed'; data: { reason?: string } }\n\t| { action: 'order_refunded'; data: { amount: number; reason?: string } }\n\t| { action: 'order_shipped'; data: { tracking_url?: string } }\n\t| { action: 'order_completed' }\n\t| { action: 'order_cancelled'; data: { reason?: string } }\n\t\n\t| { action: 'reservation_created' }\n\t| { action: 'reservation_status_changed'; data: { from: string; to: string } }\n\t| { action: 'reservation_payment_received'; data: { amount: number } }\n\t| { action: 'reservation_payment_failed'; data: { reason?: string } }\n\t| { action: 'reservation_refunded'; data: { amount: number; reason?: string } }\n\t| { action: 'reservation_completed' }\n\t| { action: 'reservation_cancelled'; data: { reason?: string } };\n\nexport interface BusinessEvent {\n\tid: string;\n\tbusinessId: string;\n\tentity: string;\n\tpayload: BusinessEventAction;\n\tactor: string;\n\tcreatedAt: number;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/types/index.ts"],"names":["PaymentMethodType"],"mappings":";;;AA4CO,IAAK,iBAAA,qBAAAA,kBAAAA,KAAL;AACN,EAAAA,mBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,mBAAA,YAAA,CAAA,GAAa,aAAA;AAFF,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA","file":"types.cjs","sourcesContent":["export * from './api';\n\nexport interface PaymentRefund {\n\tid: string;\n\tentity: string;\n\ttotal: number;\n\tproviderRefundId?: string;\n\tstatus: string;\n\tcreatedAt: number;\n}\n\nexport interface Payment {\n\tcurrency: string;\n\tmarket: string;\n\tsubtotal: number;\n\tshipping: number;\n\tdiscount: number;\n\ttotal: number;\n\tpaid: number;\n\ttax?: {\n\t\tamount: number;\n\t\tmodeSnapshot?: string;\n\t\trateBps: number;\n\t\tlines: Array<{ rateBps: number; amount: number; label?: string; scope?: string }>;\n\t};\n\tpromoCode?: {\n\t\tid: string;\n\t\tcode: string;\n\t\ttype: string;\n\t\tvalue: number;\n\t};\n\ttype: PaymentMethodType;\n\tprovider?: {\n\t\tcustomerId: string;\n\t\tpaymentIntentId?: string;\n\t\tsubscriptionId?: string;\n\t\tpriceId?: string;\n\t};\n\trefunds: PaymentRefund[];\n\tzoneId?: string;\n\tpaymentMethodId?: string;\n\tshippingMethodId?: string;\n}\n\nexport enum PaymentMethodType {\n\tCash = \"cash\",\n\tCreditCard = \"credit_card\",\n\t// Free REMOVED - handled with logic: if total == 0, skip payment\n\t// NOTE: Apple Pay and Google Pay are NOT separate PaymentMethodTypes\n\t// They are handled automatically by Stripe's Payment Element\n}\n\nexport interface PromoCodeValidation {\n\tpromoCodeId: string;\n\tcode: string;\n\tdiscounts: any[];\n\tconditions: any[];\n}\n\nexport interface Quote {\n\tmarket: string;\n\tzone: Zone;\n\tsubtotal: number;\n\tshipping: number;\n\tdiscount: number;\n\ttax: number;\n\ttotal: number;\n\tshippingMethod: ShippingMethod | null;\n\tpaymentMethod: PaymentMethod | null;\n\tpromoCode: PromoCodeValidation | null;\n\tpayment: Payment;\n\tchargeAmount: number;\n\tid?: string;\n\texpiresAt?: number;\n}\n\n/** Price for products and services (market-based, no provider fields) */\nexport interface Price {\n\tcurrency: string;\n\tmarket: string;\n\tamount: number;\n\tcompareAt?: number;\n}\n\n/** Interval period for subscription pricing */\nexport type IntervalPeriod = 'month' | 'year';\n\n/** Subscription interval configuration */\nexport interface SubscriptionInterval {\n\tperiod: IntervalPeriod;\n\tcount: number;\n}\n\n/** Price provider configuration (e.g., Stripe) */\nexport interface PriceProvider {\n\ttype: string;\n\tid: string;\n}\n\n/** Price for audiences/subscriptions (provider-based with interval) */\nexport interface SubscriptionPrice {\n\tcurrency: string;\n\tamount: number;\n\tcompareAt?: number;\n\tinterval?: SubscriptionInterval;\n\tproviders: PriceProvider[];\n}\n\n/**\n * Unified Location type used for addresses, shipping, and geo locations.\n * All fields are optional to support various use cases.\n */\nexport interface Location {\n\t// Identity/Contact\n\tname?: string | null;\n\tcompany?: string | null;\n\temail?: string | null;\n\tphone?: string | null;\n\n\t// Address\n\tstreet1?: string | null;\n\tstreet2?: string | null;\n\tcity?: string | null;\n\tstate?: string | null;\n\tpostalCode?: string | null;\n\tcountry?: string | null;\n\n\t// Geo\n\tcoordinates?: { lat: number; lon: number } | null;\n}\n\nexport interface EshopCartItem {\n\tid: string;\n\tproductId: string;\n\tvariantId: string;\n\tproductName: string;\n\tproductSlug: string;\n\tvariantAttributes: Record<string, any>;\n\tprice: Price;\n\tquantity: number;\n\taddedAt: number;\n}\n\nexport interface ReservationCartItem {\n\tid: string;\n\tserviceId: string;\n\tserviceName: string;\n\tdate: string;\n\tfrom: number;\n\tto: number;\n\ttimeText: string;\n\tproviderId?: string;\n\tblocks: any[];\n}\n\n/** Card payment processor - business picks ONE\n * Handles: Credit/Debit Cards, Apple Pay, Google Pay\n * Note: Wallet payments are controlled via Stripe Dashboard and detected automatically\n */\nexport interface CardProvider {\n\ttype: \"stripe\";\n\taccountId: string;\n\tcurrency: string;\n}\n\n\n/** @deprecated Use CardProvider instead */\nexport interface PaymentProviderConfig {\n\ttype: \"stripe\";\n\tpublicKey: string;\n\tsecretKey: string;\n\twebhookSecret: string;\n}\n\nexport interface AnalyticsConfig {\n\ttype: \"google_analytics4\";\n\tmeasurementId: string;\n}\n\nexport interface ShippingWeightTier {\n\tupToGrams: number;\n\tamount: number;\n}\n\nexport interface PaymentMethod {\n\tid: string;\n\tname: Record<string, string>;\n\ttype: PaymentMethodType;\n}\n\nexport interface ShippingMethod {\n\tid: string;\n\tname: Record<string, string>;\n\ttaxable: boolean;\n\tetaText: string;\n\tfulfillmentCenterId?: string;\n\tamount: number;\n\tfreeAbove?: number;\n\tweightTiers?: ShippingWeightTier[];\n}\n\nexport interface FulfillmentCenter {\n\tid: string;\n\tkey: string;\n\tname: Record<string, string>;\n\tlocation: Location;\n\tisPickupLocation: boolean;\n}\n\nexport interface InventoryLevel {\n\tfulfillmentCenterId: string;\n\tavailable: number;\n\treserved: number;\n}\n\nexport type ZoneScope = \"all\" | \"order\" | \"reservation\";\n\nexport interface Zone {\n\tid: string;\n\tname: string;\n\tmarketId: string;\n\tscope: ZoneScope;\n\tcountries: string[];\n\tstates: string[];\n\tpostalCodes: string[];\n\ttaxBps: number;\n\tpaymentMethods: PaymentMethod[];\n\tshippingMethods: ShippingMethod[];\n}\n\nexport interface Market {\n\tid: string;\n\tcurrency: string;\n\ttaxMode: \"exclusive\" | \"inclusive\";\n}\n\nexport interface Language {\n\tid: string;\n}\n\nexport interface BusinessEmails {\n\tbilling: string;\n\tsupport: string;\n}\n\nexport interface BusinessConfig {\n\tlanguages: Language[];\n\tmarkets: Market[];\n\tzones: Zone[];\n\tfulfillmentCenters: FulfillmentCenter[];\n\tbuildHooks: string[];\n\twebhooks: any[];\n\t/** Card payment processor (handles cards + Apple Pay + Google Pay) */\n\tcardProvider?: CardProvider;\n\taiProvider?: any;\n\tanalytics?: AnalyticsConfig;\n\temails: BusinessEmails;\n}\n\nexport interface Subscription {\n\tid: string;\n\ttarget: string;\n\tplanId: string;\n\tpendingPlanId: string | null;\n\tpayment: any;\n\tstatus: SubscriptionStatus;\n\tendDate: number;\n\tusage: Record<string, any>;\n\ttoken: string;\n}\n\nexport interface Business {\n\tid: string;\n\tkey: string;\n\tnetworkKey: string | null;\n\ttimezone: string;\n\tconfigs?: BusinessConfig;\n\tsubscriptions?: Subscription[];\n\tstatus: Status;\n}\n\nexport interface EshopStoreState {\n\tbusinessId: string;\n\tselectedShippingMethodId: string | null;\n\tuserToken: string | null;\n\tprocessingCheckout: boolean;\n\tloading: boolean;\n\terror: string | null;\n}\n\nexport interface Block {\n\tid: string;\n\tkey: string;\n\ttype: string;\n\tproperties?: any;\n\tvalue?: any;\n}\n\nexport type BlockType =\n\t| \"text\"\n\t| \"localized_text\"\n\t| \"number\"\n\t| \"boolean\"\n\t| \"block\"\n\t| \"relationship_entry\"\n\t| \"relationship_media\"\n\t| \"markdown\"\n\t| \"email\"\n\t| \"phone\"\n\t| \"address\";\n\nexport type AddressType = \"shipping\" | \"billing\";\n\nexport interface EmailBlockProperties {}\n\nexport interface PhoneBlockProperties {}\n\nexport interface AddressBlockProperties {\n\taddressType: AddressType;\n}\n\n/** @deprecated Use Location instead */\nexport type GeoLocationValue = Location;\n\nexport interface EmailBlock extends Block {\n\ttype: \"email\";\n\tproperties: EmailBlockProperties;\n\tvalue: string | null;\n}\n\nexport interface PhoneBlock extends Block {\n\ttype: \"phone\";\n\tproperties: PhoneBlockProperties;\n\tvalue: string | null;\n}\n\nexport interface AddressBlock extends Block {\n\ttype: \"address\";\n\tproperties: AddressBlockProperties;\n\tvalue: Location | null;\n}\n\nexport type Access = 'public' | 'authenticated' | 'private';\n\nexport interface MediaResolution {\n\tid: string;\n\tsize: string;\n\turl: string;\n}\n\nexport interface Media {\n\tid: string;\n\tresolutions: { [key: string]: MediaResolution };\n\tmimeType: string;\n\ttitle?: string | null;\n\tdescription?: string | null;\n\talt?: string | null;\n\tentity: string;\n\tmetadata?: string | null;\n\tuploadedAt: string;\n\tslug: Record<string, string>;\n}\n\nexport interface ApiResponse<T> {\n\tsuccess: boolean;\n\tdata?: T;\n\terror?: string;\n\tcursor?: string;\n\ttotal?: number;\n}\n\nexport interface PaginatedResponse<T> {\n\tdata: T[];\n\tmeta?: {\n\t\ttotal: number;\n\t\tpage: number;\n\t\tper_page: number;\n\t};\n}\n\nexport interface ReservationStoreState {\n\tcurrentStep: number;\n\ttotalSteps: number;\n\tsteps: Record<number, { name: string; labelKey: string }>;\n\tweekdays: string[];\n\tmonthYear: string;\n\tdays: any[];\n\tcurrent: Date;\n\tselectedDate: string | null;\n\tslots: any[];\n\tselectedSlot: any | null;\n\tselectedProvider: any | null;\n\tproviders: any[];\n\tloading: boolean;\n\tstartDate: string | null;\n\tendDate: string | null;\n\tguestToken: string | null;\n\tservice: any | null;\n\tbusiness: Business | null;\n\tcurrency: string;\n\treservationBlocks: Block[];\n\tapiUrl: string;\n\tbusinessId: string;\n\ttimezone: string;\n\ttzGroups: any;\n\titems: ReservationCartItem[];\n\tallowedPaymentMethods: string[];\n\tpaymentConfig: {\n\t\tprovider: CardProvider | null;\n\t\tenabled: boolean;\n\t};\n}\n\nexport type Status = 'draft' | 'active' | 'archived';\n\nexport type OrderStatus = 'created' | 'pending' | 'authorized' | 'confirmed' | 'shipped' | 'completed' | 'cancelled' | 'failed';\n\nexport type ReservationStatus = 'created' | 'pending' | 'authorized' | 'confirmed' | 'completed' | 'cancelled' | 'failed';\n\nexport type SubscriptionStatus = 'pending' | 'active' | 'cancellation_scheduled' | 'cancelled' | 'expired';\n\nexport interface ReservationItem {\n\tid: string;\n\tserviceId: string;\n\tproviderId: string;\n\tbusinessId: string;\n\treservationId: string;\n\tuserId: string;\n\tfrom: number;\n\tto: number;\n\tblocks: Block[];\n\tprice: Price;\n}\n\nexport interface Reservation {\n\tid: string;\n\tnumber: string;\n\tuserId: string;\n\tblocks: Block[];\n\tbusinessId: string;\n\tstatus: ReservationStatus;\n\tserviceIds: string[];\n\tproviderIds: string[];\n\tpayment: Payment;\n\tbusiness?: Business;\n\tuser?: any;\n\titems: ReservationItem[];\n\tcreatedAt: number;\n\tlastModified: number;\n}\n\nexport interface Node {\n\tid: string;\n\tkey: string;\n\tbusinessId: string;\n\tparentId?: string | null;\n\tblocks: Block[];\n\tstatus: Status;\n\tslug: Record<string, string>;\n\taccess: Access;\n\twriteAccess: Access;\n\temailSubject?: Record<string, string>;\n\tchildren: Node[];\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface ServiceDuration {\n\tduration: number;\n\tisPause?: boolean;\n}\n\nexport interface ServiceProvider {\n\tid: string;\n\tproviderId: string;\n\tworkingTime: {\n\t\tworkingDays: Array<{ day: string; workingHours: Array<{ from: number; to: number }> }>;\n\t\toutcastDates: Array<{ month: number; day: number; workingHours: Array<{ from: number; to: number }> }>;\n\t\tspecificDates: Array<{ date: number; workingHours: Array<{ from: number; to: number }> }>;\n\t};\n\tprovider?: Provider;\n}\n\nexport interface Service {\n\tid: string;\n\tkey: string;\n\tslug: Record<string, string>;\n\taccess: Access;\n\tbusinessId: string;\n\tprices: Price[];\n\tdurations: ServiceDuration[];\n\tblocks: Block[];\n\tnodeIds: string[];\n\tisApprovalRequired: boolean;\n\tproviders: ServiceProvider[];\n\tcreatedAt: number;\n\tupdatedAt: number;\n\tstatus: Status;\n}\n\nexport interface ProviderTimelinePoint {\n\ttimestamp: number;\n\tconcurrent: number;\n}\n\nexport interface Provider {\n\tid: string;\n\tkey: string;\n\tslug: Record<string, string>;\n\taccess: Access;\n\tbusinessId: string;\n\tstatus: Status;\n\tconcurrentLimit: number;\n\tnodeIds: string[];\n\tblocks: Block[];\n\ttimeline: ProviderTimelinePoint[];\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface Workflow {\n\tid: string;\n\tkey: string;\n\tbusinessId: string;\n\tsecret: string;\n\tstatus: Status;\n\tnodes: Record<string, WorkflowNode>;\n\tedges: WorkflowEdge[];\n\t\n\tschedule?: string;\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface WorkflowEdge {\n\tid: string;\n\tsource: string;\n\tsourceOutput: string;\n\ttarget: string;\n}\n\nexport type WorkflowNode =\n\t| WorkflowTriggerNode\n\t| WorkflowHttpNode\n\t| WorkflowIfNode\n\t| WorkflowLoopNode\n\t| WorkflowWaitNode;\n\nexport interface WorkflowTriggerNode {\n\ttype: 'trigger';\n\tevent?: string;\n}\n\nexport interface WorkflowHttpNode {\n\ttype: 'http';\n\tmethod: WorkflowHttpMethod;\n\turl: string;\n\theaders?: Record<string, string>;\n\tbody?: any;\n\ttimeoutMs?: number;\n}\n\nexport interface WorkflowIfNode {\n\ttype: 'if';\n\tcondition: string;\n}\n\nexport interface WorkflowLoopNode {\n\ttype: 'loop';\n\tarray: string;\n}\n\nexport interface WorkflowWaitNode {\n\ttype: 'wait';\n\tduration: string;\n}\n\nexport type WorkflowHttpMethod = 'get' | 'post' | 'put' | 'patch' | 'delete';\n\nexport type ExecutionStatus = 'pending' | 'running' | 'completed' | 'failed' | 'waiting';\n\nexport interface WorkflowExecution {\n\tid: string;\n\tworkflowId: string;\n\tbusinessId: string;\n\tstatus: ExecutionStatus;\n\tinput: Record<string, any>;\n\tnodeOutputs: Record<string, any>;\n\tcurrentNode?: string;\n\terror?: string;\n\tscheduledAt: number;\n\tstartedAt: number;\n\tcompletedAt?: number;\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface Audience {\n\tid: string;\n\tbusinessId: string;\n\tkey: string;\n\taccess: Access;\n\tnodeIds: string[];\n\tprices: SubscriptionPrice[];\n\tstatus: Status;\n}\n\nexport interface AudienceAccessResponse {\n\thasAccess: boolean;\n\tsubscription?: Subscription;\n}\n\nexport interface AudienceSubscribeResponse {\n\tcheckoutUrl?: string;\n\tsubscription?: Subscription;\n}\n\nexport type BusinessEventAction =\n\t\n\t| { action: 'order_created' }\n\t| { action: 'order_status_changed'; data: { from: string; to: string } }\n\t| { action: 'order_payment_received'; data: { amount: number } }\n\t| { action: 'order_payment_failed'; data: { reason?: string } }\n\t| { action: 'order_refunded'; data: { amount: number; reason?: string } }\n\t| { action: 'order_shipped'; data: { tracking_url?: string } }\n\t| { action: 'order_completed' }\n\t| { action: 'order_cancelled'; data: { reason?: string } }\n\t\n\t| { action: 'reservation_created' }\n\t| { action: 'reservation_status_changed'; data: { from: string; to: string } }\n\t| { action: 'reservation_payment_received'; data: { amount: number } }\n\t| { action: 'reservation_payment_failed'; data: { reason?: string } }\n\t| { action: 'reservation_refunded'; data: { amount: number; reason?: string } }\n\t| { action: 'reservation_completed' }\n\t| { action: 'reservation_cancelled'; data: { reason?: string } };\n\nexport interface BusinessEvent {\n\tid: string;\n\tbusinessId: string;\n\tentity: string;\n\tpayload: BusinessEventAction;\n\tactor: string;\n\tcreatedAt: number;\n}\n"]}
|
package/dist/types.d.cts
CHANGED
|
@@ -44,9 +44,8 @@ interface Payment {
|
|
|
44
44
|
shippingMethodId?: string;
|
|
45
45
|
}
|
|
46
46
|
declare enum PaymentMethodType {
|
|
47
|
-
Cash = "
|
|
48
|
-
CreditCard = "
|
|
49
|
-
PayPal = "PAYPAL"
|
|
47
|
+
Cash = "cash",
|
|
48
|
+
CreditCard = "credit_card"
|
|
50
49
|
}
|
|
51
50
|
interface PromoCodeValidation {
|
|
52
51
|
promoCodeId: string;
|
|
@@ -78,7 +77,7 @@ interface Price {
|
|
|
78
77
|
compareAt?: number;
|
|
79
78
|
}
|
|
80
79
|
/** Interval period for subscription pricing */
|
|
81
|
-
type IntervalPeriod = '
|
|
80
|
+
type IntervalPeriod = 'month' | 'year';
|
|
82
81
|
/** Subscription interval configuration */
|
|
83
82
|
interface SubscriptionInterval {
|
|
84
83
|
period: IntervalPeriod;
|
|
@@ -144,26 +143,19 @@ interface ReservationCartItem {
|
|
|
144
143
|
* Note: Wallet payments are controlled via Stripe Dashboard and detected automatically
|
|
145
144
|
*/
|
|
146
145
|
interface CardProvider {
|
|
147
|
-
type: "
|
|
146
|
+
type: "stripe";
|
|
148
147
|
accountId: string;
|
|
149
148
|
currency: string;
|
|
150
149
|
}
|
|
151
|
-
/** Alternative payment providers - multiple allowed */
|
|
152
|
-
interface AlternativeProvider {
|
|
153
|
-
type: "PAYPAL";
|
|
154
|
-
merchantId: string;
|
|
155
|
-
clientId: string;
|
|
156
|
-
currency: string;
|
|
157
|
-
}
|
|
158
150
|
/** @deprecated Use CardProvider instead */
|
|
159
151
|
interface PaymentProviderConfig {
|
|
160
|
-
type: "
|
|
152
|
+
type: "stripe";
|
|
161
153
|
publicKey: string;
|
|
162
154
|
secretKey: string;
|
|
163
155
|
webhookSecret: string;
|
|
164
156
|
}
|
|
165
157
|
interface AnalyticsConfig {
|
|
166
|
-
type: "
|
|
158
|
+
type: "google_analytics4";
|
|
167
159
|
measurementId: string;
|
|
168
160
|
}
|
|
169
161
|
interface ShippingWeightTier {
|
|
@@ -197,7 +189,7 @@ interface InventoryLevel {
|
|
|
197
189
|
available: number;
|
|
198
190
|
reserved: number;
|
|
199
191
|
}
|
|
200
|
-
type ZoneScope = "
|
|
192
|
+
type ZoneScope = "all" | "order" | "reservation";
|
|
201
193
|
interface Zone {
|
|
202
194
|
id: string;
|
|
203
195
|
name: string;
|
|
@@ -213,7 +205,7 @@ interface Zone {
|
|
|
213
205
|
interface Market {
|
|
214
206
|
id: string;
|
|
215
207
|
currency: string;
|
|
216
|
-
taxMode: "
|
|
208
|
+
taxMode: "exclusive" | "inclusive";
|
|
217
209
|
}
|
|
218
210
|
interface Language {
|
|
219
211
|
id: string;
|
|
@@ -231,8 +223,6 @@ interface BusinessConfig {
|
|
|
231
223
|
webhooks: any[];
|
|
232
224
|
/** Card payment processor (handles cards + Apple Pay + Google Pay) */
|
|
233
225
|
cardProvider?: CardProvider;
|
|
234
|
-
/** Alternative payment providers (extensible for future) */
|
|
235
|
-
alternativeProviders?: AlternativeProvider[];
|
|
236
226
|
aiProvider?: any;
|
|
237
227
|
analytics?: AnalyticsConfig;
|
|
238
228
|
emails: BusinessEmails;
|
|
@@ -272,8 +262,8 @@ interface Block {
|
|
|
272
262
|
properties?: any;
|
|
273
263
|
value?: any;
|
|
274
264
|
}
|
|
275
|
-
type BlockType = "
|
|
276
|
-
type AddressType = "
|
|
265
|
+
type BlockType = "text" | "localized_text" | "number" | "boolean" | "block" | "relationship_entry" | "relationship_media" | "markdown" | "email" | "phone" | "address";
|
|
266
|
+
type AddressType = "shipping" | "billing";
|
|
277
267
|
interface EmailBlockProperties {
|
|
278
268
|
}
|
|
279
269
|
interface PhoneBlockProperties {
|
|
@@ -284,21 +274,21 @@ interface AddressBlockProperties {
|
|
|
284
274
|
/** @deprecated Use Location instead */
|
|
285
275
|
type GeoLocationValue = Location;
|
|
286
276
|
interface EmailBlock extends Block {
|
|
287
|
-
type: "
|
|
277
|
+
type: "email";
|
|
288
278
|
properties: EmailBlockProperties;
|
|
289
279
|
value: string | null;
|
|
290
280
|
}
|
|
291
281
|
interface PhoneBlock extends Block {
|
|
292
|
-
type: "
|
|
282
|
+
type: "phone";
|
|
293
283
|
properties: PhoneBlockProperties;
|
|
294
284
|
value: string | null;
|
|
295
285
|
}
|
|
296
286
|
interface AddressBlock extends Block {
|
|
297
|
-
type: "
|
|
287
|
+
type: "address";
|
|
298
288
|
properties: AddressBlockProperties;
|
|
299
289
|
value: Location | null;
|
|
300
290
|
}
|
|
301
|
-
type Access = '
|
|
291
|
+
type Access = 'public' | 'authenticated' | 'private';
|
|
302
292
|
interface MediaResolution {
|
|
303
293
|
id: string;
|
|
304
294
|
size: string;
|
|
@@ -368,10 +358,10 @@ interface ReservationStoreState {
|
|
|
368
358
|
enabled: boolean;
|
|
369
359
|
};
|
|
370
360
|
}
|
|
371
|
-
type Status = '
|
|
372
|
-
type OrderStatus = '
|
|
373
|
-
type ReservationStatus = '
|
|
374
|
-
type SubscriptionStatus = '
|
|
361
|
+
type Status = 'draft' | 'active' | 'archived';
|
|
362
|
+
type OrderStatus = 'created' | 'pending' | 'authorized' | 'confirmed' | 'shipped' | 'completed' | 'cancelled' | 'failed';
|
|
363
|
+
type ReservationStatus = 'created' | 'pending' | 'authorized' | 'confirmed' | 'completed' | 'cancelled' | 'failed';
|
|
364
|
+
type SubscriptionStatus = 'pending' | 'active' | 'cancellation_scheduled' | 'cancelled' | 'expired';
|
|
375
365
|
interface ReservationItem {
|
|
376
366
|
id: string;
|
|
377
367
|
serviceId: string;
|
|
@@ -525,8 +515,8 @@ interface WorkflowWaitNode {
|
|
|
525
515
|
type: 'wait';
|
|
526
516
|
duration: string;
|
|
527
517
|
}
|
|
528
|
-
type WorkflowHttpMethod = '
|
|
529
|
-
type ExecutionStatus = '
|
|
518
|
+
type WorkflowHttpMethod = 'get' | 'post' | 'put' | 'patch' | 'delete';
|
|
519
|
+
type ExecutionStatus = 'pending' | 'running' | 'completed' | 'failed' | 'waiting';
|
|
530
520
|
interface WorkflowExecution {
|
|
531
521
|
id: string;
|
|
532
522
|
workflowId: string;
|
|
@@ -717,8 +707,8 @@ interface CreateNodeParams {
|
|
|
717
707
|
parentId?: string | null;
|
|
718
708
|
blocks?: any[];
|
|
719
709
|
slug?: Record<string, string>;
|
|
720
|
-
access?: '
|
|
721
|
-
writeAccess?: '
|
|
710
|
+
access?: 'public' | 'authenticated' | 'private';
|
|
711
|
+
writeAccess?: 'public' | 'authenticated' | 'private';
|
|
722
712
|
status?: string;
|
|
723
713
|
emailSubject?: Record<string, string>;
|
|
724
714
|
}
|
|
@@ -729,8 +719,8 @@ interface UpdateNodeParams {
|
|
|
729
719
|
parentId?: string | null;
|
|
730
720
|
blocks?: any[];
|
|
731
721
|
slug?: Record<string, string>;
|
|
732
|
-
access?: '
|
|
733
|
-
writeAccess?: '
|
|
722
|
+
access?: 'public' | 'authenticated' | 'private';
|
|
723
|
+
writeAccess?: 'public' | 'authenticated' | 'private';
|
|
734
724
|
status?: string;
|
|
735
725
|
emailSubject?: Record<string, string>;
|
|
736
726
|
}
|
|
@@ -884,13 +874,13 @@ interface GetAnalyticsHealthParams {
|
|
|
884
874
|
}
|
|
885
875
|
type BusinessRole = 'Admin' | 'Owner' | 'Super';
|
|
886
876
|
interface Discount {
|
|
887
|
-
type: "
|
|
877
|
+
type: "items_percentage" | "items_fixed" | "shipping_percentage";
|
|
888
878
|
marketId: string;
|
|
889
879
|
bps?: number;
|
|
890
880
|
amount?: number;
|
|
891
881
|
}
|
|
892
882
|
interface Condition {
|
|
893
|
-
type: "
|
|
883
|
+
type: "products" | "services" | "min_order_amount" | "date_range" | "max_uses" | "max_uses_per_user";
|
|
894
884
|
value: string[] | number | {
|
|
895
885
|
start?: number;
|
|
896
886
|
end?: number;
|
|
@@ -1354,4 +1344,4 @@ interface DisconnectStripeParams {
|
|
|
1354
1344
|
businessId: string;
|
|
1355
1345
|
}
|
|
1356
1346
|
|
|
1357
|
-
export { type Access, type AccountSubscribeParams, type AddPhoneNumberParams, type AddressBlock, type AddressBlockProperties, type AddressType, type
|
|
1347
|
+
export { type Access, type AccountSubscribeParams, type AddPhoneNumberParams, type AddressBlock, type AddressBlockProperties, type AddressType, type AnalyticsConfig, type ApiResponse, type Audience, type AudienceAccessResponse, type AudienceSubscribeResponse, type AudienceSubscriber, type Block, type BlockType, type BulkScheduleParams, type Business, type BusinessConfig, type BusinessEmails, type BusinessEvent, type BusinessEventAction, type BusinessRole, type CardProvider, type Condition, type ConnectStripeParams, type CreateAudienceParams, type CreateBusinessParams, type CreateNodeParams, type CreateOrderParams, type CreatePortalSessionParams, type CreateProductParams, type CreatePromoCodeParams, type CreateProviderParams, type CreateReservationParams, type CreateServiceParams, type CreateWorkflowParams, type DayAvailability, type DeleteAccountParams, type DeleteAudienceParams, type DeleteBusinessMediaParams, type DeleteBusinessParams, type DeleteNodeParams, type DeleteProductParams, type DeletePromoCodeParams, type DeleteProviderParams, type DeleteServiceParams, type DeleteWorkflowParams, type DisconnectStripeParams, type Discount, type EmailBlock, type EmailBlockProperties, type EshopCartItem, type EshopItem, type EshopStoreState, type ExecutionStatus, type FulfillmentCenter, type GenerateBlocksParams, type GeoLocationValue, type GetAnalyticsHealthParams, type GetAnalyticsParams, type GetAudienceParams, type GetAudienceSubscribersParams, type GetAudiencesParams, type GetAvailabilityParams, type GetBusinessEventsParams, type GetBusinessMediaParams, type GetBusinessMediaParams2, type GetBusinessParams, type GetBusinessParentsParams, type GetBusinessServiceWorkingTimeParams, type GetBusinessesParams, type GetDeliveryStatsParams, type GetMeParams, type GetNodeChildrenParams, type GetNodeParams, type GetNodesParams, type GetOrderParams, type GetOrdersParams, type GetProductParams, type GetProductsParams, type GetPromoCodeParams, type GetPromoCodesParams, type GetProviderParams, type GetProvidersParams, type GetQuoteParams, type GetReservationParams, type GetReservationQuoteParams, type GetServiceParams, type GetServicesParams, type GetSlotsForDateParams, type GetSubscriptionParams, type GetSubscriptionPlansParams, type GetVariableMetadataParams, type GetWorkflowParams, type GetWorkflowsParams, type HandleInvitationParams, type IntervalPeriod, type InventoryLevel, type InviteUserParams, type Language, type Location, type LoginAccountParams, type LogoutParams, type MagicLinkRequestParams, type MagicLinkVerifyParams, type Market, type Media, type MediaResolution, type Node, type OrderCheckoutParams, type OrderStatus, type OutcastDate, type PaginatedResponse, type Payment, type PaymentMethod, PaymentMethodType, type PaymentProviderConfig, type PaymentRefund, type PhoneBlock, type PhoneBlockProperties, type PhoneNumberConfirmParams, type Price, type PriceProvider, type ProcessRefundParams, type PromoCodeValidation, type Provider, type ProviderTimelinePoint, type ProviderWithTimeline, type Quote, type RequestOptions, type Reservation, type ReservationCartItem, type ReservationCheckoutParams, type ReservationItem, type ReservationQuoteItem, type ReservationStatus, type ReservationStoreState, type RevokeAudienceSubscriptionParams, type SearchAccountsParams, type SearchReservationsParams, type Service, type ServiceDuration, type ServiceProvider, type ServiceProviderInput, type SetupAnalyticsParams, type ShippingMethod, type ShippingWeightTier, type Slot, type SpecificDate, type Status, type SubscribeAudienceParams, type SubscribeParams, type Subscription, type SubscriptionInterval, type SubscriptionPrice, type SubscriptionStatus, type SystemTemplateKey, type TestWebhookParams, type TimelinePoint, type TrackEmailOpenParams, type TriggerBuildsParams, type TriggerWorkflowParams, type UpdateAccountProfileParams, type UpdateAudienceParams, type UpdateBusinessEventParams, type UpdateBusinessParams, type UpdateMediaParams, type UpdateNodeParams, type UpdateNotificationsParams, type UpdateOrderParams, type UpdateProductParams, type UpdatePromoCodeParams, type UpdateProviderParams, type UpdateReservationParams, type UpdateServiceParams, type UpdateWorkflowParams, type UploadBusinessMediaParams, type Workflow, type WorkflowEdge, type WorkflowExecution, type WorkflowHttpMethod, type WorkflowHttpNode, type WorkflowIfNode, type WorkflowLoopNode, type WorkflowNode, type WorkflowTriggerNode, type WorkflowWaitNode, type WorkingDay, type WorkingHour, type WorkingTime, type Zone, type ZoneScope };
|
package/dist/types.d.ts
CHANGED
|
@@ -44,9 +44,8 @@ interface Payment {
|
|
|
44
44
|
shippingMethodId?: string;
|
|
45
45
|
}
|
|
46
46
|
declare enum PaymentMethodType {
|
|
47
|
-
Cash = "
|
|
48
|
-
CreditCard = "
|
|
49
|
-
PayPal = "PAYPAL"
|
|
47
|
+
Cash = "cash",
|
|
48
|
+
CreditCard = "credit_card"
|
|
50
49
|
}
|
|
51
50
|
interface PromoCodeValidation {
|
|
52
51
|
promoCodeId: string;
|
|
@@ -78,7 +77,7 @@ interface Price {
|
|
|
78
77
|
compareAt?: number;
|
|
79
78
|
}
|
|
80
79
|
/** Interval period for subscription pricing */
|
|
81
|
-
type IntervalPeriod = '
|
|
80
|
+
type IntervalPeriod = 'month' | 'year';
|
|
82
81
|
/** Subscription interval configuration */
|
|
83
82
|
interface SubscriptionInterval {
|
|
84
83
|
period: IntervalPeriod;
|
|
@@ -144,26 +143,19 @@ interface ReservationCartItem {
|
|
|
144
143
|
* Note: Wallet payments are controlled via Stripe Dashboard and detected automatically
|
|
145
144
|
*/
|
|
146
145
|
interface CardProvider {
|
|
147
|
-
type: "
|
|
146
|
+
type: "stripe";
|
|
148
147
|
accountId: string;
|
|
149
148
|
currency: string;
|
|
150
149
|
}
|
|
151
|
-
/** Alternative payment providers - multiple allowed */
|
|
152
|
-
interface AlternativeProvider {
|
|
153
|
-
type: "PAYPAL";
|
|
154
|
-
merchantId: string;
|
|
155
|
-
clientId: string;
|
|
156
|
-
currency: string;
|
|
157
|
-
}
|
|
158
150
|
/** @deprecated Use CardProvider instead */
|
|
159
151
|
interface PaymentProviderConfig {
|
|
160
|
-
type: "
|
|
152
|
+
type: "stripe";
|
|
161
153
|
publicKey: string;
|
|
162
154
|
secretKey: string;
|
|
163
155
|
webhookSecret: string;
|
|
164
156
|
}
|
|
165
157
|
interface AnalyticsConfig {
|
|
166
|
-
type: "
|
|
158
|
+
type: "google_analytics4";
|
|
167
159
|
measurementId: string;
|
|
168
160
|
}
|
|
169
161
|
interface ShippingWeightTier {
|
|
@@ -197,7 +189,7 @@ interface InventoryLevel {
|
|
|
197
189
|
available: number;
|
|
198
190
|
reserved: number;
|
|
199
191
|
}
|
|
200
|
-
type ZoneScope = "
|
|
192
|
+
type ZoneScope = "all" | "order" | "reservation";
|
|
201
193
|
interface Zone {
|
|
202
194
|
id: string;
|
|
203
195
|
name: string;
|
|
@@ -213,7 +205,7 @@ interface Zone {
|
|
|
213
205
|
interface Market {
|
|
214
206
|
id: string;
|
|
215
207
|
currency: string;
|
|
216
|
-
taxMode: "
|
|
208
|
+
taxMode: "exclusive" | "inclusive";
|
|
217
209
|
}
|
|
218
210
|
interface Language {
|
|
219
211
|
id: string;
|
|
@@ -231,8 +223,6 @@ interface BusinessConfig {
|
|
|
231
223
|
webhooks: any[];
|
|
232
224
|
/** Card payment processor (handles cards + Apple Pay + Google Pay) */
|
|
233
225
|
cardProvider?: CardProvider;
|
|
234
|
-
/** Alternative payment providers (extensible for future) */
|
|
235
|
-
alternativeProviders?: AlternativeProvider[];
|
|
236
226
|
aiProvider?: any;
|
|
237
227
|
analytics?: AnalyticsConfig;
|
|
238
228
|
emails: BusinessEmails;
|
|
@@ -272,8 +262,8 @@ interface Block {
|
|
|
272
262
|
properties?: any;
|
|
273
263
|
value?: any;
|
|
274
264
|
}
|
|
275
|
-
type BlockType = "
|
|
276
|
-
type AddressType = "
|
|
265
|
+
type BlockType = "text" | "localized_text" | "number" | "boolean" | "block" | "relationship_entry" | "relationship_media" | "markdown" | "email" | "phone" | "address";
|
|
266
|
+
type AddressType = "shipping" | "billing";
|
|
277
267
|
interface EmailBlockProperties {
|
|
278
268
|
}
|
|
279
269
|
interface PhoneBlockProperties {
|
|
@@ -284,21 +274,21 @@ interface AddressBlockProperties {
|
|
|
284
274
|
/** @deprecated Use Location instead */
|
|
285
275
|
type GeoLocationValue = Location;
|
|
286
276
|
interface EmailBlock extends Block {
|
|
287
|
-
type: "
|
|
277
|
+
type: "email";
|
|
288
278
|
properties: EmailBlockProperties;
|
|
289
279
|
value: string | null;
|
|
290
280
|
}
|
|
291
281
|
interface PhoneBlock extends Block {
|
|
292
|
-
type: "
|
|
282
|
+
type: "phone";
|
|
293
283
|
properties: PhoneBlockProperties;
|
|
294
284
|
value: string | null;
|
|
295
285
|
}
|
|
296
286
|
interface AddressBlock extends Block {
|
|
297
|
-
type: "
|
|
287
|
+
type: "address";
|
|
298
288
|
properties: AddressBlockProperties;
|
|
299
289
|
value: Location | null;
|
|
300
290
|
}
|
|
301
|
-
type Access = '
|
|
291
|
+
type Access = 'public' | 'authenticated' | 'private';
|
|
302
292
|
interface MediaResolution {
|
|
303
293
|
id: string;
|
|
304
294
|
size: string;
|
|
@@ -368,10 +358,10 @@ interface ReservationStoreState {
|
|
|
368
358
|
enabled: boolean;
|
|
369
359
|
};
|
|
370
360
|
}
|
|
371
|
-
type Status = '
|
|
372
|
-
type OrderStatus = '
|
|
373
|
-
type ReservationStatus = '
|
|
374
|
-
type SubscriptionStatus = '
|
|
361
|
+
type Status = 'draft' | 'active' | 'archived';
|
|
362
|
+
type OrderStatus = 'created' | 'pending' | 'authorized' | 'confirmed' | 'shipped' | 'completed' | 'cancelled' | 'failed';
|
|
363
|
+
type ReservationStatus = 'created' | 'pending' | 'authorized' | 'confirmed' | 'completed' | 'cancelled' | 'failed';
|
|
364
|
+
type SubscriptionStatus = 'pending' | 'active' | 'cancellation_scheduled' | 'cancelled' | 'expired';
|
|
375
365
|
interface ReservationItem {
|
|
376
366
|
id: string;
|
|
377
367
|
serviceId: string;
|
|
@@ -525,8 +515,8 @@ interface WorkflowWaitNode {
|
|
|
525
515
|
type: 'wait';
|
|
526
516
|
duration: string;
|
|
527
517
|
}
|
|
528
|
-
type WorkflowHttpMethod = '
|
|
529
|
-
type ExecutionStatus = '
|
|
518
|
+
type WorkflowHttpMethod = 'get' | 'post' | 'put' | 'patch' | 'delete';
|
|
519
|
+
type ExecutionStatus = 'pending' | 'running' | 'completed' | 'failed' | 'waiting';
|
|
530
520
|
interface WorkflowExecution {
|
|
531
521
|
id: string;
|
|
532
522
|
workflowId: string;
|
|
@@ -717,8 +707,8 @@ interface CreateNodeParams {
|
|
|
717
707
|
parentId?: string | null;
|
|
718
708
|
blocks?: any[];
|
|
719
709
|
slug?: Record<string, string>;
|
|
720
|
-
access?: '
|
|
721
|
-
writeAccess?: '
|
|
710
|
+
access?: 'public' | 'authenticated' | 'private';
|
|
711
|
+
writeAccess?: 'public' | 'authenticated' | 'private';
|
|
722
712
|
status?: string;
|
|
723
713
|
emailSubject?: Record<string, string>;
|
|
724
714
|
}
|
|
@@ -729,8 +719,8 @@ interface UpdateNodeParams {
|
|
|
729
719
|
parentId?: string | null;
|
|
730
720
|
blocks?: any[];
|
|
731
721
|
slug?: Record<string, string>;
|
|
732
|
-
access?: '
|
|
733
|
-
writeAccess?: '
|
|
722
|
+
access?: 'public' | 'authenticated' | 'private';
|
|
723
|
+
writeAccess?: 'public' | 'authenticated' | 'private';
|
|
734
724
|
status?: string;
|
|
735
725
|
emailSubject?: Record<string, string>;
|
|
736
726
|
}
|
|
@@ -884,13 +874,13 @@ interface GetAnalyticsHealthParams {
|
|
|
884
874
|
}
|
|
885
875
|
type BusinessRole = 'Admin' | 'Owner' | 'Super';
|
|
886
876
|
interface Discount {
|
|
887
|
-
type: "
|
|
877
|
+
type: "items_percentage" | "items_fixed" | "shipping_percentage";
|
|
888
878
|
marketId: string;
|
|
889
879
|
bps?: number;
|
|
890
880
|
amount?: number;
|
|
891
881
|
}
|
|
892
882
|
interface Condition {
|
|
893
|
-
type: "
|
|
883
|
+
type: "products" | "services" | "min_order_amount" | "date_range" | "max_uses" | "max_uses_per_user";
|
|
894
884
|
value: string[] | number | {
|
|
895
885
|
start?: number;
|
|
896
886
|
end?: number;
|
|
@@ -1354,4 +1344,4 @@ interface DisconnectStripeParams {
|
|
|
1354
1344
|
businessId: string;
|
|
1355
1345
|
}
|
|
1356
1346
|
|
|
1357
|
-
export { type Access, type AccountSubscribeParams, type AddPhoneNumberParams, type AddressBlock, type AddressBlockProperties, type AddressType, type
|
|
1347
|
+
export { type Access, type AccountSubscribeParams, type AddPhoneNumberParams, type AddressBlock, type AddressBlockProperties, type AddressType, type AnalyticsConfig, type ApiResponse, type Audience, type AudienceAccessResponse, type AudienceSubscribeResponse, type AudienceSubscriber, type Block, type BlockType, type BulkScheduleParams, type Business, type BusinessConfig, type BusinessEmails, type BusinessEvent, type BusinessEventAction, type BusinessRole, type CardProvider, type Condition, type ConnectStripeParams, type CreateAudienceParams, type CreateBusinessParams, type CreateNodeParams, type CreateOrderParams, type CreatePortalSessionParams, type CreateProductParams, type CreatePromoCodeParams, type CreateProviderParams, type CreateReservationParams, type CreateServiceParams, type CreateWorkflowParams, type DayAvailability, type DeleteAccountParams, type DeleteAudienceParams, type DeleteBusinessMediaParams, type DeleteBusinessParams, type DeleteNodeParams, type DeleteProductParams, type DeletePromoCodeParams, type DeleteProviderParams, type DeleteServiceParams, type DeleteWorkflowParams, type DisconnectStripeParams, type Discount, type EmailBlock, type EmailBlockProperties, type EshopCartItem, type EshopItem, type EshopStoreState, type ExecutionStatus, type FulfillmentCenter, type GenerateBlocksParams, type GeoLocationValue, type GetAnalyticsHealthParams, type GetAnalyticsParams, type GetAudienceParams, type GetAudienceSubscribersParams, type GetAudiencesParams, type GetAvailabilityParams, type GetBusinessEventsParams, type GetBusinessMediaParams, type GetBusinessMediaParams2, type GetBusinessParams, type GetBusinessParentsParams, type GetBusinessServiceWorkingTimeParams, type GetBusinessesParams, type GetDeliveryStatsParams, type GetMeParams, type GetNodeChildrenParams, type GetNodeParams, type GetNodesParams, type GetOrderParams, type GetOrdersParams, type GetProductParams, type GetProductsParams, type GetPromoCodeParams, type GetPromoCodesParams, type GetProviderParams, type GetProvidersParams, type GetQuoteParams, type GetReservationParams, type GetReservationQuoteParams, type GetServiceParams, type GetServicesParams, type GetSlotsForDateParams, type GetSubscriptionParams, type GetSubscriptionPlansParams, type GetVariableMetadataParams, type GetWorkflowParams, type GetWorkflowsParams, type HandleInvitationParams, type IntervalPeriod, type InventoryLevel, type InviteUserParams, type Language, type Location, type LoginAccountParams, type LogoutParams, type MagicLinkRequestParams, type MagicLinkVerifyParams, type Market, type Media, type MediaResolution, type Node, type OrderCheckoutParams, type OrderStatus, type OutcastDate, type PaginatedResponse, type Payment, type PaymentMethod, PaymentMethodType, type PaymentProviderConfig, type PaymentRefund, type PhoneBlock, type PhoneBlockProperties, type PhoneNumberConfirmParams, type Price, type PriceProvider, type ProcessRefundParams, type PromoCodeValidation, type Provider, type ProviderTimelinePoint, type ProviderWithTimeline, type Quote, type RequestOptions, type Reservation, type ReservationCartItem, type ReservationCheckoutParams, type ReservationItem, type ReservationQuoteItem, type ReservationStatus, type ReservationStoreState, type RevokeAudienceSubscriptionParams, type SearchAccountsParams, type SearchReservationsParams, type Service, type ServiceDuration, type ServiceProvider, type ServiceProviderInput, type SetupAnalyticsParams, type ShippingMethod, type ShippingWeightTier, type Slot, type SpecificDate, type Status, type SubscribeAudienceParams, type SubscribeParams, type Subscription, type SubscriptionInterval, type SubscriptionPrice, type SubscriptionStatus, type SystemTemplateKey, type TestWebhookParams, type TimelinePoint, type TrackEmailOpenParams, type TriggerBuildsParams, type TriggerWorkflowParams, type UpdateAccountProfileParams, type UpdateAudienceParams, type UpdateBusinessEventParams, type UpdateBusinessParams, type UpdateMediaParams, type UpdateNodeParams, type UpdateNotificationsParams, type UpdateOrderParams, type UpdateProductParams, type UpdatePromoCodeParams, type UpdateProviderParams, type UpdateReservationParams, type UpdateServiceParams, type UpdateWorkflowParams, type UploadBusinessMediaParams, type Workflow, type WorkflowEdge, type WorkflowExecution, type WorkflowHttpMethod, type WorkflowHttpNode, type WorkflowIfNode, type WorkflowLoopNode, type WorkflowNode, type WorkflowTriggerNode, type WorkflowWaitNode, type WorkingDay, type WorkingHour, type WorkingTime, type Zone, type ZoneScope };
|
package/dist/types.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
// src/types/index.ts
|
|
2
2
|
var PaymentMethodType = /* @__PURE__ */ ((PaymentMethodType2) => {
|
|
3
|
-
PaymentMethodType2["Cash"] = "
|
|
4
|
-
PaymentMethodType2["CreditCard"] = "
|
|
5
|
-
PaymentMethodType2["PayPal"] = "PAYPAL";
|
|
3
|
+
PaymentMethodType2["Cash"] = "cash";
|
|
4
|
+
PaymentMethodType2["CreditCard"] = "credit_card";
|
|
6
5
|
return PaymentMethodType2;
|
|
7
6
|
})(PaymentMethodType || {});
|
|
8
7
|
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/index.ts"],"names":["PaymentMethodType"],"mappings":";AA4CO,IAAK,iBAAA,qBAAAA,kBAAAA,KAAL;AACN,EAAAA,mBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,mBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,mBAAA,QAAA,CAAA,GAAS,QAAA;AAHE,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA","file":"types.js","sourcesContent":["export * from './api';\n\nexport interface PaymentRefund {\n\tid: string;\n\tentity: string;\n\ttotal: number;\n\tproviderRefundId?: string;\n\tstatus: string;\n\tcreatedAt: number;\n}\n\nexport interface Payment {\n\tcurrency: string;\n\tmarket: string;\n\tsubtotal: number;\n\tshipping: number;\n\tdiscount: number;\n\ttotal: number;\n\tpaid: number;\n\ttax?: {\n\t\tamount: number;\n\t\tmodeSnapshot?: string;\n\t\trateBps: number;\n\t\tlines: Array<{ rateBps: number; amount: number; label?: string; scope?: string }>;\n\t};\n\tpromoCode?: {\n\t\tid: string;\n\t\tcode: string;\n\t\ttype: string;\n\t\tvalue: number;\n\t};\n\ttype: PaymentMethodType;\n\tprovider?: {\n\t\tcustomerId: string;\n\t\tpaymentIntentId?: string;\n\t\tsubscriptionId?: string;\n\t\tpriceId?: string;\n\t};\n\trefunds: PaymentRefund[];\n\tzoneId?: string;\n\tpaymentMethodId?: string;\n\tshippingMethodId?: string;\n}\n\nexport enum PaymentMethodType {\n\tCash = \"CASH\",\n\tCreditCard = \"CREDIT_CARD\",\n\tPayPal = \"PAYPAL\",\n\t// Free REMOVED - handled with logic: if total == 0, skip payment\n\t// NOTE: Apple Pay and Google Pay are NOT separate PaymentMethodTypes\n\t// They are handled automatically by Stripe's Payment Element\n}\n\nexport interface PromoCodeValidation {\n\tpromoCodeId: string;\n\tcode: string;\n\tdiscounts: any[];\n\tconditions: any[];\n}\n\nexport interface Quote {\n\tmarket: string;\n\tzone: Zone;\n\tsubtotal: number;\n\tshipping: number;\n\tdiscount: number;\n\ttax: number;\n\ttotal: number;\n\tshippingMethod: ShippingMethod | null;\n\tpaymentMethod: PaymentMethod | null;\n\tpromoCode: PromoCodeValidation | null;\n\tpayment: Payment;\n\tchargeAmount: number;\n\tid?: string;\n\texpiresAt?: number;\n}\n\n/** Price for products and services (market-based, no provider fields) */\nexport interface Price {\n\tcurrency: string;\n\tmarket: string;\n\tamount: number;\n\tcompareAt?: number;\n}\n\n/** Interval period for subscription pricing */\nexport type IntervalPeriod = 'MONTH' | 'YEAR';\n\n/** Subscription interval configuration */\nexport interface SubscriptionInterval {\n\tperiod: IntervalPeriod;\n\tcount: number;\n}\n\n/** Price provider configuration (e.g., Stripe) */\nexport interface PriceProvider {\n\ttype: string;\n\tid: string;\n}\n\n/** Price for audiences/subscriptions (provider-based with interval) */\nexport interface SubscriptionPrice {\n\tcurrency: string;\n\tamount: number;\n\tcompareAt?: number;\n\tinterval?: SubscriptionInterval;\n\tproviders: PriceProvider[];\n}\n\n/**\n * Unified Location type used for addresses, shipping, and geo locations.\n * All fields are optional to support various use cases.\n */\nexport interface Location {\n\t// Identity/Contact\n\tname?: string | null;\n\tcompany?: string | null;\n\temail?: string | null;\n\tphone?: string | null;\n\n\t// Address\n\tstreet1?: string | null;\n\tstreet2?: string | null;\n\tcity?: string | null;\n\tstate?: string | null;\n\tpostalCode?: string | null;\n\tcountry?: string | null;\n\n\t// Geo\n\tcoordinates?: { lat: number; lon: number } | null;\n}\n\nexport interface EshopCartItem {\n\tid: string;\n\tproductId: string;\n\tvariantId: string;\n\tproductName: string;\n\tproductSlug: string;\n\tvariantAttributes: Record<string, any>;\n\tprice: Price;\n\tquantity: number;\n\taddedAt: number;\n}\n\nexport interface ReservationCartItem {\n\tid: string;\n\tserviceId: string;\n\tserviceName: string;\n\tdate: string;\n\tfrom: number;\n\tto: number;\n\ttimeText: string;\n\tproviderId?: string;\n\tblocks: any[];\n}\n\n/** Card payment processor - business picks ONE\n * Handles: Credit/Debit Cards, Apple Pay, Google Pay\n * Note: Wallet payments are controlled via Stripe Dashboard and detected automatically\n */\nexport interface CardProvider {\n\ttype: \"STRIPE\";\n\taccountId: string;\n\tcurrency: string;\n}\n\n/** Alternative payment providers - multiple allowed */\nexport interface AlternativeProvider {\n\ttype: \"PAYPAL\";\n\tmerchantId: string;\n\tclientId: string;\n\tcurrency: string;\n}\n\n/** @deprecated Use CardProvider instead */\nexport interface PaymentProviderConfig {\n\ttype: \"STRIPE\";\n\tpublicKey: string;\n\tsecretKey: string;\n\twebhookSecret: string;\n}\n\nexport interface AnalyticsConfig {\n\ttype: \"GA4\";\n\tmeasurementId: string;\n}\n\nexport interface ShippingWeightTier {\n\tupToGrams: number;\n\tamount: number;\n}\n\nexport interface PaymentMethod {\n\tid: string;\n\tname: Record<string, string>;\n\ttype: PaymentMethodType;\n}\n\nexport interface ShippingMethod {\n\tid: string;\n\tname: Record<string, string>;\n\ttaxable: boolean;\n\tetaText: string;\n\tfulfillmentCenterId?: string;\n\tamount: number;\n\tfreeAbove?: number;\n\tweightTiers?: ShippingWeightTier[];\n}\n\nexport interface FulfillmentCenter {\n\tid: string;\n\tkey: string;\n\tname: Record<string, string>;\n\tlocation: Location;\n\tisPickupLocation: boolean;\n}\n\nexport interface InventoryLevel {\n\tfulfillmentCenterId: string;\n\tavailable: number;\n\treserved: number;\n}\n\nexport type ZoneScope = \"ALL\" | \"ORDER\" | \"RESERVATION\";\n\nexport interface Zone {\n\tid: string;\n\tname: string;\n\tmarketId: string;\n\tscope: ZoneScope;\n\tcountries: string[];\n\tstates: string[];\n\tpostalCodes: string[];\n\ttaxBps: number;\n\tpaymentMethods: PaymentMethod[];\n\tshippingMethods: ShippingMethod[];\n}\n\nexport interface Market {\n\tid: string;\n\tcurrency: string;\n\ttaxMode: \"EXCLUSIVE\" | \"INCLUSIVE\";\n}\n\nexport interface Language {\n\tid: string;\n}\n\nexport interface BusinessEmails {\n\tbilling: string;\n\tsupport: string;\n}\n\nexport interface BusinessConfig {\n\tlanguages: Language[];\n\tmarkets: Market[];\n\tzones: Zone[];\n\tfulfillmentCenters: FulfillmentCenter[];\n\tbuildHooks: string[];\n\twebhooks: any[];\n\t/** Card payment processor (handles cards + Apple Pay + Google Pay) */\n\tcardProvider?: CardProvider;\n\t/** Alternative payment providers (extensible for future) */\n\talternativeProviders?: AlternativeProvider[];\n\taiProvider?: any;\n\tanalytics?: AnalyticsConfig;\n\temails: BusinessEmails;\n}\n\nexport interface Subscription {\n\tid: string;\n\ttarget: string;\n\tplanId: string;\n\tpendingPlanId: string | null;\n\tpayment: any;\n\tstatus: SubscriptionStatus;\n\tendDate: number;\n\tusage: Record<string, any>;\n\ttoken: string;\n}\n\nexport interface Business {\n\tid: string;\n\tkey: string;\n\tnetworkKey: string | null;\n\ttimezone: string;\n\tconfigs?: BusinessConfig;\n\tsubscriptions?: Subscription[];\n\tstatus: Status;\n}\n\nexport interface EshopStoreState {\n\tbusinessId: string;\n\tselectedShippingMethodId: string | null;\n\tuserToken: string | null;\n\tprocessingCheckout: boolean;\n\tloading: boolean;\n\terror: string | null;\n}\n\nexport interface Block {\n\tid: string;\n\tkey: string;\n\ttype: string;\n\tproperties?: any;\n\tvalue?: any;\n}\n\nexport type BlockType =\n\t| \"TEXT\"\n\t| \"LOCALIZED_TEXT\"\n\t| \"NUMBER\"\n\t| \"BOOLEAN\"\n\t| \"BLOCK\"\n\t| \"RELATIONSHIP_ENTRY\"\n\t| \"RELATIONSHIP_MEDIA\"\n\t| \"MARKDOWN\"\n\t| \"EMAIL\"\n\t| \"PHONE\"\n\t| \"ADDRESS\";\n\nexport type AddressType = \"SHIPPING\" | \"BILLING\";\n\nexport interface EmailBlockProperties {}\n\nexport interface PhoneBlockProperties {}\n\nexport interface AddressBlockProperties {\n\taddressType: AddressType;\n}\n\n/** @deprecated Use Location instead */\nexport type GeoLocationValue = Location;\n\nexport interface EmailBlock extends Block {\n\ttype: \"EMAIL\";\n\tproperties: EmailBlockProperties;\n\tvalue: string | null;\n}\n\nexport interface PhoneBlock extends Block {\n\ttype: \"PHONE\";\n\tproperties: PhoneBlockProperties;\n\tvalue: string | null;\n}\n\nexport interface AddressBlock extends Block {\n\ttype: \"ADDRESS\";\n\tproperties: AddressBlockProperties;\n\tvalue: Location | null;\n}\n\nexport type Access = 'PUBLIC' | 'AUTHENTICATED' | 'PRIVATE';\n\nexport interface MediaResolution {\n\tid: string;\n\tsize: string;\n\turl: string;\n}\n\nexport interface Media {\n\tid: string;\n\tresolutions: { [key: string]: MediaResolution };\n\tmimeType: string;\n\ttitle?: string | null;\n\tdescription?: string | null;\n\talt?: string | null;\n\tentity: string;\n\tmetadata?: string | null;\n\tuploadedAt: string;\n\tslug: Record<string, string>;\n}\n\nexport interface ApiResponse<T> {\n\tsuccess: boolean;\n\tdata?: T;\n\terror?: string;\n\tcursor?: string;\n\ttotal?: number;\n}\n\nexport interface PaginatedResponse<T> {\n\tdata: T[];\n\tmeta?: {\n\t\ttotal: number;\n\t\tpage: number;\n\t\tper_page: number;\n\t};\n}\n\nexport interface ReservationStoreState {\n\tcurrentStep: number;\n\ttotalSteps: number;\n\tsteps: Record<number, { name: string; labelKey: string }>;\n\tweekdays: string[];\n\tmonthYear: string;\n\tdays: any[];\n\tcurrent: Date;\n\tselectedDate: string | null;\n\tslots: any[];\n\tselectedSlot: any | null;\n\tselectedProvider: any | null;\n\tproviders: any[];\n\tloading: boolean;\n\tstartDate: string | null;\n\tendDate: string | null;\n\tguestToken: string | null;\n\tservice: any | null;\n\tbusiness: Business | null;\n\tcurrency: string;\n\treservationBlocks: Block[];\n\tapiUrl: string;\n\tbusinessId: string;\n\ttimezone: string;\n\ttzGroups: any;\n\titems: ReservationCartItem[];\n\tallowedPaymentMethods: string[];\n\tpaymentConfig: {\n\t\tprovider: CardProvider | null;\n\t\tenabled: boolean;\n\t};\n}\n\nexport type Status = 'DRAFT' | 'ACTIVE' | 'ARCHIVED';\n\nexport type OrderStatus = 'CREATED' | 'PENDING' | 'AUTHORIZED' | 'CONFIRMED' | 'SHIPPED' | 'COMPLETED' | 'CANCELLED' | 'FAILED';\n\nexport type ReservationStatus = 'CREATED' | 'PENDING' | 'AUTHORIZED' | 'CONFIRMED' | 'COMPLETED' | 'CANCELLED' | 'FAILED';\n\nexport type SubscriptionStatus = 'PENDING' | 'ACTIVE' | 'CANCELLATION_SCHEDULED' | 'CANCELLED' | 'EXPIRED';\n\nexport interface ReservationItem {\n\tid: string;\n\tserviceId: string;\n\tproviderId: string;\n\tbusinessId: string;\n\treservationId: string;\n\tuserId: string;\n\tfrom: number;\n\tto: number;\n\tblocks: Block[];\n\tprice: Price;\n}\n\nexport interface Reservation {\n\tid: string;\n\tnumber: string;\n\tuserId: string;\n\tblocks: Block[];\n\tbusinessId: string;\n\tstatus: ReservationStatus;\n\tserviceIds: string[];\n\tproviderIds: string[];\n\tpayment: Payment;\n\tbusiness?: Business;\n\tuser?: any;\n\titems: ReservationItem[];\n\tcreatedAt: number;\n\tlastModified: number;\n}\n\nexport interface Node {\n\tid: string;\n\tkey: string;\n\tbusinessId: string;\n\tparentId?: string | null;\n\tblocks: Block[];\n\tstatus: Status;\n\tslug: Record<string, string>;\n\taccess: Access;\n\twriteAccess: Access;\n\temailSubject?: Record<string, string>;\n\tchildren: Node[];\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface ServiceDuration {\n\tduration: number;\n\tisPause?: boolean;\n}\n\nexport interface ServiceProvider {\n\tid: string;\n\tproviderId: string;\n\tworkingTime: {\n\t\tworkingDays: Array<{ day: string; workingHours: Array<{ from: number; to: number }> }>;\n\t\toutcastDates: Array<{ month: number; day: number; workingHours: Array<{ from: number; to: number }> }>;\n\t\tspecificDates: Array<{ date: number; workingHours: Array<{ from: number; to: number }> }>;\n\t};\n\tprovider?: Provider;\n}\n\nexport interface Service {\n\tid: string;\n\tkey: string;\n\tslug: Record<string, string>;\n\taccess: Access;\n\tbusinessId: string;\n\tprices: Price[];\n\tdurations: ServiceDuration[];\n\tblocks: Block[];\n\tnodeIds: string[];\n\tisApprovalRequired: boolean;\n\tproviders: ServiceProvider[];\n\tcreatedAt: number;\n\tupdatedAt: number;\n\tstatus: Status;\n}\n\nexport interface ProviderTimelinePoint {\n\ttimestamp: number;\n\tconcurrent: number;\n}\n\nexport interface Provider {\n\tid: string;\n\tkey: string;\n\tslug: Record<string, string>;\n\taccess: Access;\n\tbusinessId: string;\n\tstatus: Status;\n\tconcurrentLimit: number;\n\tnodeIds: string[];\n\tblocks: Block[];\n\ttimeline: ProviderTimelinePoint[];\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface Workflow {\n\tid: string;\n\tkey: string;\n\tbusinessId: string;\n\tsecret: string;\n\tstatus: Status;\n\tnodes: Record<string, WorkflowNode>;\n\tedges: WorkflowEdge[];\n\t\n\tschedule?: string;\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface WorkflowEdge {\n\tid: string;\n\tsource: string;\n\tsourceOutput: string;\n\ttarget: string;\n}\n\nexport type WorkflowNode =\n\t| WorkflowTriggerNode\n\t| WorkflowHttpNode\n\t| WorkflowIfNode\n\t| WorkflowLoopNode\n\t| WorkflowWaitNode;\n\nexport interface WorkflowTriggerNode {\n\ttype: 'trigger';\n\tevent?: string;\n}\n\nexport interface WorkflowHttpNode {\n\ttype: 'http';\n\tmethod: WorkflowHttpMethod;\n\turl: string;\n\theaders?: Record<string, string>;\n\tbody?: any;\n\ttimeoutMs?: number;\n}\n\nexport interface WorkflowIfNode {\n\ttype: 'if';\n\tcondition: string;\n}\n\nexport interface WorkflowLoopNode {\n\ttype: 'loop';\n\tarray: string;\n}\n\nexport interface WorkflowWaitNode {\n\ttype: 'wait';\n\tduration: string;\n}\n\nexport type WorkflowHttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n\nexport type ExecutionStatus = 'PENDING' | 'RUNNING' | 'COMPLETED' | 'FAILED' | 'WAITING';\n\nexport interface WorkflowExecution {\n\tid: string;\n\tworkflowId: string;\n\tbusinessId: string;\n\tstatus: ExecutionStatus;\n\tinput: Record<string, any>;\n\tnodeOutputs: Record<string, any>;\n\tcurrentNode?: string;\n\terror?: string;\n\tscheduledAt: number;\n\tstartedAt: number;\n\tcompletedAt?: number;\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface Audience {\n\tid: string;\n\tbusinessId: string;\n\tkey: string;\n\taccess: Access;\n\tnodeIds: string[];\n\tprices: SubscriptionPrice[];\n\tstatus: Status;\n}\n\nexport interface AudienceAccessResponse {\n\thasAccess: boolean;\n\tsubscription?: Subscription;\n}\n\nexport interface AudienceSubscribeResponse {\n\tcheckoutUrl?: string;\n\tsubscription?: Subscription;\n}\n\nexport type BusinessEventAction =\n\t\n\t| { action: 'order_created' }\n\t| { action: 'order_status_changed'; data: { from: string; to: string } }\n\t| { action: 'order_payment_received'; data: { amount: number } }\n\t| { action: 'order_payment_failed'; data: { reason?: string } }\n\t| { action: 'order_refunded'; data: { amount: number; reason?: string } }\n\t| { action: 'order_shipped'; data: { tracking_url?: string } }\n\t| { action: 'order_completed' }\n\t| { action: 'order_cancelled'; data: { reason?: string } }\n\t\n\t| { action: 'reservation_created' }\n\t| { action: 'reservation_status_changed'; data: { from: string; to: string } }\n\t| { action: 'reservation_payment_received'; data: { amount: number } }\n\t| { action: 'reservation_payment_failed'; data: { reason?: string } }\n\t| { action: 'reservation_refunded'; data: { amount: number; reason?: string } }\n\t| { action: 'reservation_completed' }\n\t| { action: 'reservation_cancelled'; data: { reason?: string } };\n\nexport interface BusinessEvent {\n\tid: string;\n\tbusinessId: string;\n\tentity: string;\n\tpayload: BusinessEventAction;\n\tactor: string;\n\tcreatedAt: number;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/types/index.ts"],"names":["PaymentMethodType"],"mappings":";AA4CO,IAAK,iBAAA,qBAAAA,kBAAAA,KAAL;AACN,EAAAA,mBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,mBAAA,YAAA,CAAA,GAAa,aAAA;AAFF,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA","file":"types.js","sourcesContent":["export * from './api';\n\nexport interface PaymentRefund {\n\tid: string;\n\tentity: string;\n\ttotal: number;\n\tproviderRefundId?: string;\n\tstatus: string;\n\tcreatedAt: number;\n}\n\nexport interface Payment {\n\tcurrency: string;\n\tmarket: string;\n\tsubtotal: number;\n\tshipping: number;\n\tdiscount: number;\n\ttotal: number;\n\tpaid: number;\n\ttax?: {\n\t\tamount: number;\n\t\tmodeSnapshot?: string;\n\t\trateBps: number;\n\t\tlines: Array<{ rateBps: number; amount: number; label?: string; scope?: string }>;\n\t};\n\tpromoCode?: {\n\t\tid: string;\n\t\tcode: string;\n\t\ttype: string;\n\t\tvalue: number;\n\t};\n\ttype: PaymentMethodType;\n\tprovider?: {\n\t\tcustomerId: string;\n\t\tpaymentIntentId?: string;\n\t\tsubscriptionId?: string;\n\t\tpriceId?: string;\n\t};\n\trefunds: PaymentRefund[];\n\tzoneId?: string;\n\tpaymentMethodId?: string;\n\tshippingMethodId?: string;\n}\n\nexport enum PaymentMethodType {\n\tCash = \"cash\",\n\tCreditCard = \"credit_card\",\n\t// Free REMOVED - handled with logic: if total == 0, skip payment\n\t// NOTE: Apple Pay and Google Pay are NOT separate PaymentMethodTypes\n\t// They are handled automatically by Stripe's Payment Element\n}\n\nexport interface PromoCodeValidation {\n\tpromoCodeId: string;\n\tcode: string;\n\tdiscounts: any[];\n\tconditions: any[];\n}\n\nexport interface Quote {\n\tmarket: string;\n\tzone: Zone;\n\tsubtotal: number;\n\tshipping: number;\n\tdiscount: number;\n\ttax: number;\n\ttotal: number;\n\tshippingMethod: ShippingMethod | null;\n\tpaymentMethod: PaymentMethod | null;\n\tpromoCode: PromoCodeValidation | null;\n\tpayment: Payment;\n\tchargeAmount: number;\n\tid?: string;\n\texpiresAt?: number;\n}\n\n/** Price for products and services (market-based, no provider fields) */\nexport interface Price {\n\tcurrency: string;\n\tmarket: string;\n\tamount: number;\n\tcompareAt?: number;\n}\n\n/** Interval period for subscription pricing */\nexport type IntervalPeriod = 'month' | 'year';\n\n/** Subscription interval configuration */\nexport interface SubscriptionInterval {\n\tperiod: IntervalPeriod;\n\tcount: number;\n}\n\n/** Price provider configuration (e.g., Stripe) */\nexport interface PriceProvider {\n\ttype: string;\n\tid: string;\n}\n\n/** Price for audiences/subscriptions (provider-based with interval) */\nexport interface SubscriptionPrice {\n\tcurrency: string;\n\tamount: number;\n\tcompareAt?: number;\n\tinterval?: SubscriptionInterval;\n\tproviders: PriceProvider[];\n}\n\n/**\n * Unified Location type used for addresses, shipping, and geo locations.\n * All fields are optional to support various use cases.\n */\nexport interface Location {\n\t// Identity/Contact\n\tname?: string | null;\n\tcompany?: string | null;\n\temail?: string | null;\n\tphone?: string | null;\n\n\t// Address\n\tstreet1?: string | null;\n\tstreet2?: string | null;\n\tcity?: string | null;\n\tstate?: string | null;\n\tpostalCode?: string | null;\n\tcountry?: string | null;\n\n\t// Geo\n\tcoordinates?: { lat: number; lon: number } | null;\n}\n\nexport interface EshopCartItem {\n\tid: string;\n\tproductId: string;\n\tvariantId: string;\n\tproductName: string;\n\tproductSlug: string;\n\tvariantAttributes: Record<string, any>;\n\tprice: Price;\n\tquantity: number;\n\taddedAt: number;\n}\n\nexport interface ReservationCartItem {\n\tid: string;\n\tserviceId: string;\n\tserviceName: string;\n\tdate: string;\n\tfrom: number;\n\tto: number;\n\ttimeText: string;\n\tproviderId?: string;\n\tblocks: any[];\n}\n\n/** Card payment processor - business picks ONE\n * Handles: Credit/Debit Cards, Apple Pay, Google Pay\n * Note: Wallet payments are controlled via Stripe Dashboard and detected automatically\n */\nexport interface CardProvider {\n\ttype: \"stripe\";\n\taccountId: string;\n\tcurrency: string;\n}\n\n\n/** @deprecated Use CardProvider instead */\nexport interface PaymentProviderConfig {\n\ttype: \"stripe\";\n\tpublicKey: string;\n\tsecretKey: string;\n\twebhookSecret: string;\n}\n\nexport interface AnalyticsConfig {\n\ttype: \"google_analytics4\";\n\tmeasurementId: string;\n}\n\nexport interface ShippingWeightTier {\n\tupToGrams: number;\n\tamount: number;\n}\n\nexport interface PaymentMethod {\n\tid: string;\n\tname: Record<string, string>;\n\ttype: PaymentMethodType;\n}\n\nexport interface ShippingMethod {\n\tid: string;\n\tname: Record<string, string>;\n\ttaxable: boolean;\n\tetaText: string;\n\tfulfillmentCenterId?: string;\n\tamount: number;\n\tfreeAbove?: number;\n\tweightTiers?: ShippingWeightTier[];\n}\n\nexport interface FulfillmentCenter {\n\tid: string;\n\tkey: string;\n\tname: Record<string, string>;\n\tlocation: Location;\n\tisPickupLocation: boolean;\n}\n\nexport interface InventoryLevel {\n\tfulfillmentCenterId: string;\n\tavailable: number;\n\treserved: number;\n}\n\nexport type ZoneScope = \"all\" | \"order\" | \"reservation\";\n\nexport interface Zone {\n\tid: string;\n\tname: string;\n\tmarketId: string;\n\tscope: ZoneScope;\n\tcountries: string[];\n\tstates: string[];\n\tpostalCodes: string[];\n\ttaxBps: number;\n\tpaymentMethods: PaymentMethod[];\n\tshippingMethods: ShippingMethod[];\n}\n\nexport interface Market {\n\tid: string;\n\tcurrency: string;\n\ttaxMode: \"exclusive\" | \"inclusive\";\n}\n\nexport interface Language {\n\tid: string;\n}\n\nexport interface BusinessEmails {\n\tbilling: string;\n\tsupport: string;\n}\n\nexport interface BusinessConfig {\n\tlanguages: Language[];\n\tmarkets: Market[];\n\tzones: Zone[];\n\tfulfillmentCenters: FulfillmentCenter[];\n\tbuildHooks: string[];\n\twebhooks: any[];\n\t/** Card payment processor (handles cards + Apple Pay + Google Pay) */\n\tcardProvider?: CardProvider;\n\taiProvider?: any;\n\tanalytics?: AnalyticsConfig;\n\temails: BusinessEmails;\n}\n\nexport interface Subscription {\n\tid: string;\n\ttarget: string;\n\tplanId: string;\n\tpendingPlanId: string | null;\n\tpayment: any;\n\tstatus: SubscriptionStatus;\n\tendDate: number;\n\tusage: Record<string, any>;\n\ttoken: string;\n}\n\nexport interface Business {\n\tid: string;\n\tkey: string;\n\tnetworkKey: string | null;\n\ttimezone: string;\n\tconfigs?: BusinessConfig;\n\tsubscriptions?: Subscription[];\n\tstatus: Status;\n}\n\nexport interface EshopStoreState {\n\tbusinessId: string;\n\tselectedShippingMethodId: string | null;\n\tuserToken: string | null;\n\tprocessingCheckout: boolean;\n\tloading: boolean;\n\terror: string | null;\n}\n\nexport interface Block {\n\tid: string;\n\tkey: string;\n\ttype: string;\n\tproperties?: any;\n\tvalue?: any;\n}\n\nexport type BlockType =\n\t| \"text\"\n\t| \"localized_text\"\n\t| \"number\"\n\t| \"boolean\"\n\t| \"block\"\n\t| \"relationship_entry\"\n\t| \"relationship_media\"\n\t| \"markdown\"\n\t| \"email\"\n\t| \"phone\"\n\t| \"address\";\n\nexport type AddressType = \"shipping\" | \"billing\";\n\nexport interface EmailBlockProperties {}\n\nexport interface PhoneBlockProperties {}\n\nexport interface AddressBlockProperties {\n\taddressType: AddressType;\n}\n\n/** @deprecated Use Location instead */\nexport type GeoLocationValue = Location;\n\nexport interface EmailBlock extends Block {\n\ttype: \"email\";\n\tproperties: EmailBlockProperties;\n\tvalue: string | null;\n}\n\nexport interface PhoneBlock extends Block {\n\ttype: \"phone\";\n\tproperties: PhoneBlockProperties;\n\tvalue: string | null;\n}\n\nexport interface AddressBlock extends Block {\n\ttype: \"address\";\n\tproperties: AddressBlockProperties;\n\tvalue: Location | null;\n}\n\nexport type Access = 'public' | 'authenticated' | 'private';\n\nexport interface MediaResolution {\n\tid: string;\n\tsize: string;\n\turl: string;\n}\n\nexport interface Media {\n\tid: string;\n\tresolutions: { [key: string]: MediaResolution };\n\tmimeType: string;\n\ttitle?: string | null;\n\tdescription?: string | null;\n\talt?: string | null;\n\tentity: string;\n\tmetadata?: string | null;\n\tuploadedAt: string;\n\tslug: Record<string, string>;\n}\n\nexport interface ApiResponse<T> {\n\tsuccess: boolean;\n\tdata?: T;\n\terror?: string;\n\tcursor?: string;\n\ttotal?: number;\n}\n\nexport interface PaginatedResponse<T> {\n\tdata: T[];\n\tmeta?: {\n\t\ttotal: number;\n\t\tpage: number;\n\t\tper_page: number;\n\t};\n}\n\nexport interface ReservationStoreState {\n\tcurrentStep: number;\n\ttotalSteps: number;\n\tsteps: Record<number, { name: string; labelKey: string }>;\n\tweekdays: string[];\n\tmonthYear: string;\n\tdays: any[];\n\tcurrent: Date;\n\tselectedDate: string | null;\n\tslots: any[];\n\tselectedSlot: any | null;\n\tselectedProvider: any | null;\n\tproviders: any[];\n\tloading: boolean;\n\tstartDate: string | null;\n\tendDate: string | null;\n\tguestToken: string | null;\n\tservice: any | null;\n\tbusiness: Business | null;\n\tcurrency: string;\n\treservationBlocks: Block[];\n\tapiUrl: string;\n\tbusinessId: string;\n\ttimezone: string;\n\ttzGroups: any;\n\titems: ReservationCartItem[];\n\tallowedPaymentMethods: string[];\n\tpaymentConfig: {\n\t\tprovider: CardProvider | null;\n\t\tenabled: boolean;\n\t};\n}\n\nexport type Status = 'draft' | 'active' | 'archived';\n\nexport type OrderStatus = 'created' | 'pending' | 'authorized' | 'confirmed' | 'shipped' | 'completed' | 'cancelled' | 'failed';\n\nexport type ReservationStatus = 'created' | 'pending' | 'authorized' | 'confirmed' | 'completed' | 'cancelled' | 'failed';\n\nexport type SubscriptionStatus = 'pending' | 'active' | 'cancellation_scheduled' | 'cancelled' | 'expired';\n\nexport interface ReservationItem {\n\tid: string;\n\tserviceId: string;\n\tproviderId: string;\n\tbusinessId: string;\n\treservationId: string;\n\tuserId: string;\n\tfrom: number;\n\tto: number;\n\tblocks: Block[];\n\tprice: Price;\n}\n\nexport interface Reservation {\n\tid: string;\n\tnumber: string;\n\tuserId: string;\n\tblocks: Block[];\n\tbusinessId: string;\n\tstatus: ReservationStatus;\n\tserviceIds: string[];\n\tproviderIds: string[];\n\tpayment: Payment;\n\tbusiness?: Business;\n\tuser?: any;\n\titems: ReservationItem[];\n\tcreatedAt: number;\n\tlastModified: number;\n}\n\nexport interface Node {\n\tid: string;\n\tkey: string;\n\tbusinessId: string;\n\tparentId?: string | null;\n\tblocks: Block[];\n\tstatus: Status;\n\tslug: Record<string, string>;\n\taccess: Access;\n\twriteAccess: Access;\n\temailSubject?: Record<string, string>;\n\tchildren: Node[];\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface ServiceDuration {\n\tduration: number;\n\tisPause?: boolean;\n}\n\nexport interface ServiceProvider {\n\tid: string;\n\tproviderId: string;\n\tworkingTime: {\n\t\tworkingDays: Array<{ day: string; workingHours: Array<{ from: number; to: number }> }>;\n\t\toutcastDates: Array<{ month: number; day: number; workingHours: Array<{ from: number; to: number }> }>;\n\t\tspecificDates: Array<{ date: number; workingHours: Array<{ from: number; to: number }> }>;\n\t};\n\tprovider?: Provider;\n}\n\nexport interface Service {\n\tid: string;\n\tkey: string;\n\tslug: Record<string, string>;\n\taccess: Access;\n\tbusinessId: string;\n\tprices: Price[];\n\tdurations: ServiceDuration[];\n\tblocks: Block[];\n\tnodeIds: string[];\n\tisApprovalRequired: boolean;\n\tproviders: ServiceProvider[];\n\tcreatedAt: number;\n\tupdatedAt: number;\n\tstatus: Status;\n}\n\nexport interface ProviderTimelinePoint {\n\ttimestamp: number;\n\tconcurrent: number;\n}\n\nexport interface Provider {\n\tid: string;\n\tkey: string;\n\tslug: Record<string, string>;\n\taccess: Access;\n\tbusinessId: string;\n\tstatus: Status;\n\tconcurrentLimit: number;\n\tnodeIds: string[];\n\tblocks: Block[];\n\ttimeline: ProviderTimelinePoint[];\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface Workflow {\n\tid: string;\n\tkey: string;\n\tbusinessId: string;\n\tsecret: string;\n\tstatus: Status;\n\tnodes: Record<string, WorkflowNode>;\n\tedges: WorkflowEdge[];\n\t\n\tschedule?: string;\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface WorkflowEdge {\n\tid: string;\n\tsource: string;\n\tsourceOutput: string;\n\ttarget: string;\n}\n\nexport type WorkflowNode =\n\t| WorkflowTriggerNode\n\t| WorkflowHttpNode\n\t| WorkflowIfNode\n\t| WorkflowLoopNode\n\t| WorkflowWaitNode;\n\nexport interface WorkflowTriggerNode {\n\ttype: 'trigger';\n\tevent?: string;\n}\n\nexport interface WorkflowHttpNode {\n\ttype: 'http';\n\tmethod: WorkflowHttpMethod;\n\turl: string;\n\theaders?: Record<string, string>;\n\tbody?: any;\n\ttimeoutMs?: number;\n}\n\nexport interface WorkflowIfNode {\n\ttype: 'if';\n\tcondition: string;\n}\n\nexport interface WorkflowLoopNode {\n\ttype: 'loop';\n\tarray: string;\n}\n\nexport interface WorkflowWaitNode {\n\ttype: 'wait';\n\tduration: string;\n}\n\nexport type WorkflowHttpMethod = 'get' | 'post' | 'put' | 'patch' | 'delete';\n\nexport type ExecutionStatus = 'pending' | 'running' | 'completed' | 'failed' | 'waiting';\n\nexport interface WorkflowExecution {\n\tid: string;\n\tworkflowId: string;\n\tbusinessId: string;\n\tstatus: ExecutionStatus;\n\tinput: Record<string, any>;\n\tnodeOutputs: Record<string, any>;\n\tcurrentNode?: string;\n\terror?: string;\n\tscheduledAt: number;\n\tstartedAt: number;\n\tcompletedAt?: number;\n\tcreatedAt: number;\n\tupdatedAt: number;\n}\n\nexport interface Audience {\n\tid: string;\n\tbusinessId: string;\n\tkey: string;\n\taccess: Access;\n\tnodeIds: string[];\n\tprices: SubscriptionPrice[];\n\tstatus: Status;\n}\n\nexport interface AudienceAccessResponse {\n\thasAccess: boolean;\n\tsubscription?: Subscription;\n}\n\nexport interface AudienceSubscribeResponse {\n\tcheckoutUrl?: string;\n\tsubscription?: Subscription;\n}\n\nexport type BusinessEventAction =\n\t\n\t| { action: 'order_created' }\n\t| { action: 'order_status_changed'; data: { from: string; to: string } }\n\t| { action: 'order_payment_received'; data: { amount: number } }\n\t| { action: 'order_payment_failed'; data: { reason?: string } }\n\t| { action: 'order_refunded'; data: { amount: number; reason?: string } }\n\t| { action: 'order_shipped'; data: { tracking_url?: string } }\n\t| { action: 'order_completed' }\n\t| { action: 'order_cancelled'; data: { reason?: string } }\n\t\n\t| { action: 'reservation_created' }\n\t| { action: 'reservation_status_changed'; data: { from: string; to: string } }\n\t| { action: 'reservation_payment_received'; data: { amount: number } }\n\t| { action: 'reservation_payment_failed'; data: { reason?: string } }\n\t| { action: 'reservation_refunded'; data: { amount: number; reason?: string } }\n\t| { action: 'reservation_completed' }\n\t| { action: 'reservation_cancelled'; data: { reason?: string } };\n\nexport interface BusinessEvent {\n\tid: string;\n\tbusinessId: string;\n\tentity: string;\n\tpayload: BusinessEventAction;\n\tactor: string;\n\tcreatedAt: number;\n}\n"]}
|