import { Kiosk, Store } from "../../models"; import { BaseRuleModel } from "../../models"; import { SingleItem, MultipleItems } from "./common"; import { SOGetStoreMenuResponse } from "../online-ordering"; /** * Lambda result to kiosk-admin */ export interface CreateKioskResponse extends SingleItem { } /** * Lambda result to kiosk-admin and kiosk-ionic */ export interface GetKiosksResponse extends MultipleItems { } export interface GetKioskConfigResponse extends SingleItem { } export interface GetKioskMenuResponse extends Omit { discountRules: BaseRuleModel[]; } /** * KIOSK 剩餘可售數量(只回傳需要顯示的品項) * 店家未開啟 onlineShowRemainingQty 時兩者皆為空物件; * 未列出的品項代表不顯示(未追蹤數量、已售完、人工停售或超過門檻) */ export interface GetKioskRemainingQtyResponse { /** key: productId, value: 剩餘可售數量 */ products: Record; /** key: productAttributeId(單品),value: 剩餘可售數量;combo 附加屬性請以其 productId 查 products */ attributes: Record; } export declare type PoskyCrmMemberCouponStatus = string; export declare type PoskyCrmMemberCouponListItem = { memberCouponNo: string; name: string; description: string; notice?: string | null; status: PoskyCrmMemberCouponStatus; startDatetime: string; endDatetime: string; }; export declare type PoskyCrmCouponDiscountRuleDetail = Omit & { discountRuleNo: string | number; applyMethod: 'AutoApply' | 'Coupon'; note?: string | null; }; export declare type PoskyCrmMemberCouponDetail = PoskyCrmMemberCouponListItem & { brandNo: string; memberNo: string; state: PoskyCrmMemberCouponStatus; redeemedDatetime?: string | null; redeemedOrderNo?: string | null; redeemedStoreNo?: number | null; voidReason?: string | null; createDatetime: string; discountRuleDetail: PoskyCrmCouponDiscountRuleDetail; redeemEligibility: { canRedeem: boolean; reason?: string; }; }; export declare type PoskyCrmMemberCouponDetailByQr = Omit & { notice?: string | null; member: { memberNo: string; memberPoolNo: string; name: string; carrier?: string; }; }; export interface GetMemberResponse { memberNo: string; memberPoolNo: string; idpSub: string | null; name: string; birthday: string | null; gender: number | null; email: string | null; phoneNumber: string | null; address: string | null; carrier: string | null; totalPoints: number; expiringPoints: number; expirationDatetime: string | null; } export declare type GetKioskCouponByQrResponse = PoskyCrmMemberCouponDetailByQr; export interface RedeemPointDryRunResponse { usedPoints: number; discountAmount: number; errorMessage?: string; } export declare type RedeemPointResponse = { usePoints: number; discountAmount: number; tradeDatetime: string; errorMessage?: string; } | null; export interface RedeemCouponResponse { redeemedDatetime: string; }