import { Contract } from '../models/contract'; export declare enum SubscriptionVariantType { month = "M", year = "Y", custom = "C" } export declare type Subscription = { id: string; createdAt: number; externalId?: string; storeId: string; ownerCognitoUserId: string; ownerCognitoUserEmail: string; ownerCognitoUserName?: string; externalCustomerId: string; note?: string; variantType: SubscriptionVariantType; details: SubscriptionItem[]; totalAmount: number; startedAt: number; endedAt?: number; autoRenew: boolean; contract: Contract; }; export interface SubscriptionItem { id: string; name: string; amount: number; planId: string; } export interface SubscriptionVariantOption { type: SubscriptionVariantType; name: string; } export interface SubscriptionProductOption { id: string; name: string; variant: { [key in SubscriptionVariantType]: { amount: number; description?: string; }; }; planId: string; description?: string; } export interface SubscriptionOption { products: SubscriptionProductOption[]; variants: SubscriptionVariantOption[]; } export declare type SubscribeAndGetPaymentUrlRequest = { ip?: string; storeId: string; ownerCognitoUserId: string; externalCustomerId: string; variantType: SubscriptionVariantType; subscriptionProductIds: string[]; startedAt: number | null; autoRenew: boolean; /** * 付款成功後的跳轉網址 * 以MyPay為例 * 可在產生付款網址時,決定returnUrl * 若不填寫,則以MyPay特約店家後台設定的為主 */ successReturnUrl?: string; /** * 付款失敗後的跳轉網址 * 以MyPay為例 * 可在產生付款網址時,決定returnUrl * 若不填寫,則以MyPay特約店家後台設定的為主 */ failureReturnUrl?: string; }; export declare type SubscribeGetPaymentUrlResponse = { payUrl: string; }; export declare type EnableAutoRenewAndGetPaymentUrlRequest = { subscriptionId: string; ip?: string; /** * 付款成功後的跳轉網址 * 以MyPay為例 * 可在產生付款網址時,決定returnUrl * 若不填寫,則以MyPay特約店家後台設定的為主 */ successReturnUrl?: string; /** * 付款失敗後的跳轉網址 * 以MyPay為例 * 可在產生付款網址時,決定returnUrl * 若不填寫,則以MyPay特約店家後台設定的為主 */ failureReturnUrl?: string; }; export declare type GetSubscriptionStatusRequest = { storeId: string; }; export declare type GetSubscriptionStatusResponse = { currentSubscription: Subscription; originalSubscription: Subscription; upcomingSubscription: Subscription; /** 反查 Posky 原加值服務是否已經付費2023年的發票。若沒有綁定Posky store_no 那一律回傳false */ isSubscribeInvoice2023: boolean; }; export declare type StopSubscriptionRequest = { storeId: string; subscriptionId: string; }; export declare type StopSubscriptionResponse = Subscription; export declare type DeleteSubscriptionRequest = { subscriptionId: string; }; export declare type CreateSubscriptionRequest = { storeId: string; ownerCognitoUserId: string; externalCustomerId: string; variantType: SubscriptionVariantType; subscriptionProductIds: string[]; startedAt: number | null; endedAt?: number; note?: string; }; export declare type CreateSubscriptionResponse = Subscription; export declare type UpdateSubscriptionItemRequest = { subscriptionId: string; subscriptionProductIds: string[]; }; export declare type UpdateSubscriptionItemResponse = Subscription; export declare type UpdateSubscriptionDurationRequest = { subscriptionId: string; variantType: SubscriptionVariantType; startedAt: number; endedAt?: number; }; export declare type UpdateSubscriptionDurationResponse = Subscription; export declare type UpdateSubscriptionNoteRequest = { subscriptionId: string; note: string; }; export declare type UpdateSubscriptionNoteResponse = Subscription;