UNPKG

pancake-client-sdk

Version:
110 lines (109 loc) 2.71 kB
export interface LoyaltyProgram { id: string; name: string; is_active: boolean; points_currency_ratio: number; min_points_to_redeem: number; point_expiry_months?: number; created_at: string; updated_at: string; } export interface LoyaltyTier { id: string; name: string; min_points: number; benefits: LoyaltyBenefit[]; color?: string; icon_url?: string; } export interface LoyaltyBenefit { type: 'discount_percent' | 'discount_amount' | 'free_shipping' | 'bonus_points' | 'custom'; value: number; description?: string; conditions?: { min_order_value?: number; max_discount_value?: number; product_ids?: string[]; category_ids?: number[]; }; } export interface LoyaltyTransaction { id: string; customer_id: string; type: 'earn' | 'redeem' | 'expire' | 'adjust'; points: number; order_id?: string; reason?: string; expiry_date?: string; created_at: string; created_by?: { id: string; name: string; }; } export interface CustomerLoyalty { customer_id: string; total_points: number; tier_id: string; tier_info: LoyaltyTier; points_history: { valid_points: number; expiring_points: number; next_expiry_date?: string; next_expiry_points?: number; }; lifetime_points: number; year_to_date_points: number; } export interface CreateLoyaltyProgramRequest { name: string; points_currency_ratio: number; min_points_to_redeem: number; point_expiry_months?: number; } export interface CreateLoyaltyTierRequest { name: string; min_points: number; benefits: LoyaltyBenefit[]; color?: string; icon_url?: string; } export interface AdjustPointsRequest { customer_id: string; points: number; reason: string; expiry_date?: string; } export interface RedeemPointsRequest { customer_id: string; points: number; order_id?: string; } export interface LoyaltyTransactionListParams { page_size?: number; page_number?: number; customer_id?: string; type?: string; from_date?: string; to_date?: string; } export interface LoyaltyAnalytics { total_active_members: number; points_statistics: { total_points_issued: number; total_points_redeemed: number; total_points_expired: number; total_active_points: number; }; tier_distribution: { tier_id: string; tier_name: string; member_count: number; }[]; monthly_activity: { month: string; points_earned: number; points_redeemed: number; new_members: number; }[]; }