import { Contract, PlanLimits, Plan, ContractCore } from '../models/contract'; /** * Get Store Contract use case */ export interface GetStoreContractRequest { storeId: string; } export interface GetStoreContractResponse { currentContract: Contract; originalContract: Contract; upcomingContract: Contract; } /** * Get Current Store Contract use case */ export interface GetCurrentStoreContractLimitRequest { /** 至少三選一 */ storeId?: string; storeNo?: string; mainStoreNo?: string; /** * 沒給的話,回傳全部的limit */ limitKeys?: string[]; } export interface GetCurrentStoreContractLimitResponse { eachLimits: PlanLimits; } /** * Get Contract by subscriptionId use case */ export interface GetContractBySubscriptionIdRequest { subscriptionId: string; } export declare type GetContractBySubscriptionIdResponse = Contract; /** * Create Contract use case */ export interface CreateContractRequest extends ContractCore { forceCreate?: boolean; } export declare type CreateContractResponse = Contract; /** * Update Contract Duration use case */ export interface UpdateContractDurationRequest { contractId: string; startedAt: number; endedAt: number; } export declare type UpdateContractDurationResponse = null; /** * Update Contract Plan use case */ export interface UpdateContractPlanRequest { contractId: string; planId: string; /** * Will ignore `planId` if provided. */ planIds?: string[]; /** * undefined: 不變更 * null/空字串: 移除此property */ name?: string; /** * undefined: 不變更 * null/空字串: 移除此property */ note?: string; } export declare type UpdateContractPlanResponse = null; /** * Update Contract ForStore use case */ export interface UpdateContractForStoreRequest { contractId: string; forStoreId: string; } export declare type UpdateContractForStoreResponse = null; /** * Update Contract Owner use case */ export interface UpdateContractOwnerRequest { contractId: string; ownerCognitoUserId: string; } export declare type UpdateContractOwnerResponse = null; export interface DeleteContractRequest { contractId: string; } export declare type DeleteContractResponse = null; /** * Get Plan */ export interface GetPlanRequest { planId: string; } export declare type GetPlanResponse = Plan;