import { Order, Receipt, Operator, MenuPath } from '../models'; import { OMMConfig, OOReasonCode, OnlinePlatformType, OMMItemContextType, OMMItemContentEntityType, SOPSContent, StoreOnlinePlatformStore, ThirdPartyStoreIntegrationType } from '../models/online-integration'; import { SingleItem } from './response'; /** * 若Order為已付款時,可在accept時帶入invoiceConfig, invoice * 反之,則不需帶入 */ export interface AcceptOnlineOrderRequest { storeId: string; orderId: string; posSerialNumber: string; addReceipt?: Receipt; } export interface AcceptOnlineOrderResponse { storeId: string; orderId: string; partialUpdateOrder: Partial; receipt?: Receipt; } export interface RejectOnlineOrderRequest { storeId: string; orderId: string; operator: Operator; reasonCode: OOReasonCode; reason?: string; releaseAvailability?: boolean; } export interface RejectOnlineOrderResponse { storeId: string; orderId: string; partialUpdateOrder: Partial; availabilityRelease?: { released: boolean; message?: string; }; } export interface CancelOnlineOrderRequest { storeId: string; orderId: string; operator: Operator; reasonCode: OOReasonCode; reason?: string; releaseAvailability?: boolean; } export interface CancelOnlineOrderResponse { storeId: string; orderId: string; partialUpdateOrder: Partial; voidedReceipt?: Receipt; availabilityRelease?: { released: boolean; message?: string; }; } export interface CompleteOnlineOrderRequest { storeId: string; orderId: string; } export interface CompleteOnlineOrderResponse { storeId: string; orderId: string; partialUpdateOrder: Partial; } export interface GetOMMConfigRequest { storeId: string; onlinePlatformType: OnlinePlatformType; } export interface GetOMMConfigResponse { item: OMMConfig; } export interface UpsertOMMItemsRequest { storeId: string; requests: OMMItemRequest[]; } export declare type UpsertOMMItemsResponse = null; export interface OMMItemRequest { onlineItemId: string; overrideId?: { contextType: OMMItemContextType; contextValue: string; }; content: { entityName: OMMItemContentEntityType; entityId: string; }; } /** ======== OnlinePlatformStore ============= */ interface BaseSOPSRequest { storeId: string; onlinePlatformType?: ThirdPartyStoreIntegrationType; onlinePlatformStoreId: string; } export interface BindOPSIdRequest extends StoreOnlinePlatformStore { } export declare type BindOPSIdResponse = null; export interface UnbindOPSIdRequest extends BaseSOPSRequest { } export declare type UnbindOPSIdResponse = null; export interface GetOPSByStoreIdRequest { storeId: string; onlinePlatformType: ThirdPartyStoreIntegrationType; } export interface GetStoreIdByOPSIdRequest { onlinePlatformStoreId: string; onlinePlatformType: ThirdPartyStoreIntegrationType; } export declare type GetOPSByStoreIdResponse = StoreOnlinePlatformStore; export declare type GetStoreIdByOPSIdResponse = SingleItem; export interface UpdateSOPSContentRequest extends BaseSOPSRequest, SOPSContent { } export declare type UpdateSOPSContentResponse = null; /** * submit third party menu data */ export interface SubmitThirdPartyMenuDataRequest { storeId: string; menuPath: MenuPath; } export declare type SubmitThirdPartyMenuDataResponse = {}; export {};