/**
* An operation is a service a restaurant offers that includes various aspects of its online ordering.
* You can define default fulfillments, service fees, and scheduling requirements for each operation.
*/
export interface Operation extends OperationOnlineOrderingStatusOptionsOneOf {
/** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */
pausedUntilOptions?: OnlineOrderingPausedUntilOptions;
/**
* Operation ID.
* @readonly
*/
id?: string | null;
/**
* Revision number. Increments by 1 each time the operation is updated.
* To prevent conflicting changes,
* the existing `revision` must be specified when updating an operation.
* @readonly
*/
revision?: string | null;
/**
* Date and time the operation was created.
* @readonly
*/
createdDate?: Date | null;
/**
* Date and time the operation was updated.
* @readonly
*/
updatedDate?: Date | null;
/** Operation name. */
name?: string | null;
/**
* Whether the operation is the default operation.
* Default: `false`.
*/
default?: boolean | null;
/** IDs of the fulfillment methods ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/wix-restaurants-new/fulfillment-methods/introduction) | [REST](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/fulfillment-methods/introduction)) associated with the operation. */
fulfillmentIds?: string[] | null;
/** Online ordering status of the operation.
*/
onlineOrderingStatus?: OnlineOrderingStatusType;
/**
* IDs of the service fee rules ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/service-fees/introduction) | [REST](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/service-fees/introduction)) associated with the operation.
* @deprecated
* @targetRemovalDate 2024-11-30
*/
serviceFeeRuleIds?: string[] | null;
/** Default fulfillment type of the operation. */
defaultFulfillmentType?: FulfillmentType;
/** Information about when an order can be placed for. */
orderScheduling?: OrderScheduling;
}
/** @oneof */
export interface OperationOnlineOrderingStatusOptionsOneOf {
/** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */
pausedUntilOptions?: OnlineOrderingPausedUntilOptions;
}
/** Information about when an order can be placed for. */
export interface Scheduling extends SchedulingSchedulingOptionsOneOf {
/** Options for scheduling. Required when `type` is `ASAP`. */
asapOptions?: AsapScheduling;
/** Options for scheduling. Required when `type` is `PREORDER`. */
preorderOptions?: PreorderScheduling;
/**
* Scheduling type.
* - When `ASAP`, `asapOptions` is a required field.
* - When `PREORDER`, `preorderOptions` is a required field.
*/
type?: SchedulingType;
}
/** @oneof */
export interface SchedulingSchedulingOptionsOneOf {
/** Options for scheduling. Required when `type` is `ASAP`. */
asapOptions?: AsapScheduling;
/** Options for scheduling. Required when `type` is `PREORDER`. */
preorderOptions?: PreorderScheduling;
}
/** Scheduling type enum. */
export declare enum SchedulingType {
/** Unknown scheduling type. */
UNKNOWN_SCHEDULING = "UNKNOWN_SCHEDULING",
/** Orders can be scheduled for the future and to be handled immediately. */
ASAP = "ASAP",
/** Orders can be scheduled only for the future. */
PREORDER = "PREORDER"
}
/** Options for scheduling. Required if `type` is `ASAP`. */
export interface AsapScheduling extends AsapSchedulingPreparationTimeOneOf, AsapSchedulingAsapPreorderOneOf {
/** Options for preparation time. Required when `type` is `MAX_TIME`. */
maxOptions?: TimeDuration;
/** Options for preparation time. Required when `type` is `TIME_RANGE`. */
rangeOptions?: TimeDurationRange;
/** Information for when orders must be made a set number of business days in advance. */
businessDaysPreorderOptions?: BusinessDaysPreorder;
/** How to define the time needed to prepare an order. */
type?: PreparationTimeType;
/**
* Indication of whether it is possible to place an order for a later time on the same day.
* @deprecated Indication of whether it is possible to place an order for a later time on the same day.
* @replacedBy asap_preorder_type
* @targetRemovalDate 2023-12-28
*/
allowSameDayPreorder?: boolean | null;
/** The type of preorder allowed for the ASAP scheduling. */
asapPreorderType?: AsapPreorderType;
}
/** @oneof */
export interface AsapSchedulingPreparationTimeOneOf {
/** Options for preparation time. Required when `type` is `MAX_TIME`. */
maxOptions?: TimeDuration;
/** Options for preparation time. Required when `type` is `TIME_RANGE`. */
rangeOptions?: TimeDurationRange;
}
/** @oneof */
export interface AsapSchedulingAsapPreorderOneOf {
/** Information for when orders must be made a set number of business days in advance. */
businessDaysPreorderOptions?: BusinessDaysPreorder;
}
/** Preparation time type enum. */
export declare enum PreparationTimeType {
/** Unknown preparation time type. */
UNKNOWN_PREPARATION_TIME = "UNKNOWN_PREPARATION_TIME",
/** Preparation time that is bounded by a maximum time. */
MAX = "MAX",
/** Preparation time that is bounded by a range of times. */
RANGE = "RANGE"
}
/** Time duration. */
export interface TimeDuration {
/** Unit of time for the duration. */
timeUnit?: TimeUnit;
/** Duration value. Unit of time specified in `timeUnit`. */
duration?: number | null;
}
/** Time unit enum. */
export declare enum TimeUnit {
/** Unknown time unit. */
UNKNOWN_TIME_UNIT = "UNKNOWN_TIME_UNIT",
/** Minutes time unit. */
MINUTES = "MINUTES",
/** Hours time unit. */
HOURS = "HOURS",
/** Days time unit. */
DAYS = "DAYS"
}
/** Time range for preparation. */
export interface TimeDurationRange {
/** Time unit for the time range. */
timeUnit?: TimeUnit;
/** Minimum duration value. Unit of time specified in `timeUnit`. */
minDuration?: number | null;
/** Maximum duration value. Unit of time specified in `timeUnit`. */
maxDuration?: number | null;
}
/** Asap preorder type enum. */
export declare enum AsapPreorderType {
/** Unknown ASAP preorder type. */
UNKNOWN_ASAP_PREORDER = "UNKNOWN_ASAP_PREORDER",
/** Doesn't allow preorder. */
NO_PREORDER = "NO_PREORDER",
/** Allows preorder for a maximum specified number of business days in advance. */
BUSINESS_DAYS_PREORDER = "BUSINESS_DAYS_PREORDER"
}
/** Information for when orders must be made a set number of business days in advance. */
export interface BusinessDaysPreorder {
/**
* Maximum number of business days an order can be scheduled in advance.
*
* When `0`, an order can be scheduled only until the end of the current business day.
* For any other value, the order can be scheduled for the end of the business day in that many days.
* For example, `5` means the order can be scheduled for any time before the end of the 5th business day from today (where today is "day 0").
*/
businessDays?: number | null;
}
/** Information about preorders. */
export interface PreorderScheduling {
method?: PreorderMethod;
/**
* Configuration of the fulfillment times.
* Currently, only `TIME_WINDOWS` is supported.
*/
fulfillmentTimesDisplay?: FulfillmentTimesDisplayConfig;
}
/** Method for `PREORDER` scheduling type. */
export interface PreorderMethod extends PreorderMethodMethodOptionsOneOf {
/** Options for the method. Required when `type` is `TIME_BOUNDED`. */
timeBoundedOptions?: TimeBounded;
/** Options for the method. Required when `type` is `WEEKLY_SCHEDULE`. */
weeklyScheduleOptions?: WeeklySchedule;
/**
* Type of time frame for how long in advance preorders can be made.
* - When `TIME_BOUNDED`, `timeBoundedOptions` is a required field.
* - When `WEEKLY_SCHEDULE`, `weeklyScheduleOptions` is a required field.
*/
type?: MethodType;
}
/** @oneof */
export interface PreorderMethodMethodOptionsOneOf {
/** Options for the method. Required when `type` is `TIME_BOUNDED`. */
timeBoundedOptions?: TimeBounded;
/** Options for the method. Required when `type` is `WEEKLY_SCHEDULE`. */
weeklyScheduleOptions?: WeeklySchedule;
}
/** Day of the week and time of the day. */
export interface DayAndTime {
/** Day of the week. */
dayOfWeek?: EntitiesDayOfWeek;
/** Time of the day. */
timeOfDay?: TimeOfDay;
}
export declare enum EntitiesDayOfWeek {
/** Monday. */
MON = "MON",
/** Tuesday. */
TUE = "TUE",
/** Wednesday. */
WED = "WED",
/** Thursday. */
THU = "THU",
/** Friday. */
FRI = "FRI",
/** Saturday. */
SAT = "SAT",
/** Sunday. */
SUN = "SUN"
}
export interface TimeOfDay {
/**
* Hours.
* Min: `0`.
* Max: `23`.
*/
hours?: number;
/**
* Minutes.
* Min: `0`.
* Max: `23`.
*/
minutes?: number;
}
/** Preorder method type enum. */
export declare enum MethodType {
/** Unknown preorder method type. */
UNKNOWN_TYPE = "UNKNOWN_TYPE",
/** Preorder time has a minimum and a maximum. */
TIME_BOUNDED = "TIME_BOUNDED",
/** Preorders have a weekly schedule with a weekly cutoff time. */
WEEKLY_SCHEDULE = "WEEKLY_SCHEDULE"
}
/** Information about the time range when preorders are time bounded. */
export interface TimeBounded {
/** Minimum time required to schedule the order. */
minTimeInAdvance?: TimeDuration;
/** Maximum time allowed to schedule the order. */
maxTimeInAdvance?: TimeDuration;
}
/** Options for the method. Required when `type` is `WEEKLY_SCHEDULE`. */
export interface WeeklySchedule {
/**
* The weekly schedule cutoff time.
* Orders placed before the cutoff time are scheduled for the current week.
* Orders placed after the cutoff time are scheduled for the next week.
*/
cutOffTime?: DayAndTime;
}
/** Way by which fulfillment times should be displayed. */
export interface FulfillmentTimesDisplayConfig extends FulfillmentTimesDisplayConfigFulfillmentTimesDisplayOptionsOneOf {
/** Options for fulfillment time. Required when `fulfillmentTimesType` is `TIME_WINDOWS`. */
timeWindowsOptions?: TimeDuration;
/**
* Type of the fulfillment times.
* When `TIME_WINDOWS`, `timeWindowsOptions` is a required field.
*/
type?: FulfillmentTimesType;
}
/** @oneof */
export interface FulfillmentTimesDisplayConfigFulfillmentTimesDisplayOptionsOneOf {
/** Options for fulfillment time. Required when `fulfillmentTimesType` is `TIME_WINDOWS`. */
timeWindowsOptions?: TimeDuration;
}
/** The fulfillment times type enum. */
export declare enum FulfillmentTimesType {
/** Unknown fulfillment times type. */
UNKNOWN_TYPE = "UNKNOWN_TYPE",
/** Display fulfillment times as time windows. */
TIME_WINDOWS = "TIME_WINDOWS"
}
/** Online ordering status enum. */
export declare enum OnlineOrderingStatusType {
/** Online ordering status is not defined. */
UNDEFINED_ONLINE_ORDERING_STATUS = "UNDEFINED_ONLINE_ORDERING_STATUS",
/** Operation currently accepts online orders. */
ENABLED = "ENABLED",
/** Operation currently does not accept online orders. */
DISABLED = "DISABLED",
/** Operation currently does not accept online orders, but will accept online orders from a specified time and date. When applied, `pausedUntilOptions` is a required field. */
PAUSED_UNTIL = "PAUSED_UNTIL"
}
/** Options for online ordering status. Required when `onlineOrderingStatus` is `PAUSED_UNTIL`. */
export interface OnlineOrderingPausedUntilOptions {
/**
* Date and time until which online ordering is paused.
*
* Before the specified time, behavior is the same as when `onlineOrderingStatus` is `DISABLED`.
*
* After the specified time, behavior is the same as when `onlineOrderingStatus` is `ENABLED`.
*
* Passing the time does not trigger any changes to value of any properties.
*/
time?: Date | null;
}
/** Fulfillment type enum. */
export declare enum FulfillmentType {
/** Undefined fulfillment type. */
UNDEFINED_FULFILLMENT_TYPE = "UNDEFINED_FULFILLMENT_TYPE",
/** Pickup fulfillment. */
PICKUP = "PICKUP",
/** Delivery fulfillment. */
DELIVERY = "DELIVERY"
}
/** Information about when an order can be placed for. */
export interface OrderScheduling extends OrderSchedulingOrderSchedulingOptionsOneOf {
/** Options for scheduling. Required if `type` is `ASAP`. */
asapOptions?: AsapOrderScheduling;
/** Options for scheduling. Required if `type` is `PREORDER`. */
preorderOptions?: PreorderScheduling;
/**
* Scheduling type.
* - When `ASAP`, `asapOptions` is a required field.
* - When `PREORDER`, `preorderOptions` is a required field.
*/
type?: SchedulingType;
}
/** @oneof */
export interface OrderSchedulingOrderSchedulingOptionsOneOf {
/** Options for scheduling. Required if `type` is `ASAP`. */
asapOptions?: AsapOrderScheduling;
/** Options for scheduling. Required if `type` is `PREORDER`. */
preorderOptions?: PreorderScheduling;
}
export interface AsapOrderScheduling extends AsapOrderSchedulingAsapFutureHandlingOptionsOneOf {
/** Options for future handling. Required when `asapFutureHandlingType` is `BUSINESS_DAYS_AHEAD_HANDLING`. */
businessDaysAheadHandlingOptions?: BusinessDaysAheadHandling;
/**
* Amount of time needed to prepare the order.
* - When `MAX_TIME`, `maxTimeOptions` is a required field.
* - When `MAX_RANGE`, `timeRangeOptions` is a required field.
*/
preparationTime?: PreparationTime;
/**
* Defines if and how non-immediate orders should be handled.
* When this value is `BUSINESS_DAYS_AHEAD_HANDLING`, `businessDaysAheadHandlingOptions` is a required field.
*/
asapFutureHandlingType?: AsapFutureHandlingType;
}
/** @oneof */
export interface AsapOrderSchedulingAsapFutureHandlingOptionsOneOf {
/** Options for future handling. Required when `asapFutureHandlingType` is `BUSINESS_DAYS_AHEAD_HANDLING`. */
businessDaysAheadHandlingOptions?: BusinessDaysAheadHandling;
}
export interface PreparationTime extends PreparationTimeTimeSpecificationOneOf {
/** Options for preparation time. Required when `type` is `MAX_TIME`. */
maxTimeOptions?: TimeDuration;
/** Options for preparation time. Required when `type` is `TIME_RANGE`. */
timeRangeOptions?: TimeDurationRange;
/** Preparation time type. */
type?: PreparationTimePreparationTimeType;
}
/** @oneof */
export interface PreparationTimeTimeSpecificationOneOf {
/** Options for preparation time. Required when `type` is `MAX_TIME`. */
maxTimeOptions?: TimeDuration;
/** Options for preparation time. Required when `type` is `TIME_RANGE`. */
timeRangeOptions?: TimeDurationRange;
}
/** Preparation time type enum. */
export declare enum PreparationTimePreparationTimeType {
UNKNOWN_PREPARATION_TIME = "UNKNOWN_PREPARATION_TIME",
MAX_TIME = "MAX_TIME",
TIME_RANGE = "TIME_RANGE"
}
export declare enum AsapFutureHandlingType {
/** Unknown asap future handling type. */
UNKNOWN_ASAP_FUTURE_HANDLING = "UNKNOWN_ASAP_FUTURE_HANDLING",
/** No future handling. */
NO_FUTURE_HANDLING = "NO_FUTURE_HANDLING",
/** Allows future orders for up to a specified number of business days ahead. */
BUSINESS_DAYS_AHEAD_HANDLING = "BUSINESS_DAYS_AHEAD_HANDLING"
}
export interface BusinessDaysAheadHandling {
/**
* Number of business days ahead for which orders can be scheduled.
* Setting the `daysCount` to 0 means that orders can be scheduled until the end of the current business day.
*/
daysCount?: number | null;
}
export interface BusinessLocationDetails {
}
export interface V1Address {
/** 2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. */
country?: string | null;
/** Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format. */
subdivision?: string | null;
/** City name. */
city?: string | null;
/** Postal or zip code. */
postalCode?: string | null;
/** Street address. Includes street name, number, and apartment number in separate fields. */
streetAddress?: V1StreetAddress;
/** Full address of the location. */
formattedAddress?: string | null;
/** Extra information that helps finding the location. */
hint?: string | null;
/** Geographic coordinates of location. */
geocode?: V1AddressLocation;
}
/** Street address. Includes street name, number, and apartment number in separate fields. */
export interface V1StreetAddress {
/** Street number. */
number?: string;
/** Street name. */
name?: string;
/** Apartment number. */
apt?: string;
}
/** Address Geolocation */
export interface V1AddressLocation {
/** Latitude of the location. Must be between -90 and 90. */
latitude?: number | null;
/** Longitude of the location. Must be between -180 and 180. */
longitude?: number | null;
}
export interface InvalidateCache extends InvalidateCacheGetByOneOf {
/** Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! */
metaSiteId?: string;
/** Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! */
siteId?: string;
/** Invalidate by App */
app?: App;
/** Invalidate by page id */
page?: Page;
/** Invalidate by URI path */
uri?: URI;
/** Invalidate by file (for media files such as PDFs) */
file?: File;
/** tell us why you're invalidating the cache. You don't need to add your app name */
reason?: string | null;
/** Is local DS */
localDc?: boolean;
hardPurge?: boolean;
}
/** @oneof */
export interface InvalidateCacheGetByOneOf {
/** Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! */
metaSiteId?: string;
/** Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! */
siteId?: string;
/** Invalidate by App */
app?: App;
/** Invalidate by page id */
page?: Page;
/** Invalidate by URI path */
uri?: URI;
/** Invalidate by file (for media files such as PDFs) */
file?: File;
}
export interface App {
/** The AppDefId */
appDefId?: string;
/** The instance Id */
instanceId?: string;
}
export interface Page {
/** the msid the page is on */
metaSiteId?: string;
/** Invalidate by Page ID */
pageId?: string;
}
export interface URI {
/** the msid the URI is on */
metaSiteId?: string;
/** URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes */
uriPath?: string;
}
export interface File {
/** the msid the file is related to */
metaSiteId?: string;
/** Invalidate by filename (for media files such as PDFs) */
fileName?: string;
}
export interface DeliveryProfileConfiguredForOperation {
/** Operation */
operation?: Operation;
}
export interface OperationsDataCloningCompleted {
}
export interface CreateOperationRequest {
/** Operation to create. */
operation: Operation;
}
export interface CreateOperationResponse {
/** Created operation. */
operation?: Operation;
}
export interface GetOperationRequest {
/** ID of the operation to retrieve. */
operationId: string;
}
export interface GetOperationResponse {
/** Retrieved operation. */
operation?: Operation;
}
export interface UpdateOperationRequest {
/** Operation to update. */
operation: Operation;
}
export interface UpdateOperationResponse {
/** Updated operation. */
operation?: Operation;
}
export interface DeleteOperationRequest {
/** ID of the operation to delete. */
operationId: string;
}
export interface DeleteOperationResponse {
}
export interface QueryOperationRequest {
/** Query options. */
query: CursorQuery;
}
export interface CursorQuery extends CursorQueryPagingMethodOneOf {
/** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */
cursorPaging?: CursorPaging;
/**
* Filter object.
* See [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language)
* for more information.
*
* For a detailed list of supported filters, see
* [Supported Filters](https://dev.wix.com/docs/rest/api-reference/wix-restaurants/operations/operations/supported-filters-and-sorting).
*/
filter?: Record | null;
/** Sort object. */
sort?: Sorting[];
}
/** @oneof */
export interface CursorQueryPagingMethodOneOf {
/** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */
cursorPaging?: CursorPaging;
}
export interface Sorting {
/**
* Supported properties:
* - `id`
* - `createdDate`
* - `updatedDate`
* - `name`
*/
fieldName?: string;
/**
* Sort order. Use `ASC` for ascending order or `DESC` for descending order.
*
* Default: `ASC`
*/
order?: SortOrder;
}
export declare enum SortOrder {
ASC = "ASC",
DESC = "DESC"
}
export interface CursorPaging {
/** Maximum number of items to return in the results. */
limit?: number | null;
/**
* Pointer to the next or previous page in the list of results.
*
* Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.
* Not relevant for the first request.
*/
cursor?: string | null;
}
export interface QueryOperationResponse {
/** Retrieved operations. */
operations?: Operation[];
/** Metadata of the paginated results. */
pagingMetadata?: CursorPagingMetadata;
}
export interface CursorPagingMetadata {
/** Number of items returned in the response. */
count?: number | null;
/** Cursor strings that point to the next page, previous page, or both. */
cursors?: Cursors;
/**
* Whether there are more pages to retrieve following the current page.
*
* + `true`: Another page of results can be retrieved.
* + `false`: This is the last page.
*/
hasNext?: boolean | null;
}
export interface Cursors {
/** Cursor string pointing to the next page in the list of results. */
next?: string | null;
/** Cursor pointing to the previous page in the list of results. */
prev?: string | null;
}
export interface ListOperationsRequest {
}
export interface ListOperationsResponse {
/** Retrieved operations. */
operations?: Operation[];
}
export interface ListOperationIdsRequest {
/** metasite id */
metasiteId?: string;
}
export interface ListOperationIdsResponse {
/** List of operation ids */
operationIds?: string[];
}
export interface ListOperationsInternalRequest {
/** metasite id */
metasiteId?: string;
}
export interface ListOperationsInternalResponse {
/** List of operations */
operations?: Operation[];
}
export interface ListAvailableFulfillmentOptionsRequest {
/** Operation ID. Returned fulfillment options will belong to this operation. */
operationId: string;
/**
* Delivery address. Optional.
*
* If provided, the returned delivery fulfillment options will be able to deliver to this address.
*/
deliveryAddress?: CommonAddress;
}
/** Physical address */
export interface CommonAddress extends CommonAddressStreetOneOf {
/** Street name and number. */
streetAddress?: StreetAddress;
/** Main address line, usually street and number as free text. */
addressLine?: string | null;
/** Country code. */
country?: string | null;
/** Subdivision. Usually a state, region, prefecture, or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). */
subdivision?: string | null;
/** City name. */
city?: string | null;
/** Zip/postal code. */
postalCode?: string | null;
/** Free text providing more detailed address info. Usually contains Apt, Suite, and Floor. */
addressLine2?: string | null;
}
/** @oneof */
export interface CommonAddressStreetOneOf {
/** Street name and number. */
streetAddress?: StreetAddress;
/** Main address line, usually street and number as free text. */
addressLine?: string | null;
}
export interface StreetAddress {
/** Street number. */
number?: string;
/** Street name. */
name?: string;
}
export interface AddressLocation {
/** Address latitude. */
latitude?: number | null;
/** Address longitude. */
longitude?: number | null;
}
export interface Subdivision {
/** Short subdivision code. */
code?: string;
/** Subdivision full name. */
name?: string;
}
export declare enum SubdivisionType {
UNKNOWN_SUBDIVISION_TYPE = "UNKNOWN_SUBDIVISION_TYPE",
/** State */
ADMINISTRATIVE_AREA_LEVEL_1 = "ADMINISTRATIVE_AREA_LEVEL_1",
/** County */
ADMINISTRATIVE_AREA_LEVEL_2 = "ADMINISTRATIVE_AREA_LEVEL_2",
/** City/town */
ADMINISTRATIVE_AREA_LEVEL_3 = "ADMINISTRATIVE_AREA_LEVEL_3",
/** Neighborhood/quarter */
ADMINISTRATIVE_AREA_LEVEL_4 = "ADMINISTRATIVE_AREA_LEVEL_4",
/** Street/block */
ADMINISTRATIVE_AREA_LEVEL_5 = "ADMINISTRATIVE_AREA_LEVEL_5",
/** ADMINISTRATIVE_AREA_LEVEL_0. Indicates the national political entity, and is typically the highest order type returned by the Geocoder. */
COUNTRY = "COUNTRY"
}
export interface ListAvailableFulfillmentOptionsResponse {
/** Whether pickup fulfillment method is configured for the requested operation. */
pickupConfigured?: boolean;
/** Whether delivery fulfillment method is configured for the requested operation. */
deliveryConfigured?: boolean;
/** List of the available fulfillment options. */
fulfillmentOptions?: FulfillmentOption[];
/** Whether availability exceptions block the fulfillment options. */
blockedByAvailabilityExceptions?: boolean | null;
}
/** Fulfillment method that is currently available to fulfill orders, given its availability and the operation's scheduling configurations. */
export interface FulfillmentOption extends FulfillmentOptionFulfillmentTimeOptionsOneOf, FulfillmentOptionFulfillmentTimesDisplayOptionsOneOf, FulfillmentOptionFulfillmentTypeOptionsOneOf {
/** Fulfillment time has a maximum time. */
maxTimeOptions?: number;
/** Fulfillment time is limited by a range. */
durationRangeOptions?: DurationRange;
/** Options for fulfillment time. Required when `type` is `TIME_WINDOWS`. */
timeWindowsOptions?: TimeWindowDisplayConfig;
/** Information about pickup fulfillment types. */
pickupOptions?: PickupDetails;
/** Information about delivery fulfillment types. */
deliveryOptions?: DeliveryDetails;
/** Fulfillment method ID. */
id?: string | null;
/** Fulfillment option type. */
type?: FulfillmentType;
/** Minimum order price to qualify for the fulfillment option. */
minOrderPrice?: string | null;
/** Fee for using the fulfillment option. */
fee?: string | null;
/** Availability of the fulfillment option. */
availability?: FulfillmentOptionAvailability;
/**
* Fulfillment time type.
* Relevant only to ASAP operations.
*/
fulfillmentTimeType?: FulfillmentTimeType;
/** Fulfillment times display type. Relevant to preorder operations. */
fulfillmentTimesDisplayType?: FulfillmentTimesDisplayType;
/**
* Minimum order price for free fulfillment.
* If order price exceeds this amount, the given `fee` is waived.
*/
freeFulfillmentPriceThreshold?: string | null;
/** Instructions for the fulfillment. */
instructions?: string | null;
businessLocationId?: string | null;
}
/** @oneof */
export interface FulfillmentOptionFulfillmentTimeOptionsOneOf {
/** Fulfillment time has a maximum time. */
maxTimeOptions?: number;
/** Fulfillment time is limited by a range. */
durationRangeOptions?: DurationRange;
}
/** @oneof */
export interface FulfillmentOptionFulfillmentTimesDisplayOptionsOneOf {
/** Options for fulfillment time. Required when `type` is `TIME_WINDOWS`. */
timeWindowsOptions?: TimeWindowDisplayConfig;
}
/** @oneof */
export interface FulfillmentOptionFulfillmentTypeOptionsOneOf {
/** Information about pickup fulfillment types. */
pickupOptions?: PickupDetails;
/** Information about delivery fulfillment types. */
deliveryOptions?: DeliveryDetails;
}
/** Availability of the fulfillment option. */
export interface FulfillmentOptionAvailability {
/** Date and time at which the fulfillment option's availability starts. */
startTime?: Date | null;
/** Date and time at which the fulfillment option's availability ends. */
endTime?: Date | null;
/**
* List of available times for the days of the week.
* All the specified times must be within the range between `startTime` and `endTime`.
*/
availableTimes?: DayOfWeekAvailability[];
/** List of availability exceptions that override the availability defined in `availableTimes`. */
exceptions?: AvailabilityException[];
/** Timezone for which the available times are given. */
timeZone?: string | null;
/** Whether it's possible to submit an order for as soon as possible handling. */
asapHandlingAvailable?: boolean;
/** Whether it's possible to submit an order for future handling. */
futureHandlingAvailable?: boolean | null;
}
export interface DayOfWeekAvailability {
/** The day of week this availability relates to. */
dayOfWeek?: EntitiesDayOfWeek;
/** A list of time ranges during which the fulfillment should be available. */
timeRanges?: TimeOfDayRange[];
}
export interface TimeOfDayRange {
/** The start time in time of day representation. */
startTime?: TimeOfDay;
/** The end time in time of day representation. */
endTime?: TimeOfDay;
}
export interface AvailabilityException {
/** The start time of the availability exception. */
startTime?: Date | null;
/** The end time of the availability exception. */
endTime?: Date | null;
/** An indication whether the exception makes the [`start_time`, `end_time`] range available. */
available?: boolean;
/** The reason for the exception. */
reason?: string | null;
}
/** Fulfillment time type enum. */
export declare enum FulfillmentTimeType {
/** Undefined fulfillment time type. */
UNDEFINED_FULFILLMENT_TIME = "UNDEFINED_FULFILLMENT_TIME",
/** Fulfillment time has a maximum. */
MAX_TIME = "MAX_TIME",
/** Fulfillment time has a minimum and a maximum. */
DURATION_RANGE = "DURATION_RANGE"
}
/** Duration range. */
export interface DurationRange {
/** Minimum duration in minutes. */
minDuration?: number;
/** Maximum duration in minutes. */
maxDuration?: number;
}
/** Fulfillment times display type enum. */
export declare enum FulfillmentTimesDisplayType {
/** Undefined fulfillment times display type. */
UNDEFINED_FULFILLMENT_TIMES_DISPLAY = "UNDEFINED_FULFILLMENT_TIMES_DISPLAY",
/** Fulfillment times are displayed as a list of time windows. */
TIME_WINDOWS = "TIME_WINDOWS"
}
/** Time window. */
export interface TimeWindowDisplayConfig {
/** Time window duration in minutes. */
durationInMinutes?: number;
}
/** Information about pickup fulfillment types. */
export interface PickupDetails {
/** Pickup address. This is the restaurant's address. */
address?: CommonAddress;
}
/** Information about delivery fulfillment types. */
export interface DeliveryDetails {
/** Delivery provider app id. */
deliveryProviderAppId?: string | null;
/** Pickup instructions for couriers. */
courierPickupInstructions?: string | null;
}
export interface ListFirstAvailableTimeSlotForFulfillmentTypesRequest {
/**
* Operation ID.
* Returned fulfillment options will belong to this operation.
*/
operationId: string;
/**
* Delivery address. Optional.
*
* If provided, the returned delivery fulfillment options will be able to deliver to this address.
*/
deliveryAddress?: CommonAddress;
}
export interface ListFirstAvailableTimeSlotForFulfillmentTypesResponse {
/**
* List of available time slots for each fulfillment type.
*
* Each time slot is the first available time slot for the given fulfillment type.
* A delivery fulfillment type is returned only if the delivery address is provided.
*/
timeSlots?: FulfillmentTimeSlot[];
}
export interface FulfillmentTimeSlot {
/** Start time and date of the time slot. */
startTime?: Date | null;
/** End time and date of the time slot. */
endTime?: Date | null;
/** Type of the fulfillment. */
fulfilmentType?: FulfillmentType;
/** Whether the time slot starts now. */
startsNow?: boolean;
/** Details for each fulfillment option of the time slot. */
fulfillmentDetails?: FulfillmentDetails[];
/** Address of the fulfillment. */
fulfillmentAddress?: FulfillmentAddress;
}
/** Details about the fulfillment option. */
export interface FulfillmentDetails extends FulfillmentDetailsFulfillmentTimeOptionsOneOf {
/** Fulfillment time has a maximum. */
maxTimeOptions?: number;
/** Fulfillment time has a minimum and a maximum. */
durationRangeOptions?: DurationRange;
/** Fee for using this fulfillment. */
fee?: string | null;
/** Minimum order price to qualify for using this fulfillment. */
minOrderPrice?: string | null;
/** Fulfillment time type. Only be relevant to ASAP operations. */
fulfillmentTimeType?: FulfillmentTimeType;
/**
* Minimum order price for free fulfillment.
* If order price exceeds this amount, the given `fee` is waived.
*/
freeFulfillmentPriceThreshold?: string | null;
}
/** @oneof */
export interface FulfillmentDetailsFulfillmentTimeOptionsOneOf {
/** Fulfillment time has a maximum. */
maxTimeOptions?: number;
/** Fulfillment time has a minimum and a maximum. */
durationRangeOptions?: DurationRange;
}
/**
* Details on the address of the fulfillment.
* For pickup it will the address to take the order from.
* For delivery it will be the address to deliver the order to.
*/
export interface FulfillmentAddress {
/** Pickup address. This is the address of the restaurant. */
address?: CommonAddress;
}
export interface ListFirstAvailableTimeSlotsForOperationsRequest {
/**
* Operation ID.
* Returned fulfillment options will belong to this operation.
*/
operationIds: string[];
/**
* Delivery address. Optional.
*
* If provided, the returned delivery fulfillment options will be able to deliver to this address.
*/
deliveryAddress?: CommonAddress;
}
export interface ListFirstAvailableTimeSlotsForOperationsResponse {
/** List of available time slots for each operation. */
timeSlots?: OperationTimeSlot[];
}
export interface OperationTimeSlot {
/** Operation ID. */
operationId?: string;
/** List of available time slots for each fulfillment type. */
timeSlots?: FulfillmentTimeSlot[];
}
export interface ListFirstAvailableTimeSlotsForMenusRequest {
/**
* Operation ID.
* Returned timeslots that are belong to this operation.
*/
operationId: string | null;
/**
* Delivery address. Optional.
*
* If provided, the returned delivery fulfillment options will be able to deliver to this address.
*/
deliveryAddress?: CommonAddress;
/** Cursor paging */
cursorPaging?: CursorPaging;
}
export interface ListFirstAvailableTimeSlotsForMenusResponse {
/**
* List of available time slots for each menu.
* For each menu will be returned the first available time slot for each fulfillment type.
*/
timeSlotsPerMenu?: FirstFulfillmentTimeSlotsPerMenu[];
/** Cursor to next request. */
cursor?: string | null;
}
export interface FirstFulfillmentTimeSlotsPerMenu {
/** Menu ID. */
menuId?: string | null;
/** List of available time slots for each fulfillment type. */
timeslotsPerFulfillmentType?: FulfillmentTimeSlot[];
}
export interface ListAvailableTimeSlotsForDateRequest {
/**
* Operation ID.
* The returned fulfillment options will belong to this operation.
*/
operationId: string;
/**
* Delivery address. Optional.
*
* If provided, the returned delivery fulfillment options will be able to deliver to this address.
*/
deliveryAddress?: CommonAddress;
/** Date and time to get the available time slots for. */
date: _Date;
}
export interface _Date {
/** The day of the month. */
day?: number;
/** The month of the year. */
month?: number;
/** The year of the date. */
year?: number;
}
export interface ListAvailableTimeSlotsForDateResponse {
/** Lst of the available time slots in the requested date. */
timeSlots?: FulfillmentTimeSlot[];
}
export interface ListAvailableDatesInRangeRequest {
/**
* Operation ID.
* The returned fulfillment options will belong to this operation.
*/
operationId: string;
/**
* Delivery address. Optional.
*
* If provided, the returned delivery fulfillment options will be able to deliver to this address.
*/
deliveryAddress?: CommonAddress;
/** Start date and time of the range. */
from: _Date;
/** End date and time of the range. */
until: _Date;
}
export interface ListAvailableDatesInRangeResponse {
/** List of the available dates in descending order for each fulfillment type. */
availableDates?: FulfillmentTypeAvailableDates[];
}
/** Available dates for a given fulfillment type. */
export interface FulfillmentTypeAvailableDates {
/** Type of the fulfillment. */
fulfilmentType?: FulfillmentType;
/** List of the available dates in descending order. */
dates?: _Date[];
}
export interface GetExpectedFulfillmentSelectionRequest {
/** Operation ID. The returned fulfillment will belong to this operation. */
operationId?: string;
/**
* Delivery address. Optional.
*
* If provided, the returned delivery fulfillment options will be able to deliver to this address.
*/
deliveryAddress?: CommonAddress;
/** Start time and date of the time slot. */
timeslotStartTime?: Date | null;
/** End time and date of the time slot. */
timeslotEndTime?: Date | null;
/** Type of fulfillment. */
fulfilmentType?: FulfillmentType;
/** Whether it is possible to submit an order to be prepared asap. */
canSubmitOrderForNow?: boolean | null;
}
export interface GetExpectedFulfillmentSelectionResponse {
/** Expected fulfillment option. */
expectedFulfillmentSelections?: FulfillmentOption[];
}
export interface DomainEvent extends DomainEventBodyOneOf {
createdEvent?: EntityCreatedEvent;
updatedEvent?: EntityUpdatedEvent;
deletedEvent?: EntityDeletedEvent;
actionEvent?: ActionEvent;
/**
* Unique event ID.
* Allows clients to ignore duplicate webhooks.
*/
id?: string;
/**
* Assumes actions are also always typed to an entity_type
* Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction
*/
entityFqdn?: string;
/**
* This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug)
* This is although the created/updated/deleted notion is duplication of the oneof types
* Example: created/updated/deleted/started/completed/email_opened
*/
slug?: string;
/** ID of the entity associated with the event. */
entityId?: string;
/** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example: 2020-04-26T13:57:50.699Z */
eventTime?: Date | null;
/**
* Whether the event was triggered as a result of a privacy regulation application
* (for example, GDPR).
*/
triggeredByAnonymizeRequest?: boolean | null;
/** If present, indicates the action that triggered the event. */
originatedFrom?: string | null;
/**
* A sequence number defining the order of updates to the underlying entity.
* For example, given that some entity was updated at 16:00 and than again at 16:01,
* it is guaranteed that the sequence number of the second update is strictly higher than the first.
* As the consumer, you can use this value to ensure that you handle messages in the correct order.
* To do so, you will need to persist this number on your end, and compare the sequence number from the
* message against the one you have stored. Given that the stored number is higher, you should ignore the message.
*/
entityEventSequence?: string | null;
}
/** @oneof */
export interface DomainEventBodyOneOf {
createdEvent?: EntityCreatedEvent;
updatedEvent?: EntityUpdatedEvent;
deletedEvent?: EntityDeletedEvent;
actionEvent?: ActionEvent;
}
export interface EntityCreatedEvent {
entityAsJson?: string;
/** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */
restoreInfo?: RestoreInfo;
}
export interface RestoreInfo {
deletedDate?: Date | null;
}
export interface EntityUpdatedEvent {
/**
* Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.
* This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.
* We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.
*/
currentEntityAsJson?: string;
}
export interface EntityDeletedEvent {
/** Entity that was deleted */
deletedEntityAsJson?: string | null;
}
export interface ActionEvent {
bodyAsJson?: string;
}
export interface Empty {
}
/** Encapsulates all details written to the Greyhound topic when a site's properties are updated. */
export interface SitePropertiesNotification {
/** The site ID for which this update notification applies. */
metasiteId?: string;
/** The actual update event. */
event?: SitePropertiesEvent;
/** A convenience set of mappings from the MetaSite ID to its constituent services. */
translations?: Translation[];
/** Context of the notification */
changeContext?: ChangeContext;
}
/** The actual update event for a particular notification. */
export interface SitePropertiesEvent {
/** Version of the site's properties represented by this update. */
version?: number;
/** Set of properties that were updated - corresponds to the fields in "properties". */
fields?: string[];
/** Updated properties. */
properties?: Properties;
}
export interface Properties {
/** Site categories. */
categories?: Categories;
/** Site locale. */
locale?: Locale;
/**
* Site language.
*
* Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.
*/
language?: string | null;
/**
* Site currency format used to bill customers.
*
* Three-letter currency code in [ISO-4217 alphabetic](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format.
*/
paymentCurrency?: string | null;
/** Timezone in `America/New_York` format. */
timeZone?: string | null;
/** Email address. */
email?: string | null;
/** Phone number. */
phone?: string | null;
/** Fax number. */
fax?: string | null;
/** Address. */
address?: Address;
/** Site display name. */
siteDisplayName?: string | null;
/** Business name. */
businessName?: string | null;
/** Path to the site's logo in Wix Media (without Wix Media base URL). */
logo?: string | null;
/** Site description. */
description?: string | null;
/**
* Business schedule. Regular and exceptional time periods when the business is open or the service is available.
*
* __Note:__ Not supported by Wix Bookings.
*/
businessSchedule?: BusinessSchedule;
/** Supported languages of a site and the primary language. */
multilingual?: Multilingual;
/** Cookie policy the Wix user defined for their site (before the site visitor interacts with/limits it). */
consentPolicy?: ConsentPolicy;
/**
* Supported values: `FITNESS SERVICE`, `RESTAURANT`, `BLOG`, `STORE`, `EVENT`, `UNKNOWN`.
*
* Site business type.
*/
businessConfig?: string | null;
/** External site URL that uses Wix as its headless business solution. */
externalSiteUrl?: string | null;
/** Track clicks analytics. */
trackClicksAnalytics?: boolean;
}
export interface Categories {
/** Primary site category. */
primary?: string;
/** Secondary site category. */
secondary?: string[];
/** Business Term Id */
businessTermId?: string | null;
}
export interface Locale {
/** Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format. */
languageCode?: string;
/** Two-letter country code in [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) format. */
country?: string;
}
export interface Address {
/** Street name. */
street?: string;
/** City name. */
city?: string;
/** Two-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. */
country?: string;
/** State. */
state?: string;
/** Zip or postal code. */
zip?: string;
/** Extra information to be displayed in the address. */
hint?: AddressHint;
/** Whether this address represents a physical location. */
isPhysical?: boolean;
/** Google-formatted version of this address. */
googleFormattedAddress?: string;
/** Street number. */
streetNumber?: string;
/** Apartment number. */
apartmentNumber?: string;
/** Geographic coordinates of location. */
coordinates?: GeoCoordinates;
}
/**
* Extra information on displayed addresses.
* This is used for display purposes. Used to add additional data about the address, such as "In the passage".
* Free text. In addition, the user can state where to display the additional description - before, after, or instead of the address string.
*/
export interface AddressHint {
/** Extra text displayed next to, or instead of, the actual address. */
text?: string;
/** Where the extra text should be displayed. */
placement?: PlacementType;
}
/** Where the extra text should be displayed: before, after or instead of the actual address. */
export declare enum PlacementType {
BEFORE = "BEFORE",
AFTER = "AFTER",
REPLACE = "REPLACE"
}
/** Geocoordinates for a particular address. */
export interface GeoCoordinates {
/** Latitude of the location. Must be between -90 and 90. */
latitude?: number;
/** Longitude of the location. Must be between -180 and 180. */
longitude?: number;
}
/** Business schedule. Regular and exceptional time periods when the business is open or the service is available. */
export interface BusinessSchedule {
/** Weekly recurring time periods when the business is regularly open or the service is available. Limited to 100 time periods. */
periods?: TimePeriod[];
/** Exceptions to the business's regular hours. The business can be open or closed during the exception. */
specialHourPeriod?: SpecialHourPeriod[];
}
/** Weekly recurring time periods when the business is regularly open or the service is available. */
export interface TimePeriod {
/** Day of the week the period starts on. */
openDay?: DayOfWeek;
/**
* Time the period starts in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents
* midnight at the end of the specified day.
*/
openTime?: string;
/** Day of the week the period ends on. */
closeDay?: DayOfWeek;
/**
* Time the period ends in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents
* midnight at the end of the specified day.
*
* __Note:__ If `openDay` and `closeDay` specify the same day of the week `closeTime` must be later than `openTime`.
*/
closeTime?: string;
}
/** Enumerates the days of the week. */
export declare enum DayOfWeek {
MONDAY = "MONDAY",
TUESDAY = "TUESDAY",
WEDNESDAY = "WEDNESDAY",
THURSDAY = "THURSDAY",
FRIDAY = "FRIDAY",
SATURDAY = "SATURDAY",
SUNDAY = "SUNDAY"
}
/** Exception to the business's regular hours. The business can be open or closed during the exception. */
export interface SpecialHourPeriod {
/** Start date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time). */
startDate?: string;
/** End date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time). */
endDate?: string;
/**
* Whether the business is closed (or the service is not available) during the exception.
*
* Default: `true`.
*/
isClosed?: boolean;
/** Additional info about the exception. For example, "We close earlier on New Year's Eve." */
comment?: string;
}
export interface Multilingual {
/** Supported languages list. */
supportedLanguages?: SupportedLanguage[];
/** Whether to redirect to user language. */
autoRedirect?: boolean;
}
export interface SupportedLanguage {
/** Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format. */
languageCode?: string;
/** Locale. */
locale?: Locale;
/** Whether the supported language is the primary language for the site. */
isPrimary?: boolean;
/** Language icon. */
countryCode?: string;
/** How the language will be resolved. For internal use. */
resolutionMethod?: ResolutionMethod;
}
export declare enum ResolutionMethod {
QUERY_PARAM = "QUERY_PARAM",
SUBDOMAIN = "SUBDOMAIN",
SUBDIRECTORY = "SUBDIRECTORY"
}
export interface ConsentPolicy {
/** Whether the site uses cookies that are essential to site operation. Always `true`. */
essential?: boolean | null;
/** Whether the site uses cookies that affect site performance and other functional measurements. */
functional?: boolean | null;
/** Whether the site uses cookies that collect analytics about how the site is used (in order to improve it). */
analytics?: boolean | null;
/** Whether the site uses cookies that collect information allowing better customization of the experience for a current visitor. */
advertising?: boolean | null;
/** CCPA compliance flag. */
dataToThirdParty?: boolean | null;
}
/** A single mapping from the MetaSite ID to a particular service. */
export interface Translation {
/** The service type. */
serviceType?: string;
/** The application definition ID; this only applies to services of type ThirdPartyApps. */
appDefId?: string;
/** The instance ID of the service. */
instanceId?: string;
}
export interface ChangeContext extends ChangeContextPayloadOneOf {
/** Properties were updated. */
propertiesChange?: PropertiesChange;
/** Default properties were created on site creation. */
siteCreated?: SiteCreated;
/** Properties were cloned on site cloning. */
siteCloned?: SiteCloned;
}
/** @oneof */
export interface ChangeContextPayloadOneOf {
/** Properties were updated. */
propertiesChange?: PropertiesChange;
/** Default properties were created on site creation. */
siteCreated?: SiteCreated;
/** Properties were cloned on site cloning. */
siteCloned?: SiteCloned;
}
export interface PropertiesChange {
}
export interface SiteCreated {
/** Origin template site id. */
originTemplateId?: string | null;
}
export interface SiteCloned {
/** Origin site id. */
originMetaSiteId?: string;
}
export interface MessageEnvelope {
/** App instance ID. */
instanceId?: string | null;
/** Event type. */
eventType?: string;
/** The identification type and identity data. */
identity?: IdentificationData;
/** Stringify payload. */
data?: string;
}
export interface IdentificationData extends IdentificationDataIdOneOf {
/** ID of a site visitor that has not logged in to the site. */
anonymousVisitorId?: string;
/** ID of a site visitor that has logged in to the site. */
memberId?: string;
/** ID of a Wix user (site owner, contributor, etc.). */
wixUserId?: string;
/** ID of an app. */
appId?: string;
/** @readonly */
identityType?: WebhookIdentityType;
}
/** @oneof */
export interface IdentificationDataIdOneOf {
/** ID of a site visitor that has not logged in to the site. */
anonymousVisitorId?: string;
/** ID of a site visitor that has logged in to the site. */
memberId?: string;
/** ID of a Wix user (site owner, contributor, etc.). */
wixUserId?: string;
/** ID of an app. */
appId?: string;
}
export declare enum WebhookIdentityType {
UNKNOWN = "UNKNOWN",
ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
MEMBER = "MEMBER",
WIX_USER = "WIX_USER",
APP = "APP"
}
interface TimeDurationNonNullableFields {
timeUnit: TimeUnit;
}
interface TimeDurationRangeNonNullableFields {
timeUnit: TimeUnit;
}
interface AsapSchedulingNonNullableFields {
maxOptions?: TimeDurationNonNullableFields;
rangeOptions?: TimeDurationRangeNonNullableFields;
type: PreparationTimeType;
asapPreorderType: AsapPreorderType;
}
interface TimeBoundedNonNullableFields {
minimumInAdvanceTime?: TimeDurationNonNullableFields;
maximumInAdvanceTime?: TimeDurationNonNullableFields;
minTimeInAdvance?: TimeDurationNonNullableFields;
maxTimeInAdvance?: TimeDurationNonNullableFields;
}
interface TimeOfDayNonNullableFields {
hours: number;
minutes: number;
}
interface DayAndTimeNonNullableFields {
dayOfWeek: EntitiesDayOfWeek;
timeOfDay?: TimeOfDayNonNullableFields;
}
interface WeeklyScheduleNonNullableFields {
cutOffTime?: DayAndTimeNonNullableFields;
}
interface PreorderMethodNonNullableFields {
timeBoundedOptions?: TimeBoundedNonNullableFields;
weeklyScheduleOptions?: WeeklyScheduleNonNullableFields;
type: MethodType;
}
interface FulfillmentTimesDisplayConfigNonNullableFields {
timeWindowsOptions?: TimeDurationNonNullableFields;
fulfillmentTimesType: FulfillmentTimesType;
type: FulfillmentTimesType;
}
interface PreorderSchedulingNonNullableFields {
method?: PreorderMethodNonNullableFields;
fulfillmentTimesDisplayConfig?: FulfillmentTimesDisplayConfigNonNullableFields;
fulfillmentTimesDisplay?: FulfillmentTimesDisplayConfigNonNullableFields;
}
interface SchedulingNonNullableFields {
asapOptions?: AsapSchedulingNonNullableFields;
preorderOptions?: PreorderSchedulingNonNullableFields;
type: SchedulingType;
}
interface PreparationTimeNonNullableFields {
maxTimeOptions?: TimeDurationNonNullableFields;
timeRangeOptions?: TimeDurationRangeNonNullableFields;
type: PreparationTimePreparationTimeType;
}
interface AsapOrderSchedulingNonNullableFields {
preparationTime?: PreparationTimeNonNullableFields;
asapFutureHandlingType: AsapFutureHandlingType;
}
interface OrderSchedulingNonNullableFields {
asapOptions?: AsapOrderSchedulingNonNullableFields;
preorderOptions?: PreorderSchedulingNonNullableFields;
type: SchedulingType;
}
interface V1StreetAddressNonNullableFields {
number: string;
name: string;
apt: string;
}
interface V1AddressNonNullableFields {
streetAddress?: V1StreetAddressNonNullableFields;
}
interface BusinessLocationDetailsNonNullableFields {
address?: V1AddressNonNullableFields;
}
interface OperationNonNullableFields {
scheduling?: SchedulingNonNullableFields;
onlineOrderingStatus: OnlineOrderingStatusType;
defaultFulfillmentType: FulfillmentType;
orderScheduling?: OrderSchedulingNonNullableFields;
businessLocationDetails?: BusinessLocationDetailsNonNullableFields;
}
export interface CreateOperationResponseNonNullableFields {
operation?: OperationNonNullableFields;
}
export interface GetOperationResponseNonNullableFields {
operation?: OperationNonNullableFields;
}
export interface UpdateOperationResponseNonNullableFields {
operation?: OperationNonNullableFields;
}
export interface QueryOperationResponseNonNullableFields {
operations: OperationNonNullableFields[];
}
export interface ListOperationsResponseNonNullableFields {
operations: OperationNonNullableFields[];
}
interface DurationRangeNonNullableFields {
minDuration: number;
maxDuration: number;
}
interface TimeWindowDisplayConfigNonNullableFields {
durationInMinutes: number;
}
interface StreetAddressNonNullableFields {
number: string;
name: string;
apt: string;
}
interface SubdivisionNonNullableFields {
code: string;
name: string;
type: SubdivisionType;
}
interface CommonAddressNonNullableFields {
streetAddress?: StreetAddressNonNullableFields;
subdivisions: SubdivisionNonNullableFields[];
}
interface PickupDetailsNonNullableFields {
address?: CommonAddressNonNullableFields;
}
interface TimeOfDayRangeNonNullableFields {
startTime?: TimeOfDayNonNullableFields;
endTime?: TimeOfDayNonNullableFields;
}
interface DayOfWeekAvailabilityNonNullableFields {
dayOfWeek: EntitiesDayOfWeek;
timeRanges: TimeOfDayRangeNonNullableFields[];
}
interface AvailabilityExceptionNonNullableFields {
available: boolean;
}
interface FulfillmentOptionAvailabilityNonNullableFields {
availableTimes: DayOfWeekAvailabilityNonNullableFields[];
exceptions: AvailabilityExceptionNonNullableFields[];
asapHandlingAvailable: boolean;
}
interface FulfillmentOptionNonNullableFields {
maxTimeOptions: number;
durationRangeOptions?: DurationRangeNonNullableFields;
timeWindowsOptions?: TimeWindowDisplayConfigNonNullableFields;
pickupOptions?: PickupDetailsNonNullableFields;
type: FulfillmentType;
availability?: FulfillmentOptionAvailabilityNonNullableFields;
fulfillmentTimeType: FulfillmentTimeType;
fulfillmentTimesDisplayType: FulfillmentTimesDisplayType;
}
export interface ListAvailableFulfillmentOptionsResponseNonNullableFields {
pickupConfigured: boolean;
deliveryConfigured: boolean;
fulfillmentOptions: FulfillmentOptionNonNullableFields[];
}
interface FulfillmentDetailsNonNullableFields {
maxTimeOptions: number;
durationRangeOptions?: DurationRangeNonNullableFields;
fulfillmentTimeType: FulfillmentTimeType;
}
interface FulfillmentAddressNonNullableFields {
address?: CommonAddressNonNullableFields;
}
interface FulfillmentTimeSlotNonNullableFields {
fulfilmentType: FulfillmentType;
startsNow: boolean;
fulfillmentDetails: FulfillmentDetailsNonNullableFields[];
fulfillmentAddress?: FulfillmentAddressNonNullableFields;
}
export interface ListFirstAvailableTimeSlotForFulfillmentTypesResponseNonNullableFields {
timeSlots: FulfillmentTimeSlotNonNullableFields[];
}
interface OperationTimeSlotNonNullableFields {
operationId: string;
timeSlots: FulfillmentTimeSlotNonNullableFields[];
}
export interface ListFirstAvailableTimeSlotsForOperationsResponseNonNullableFields {
timeSlots: OperationTimeSlotNonNullableFields[];
}
interface FirstFulfillmentTimeSlotsPerMenuNonNullableFields {
timeslotsPerFulfillmentType: FulfillmentTimeSlotNonNullableFields[];
}
export interface ListFirstAvailableTimeSlotsForMenusResponseNonNullableFields {
timeSlotsPerMenu: FirstFulfillmentTimeSlotsPerMenuNonNullableFields[];
}
export interface ListAvailableTimeSlotsForDateResponseNonNullableFields {
timeSlots: FulfillmentTimeSlotNonNullableFields[];
}
interface _DateNonNullableFields {
day: number;
month: number;
year: number;
}
interface FulfillmentTypeAvailableDatesNonNullableFields {
fulfilmentType: FulfillmentType;
dates: _DateNonNullableFields[];
}
export interface ListAvailableDatesInRangeResponseNonNullableFields {
availableDates: FulfillmentTypeAvailableDatesNonNullableFields[];
}
export {};